|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
树莓派Pico采用他自己的处理器RP2040,双核M0,133MHz。
& e2 {: m0 o8 }为了体验它的双核编程环境和性能,我用它来实现一个AppleII& C1 C6 `, k& B5 Y: C
仿真,当然是在AppleWin代码基础上移植改造的。$ K; G, P3 k0 A9 ^
/ R: a3 x: w1 v6 b; s6 KCore0用作管理、外设仿真,Core1用作CPU6502/Z80仿真。% m- A; J; a: V6 a0 a1 ~1 k
采用SIO/FIFO实现两个核的数据交换。
0 G$ s- b- m. t5 x/ r自旋锁用于需要共同操作的UART操作权管理。- U) `3 r2 @) ?/ i
+ r/ {- ^! m7 _- DROM和磁盘数据放在FlashMemory中。. \5 I. C3 D# T
1 B& v1 x1 I1 L% n2 K! [在RP2040仿真AppleII,可以达到真机速度的1.6倍。
2 q- |9 `; ^4 |+ YRPi Pico当然只能串口屏。
x& r) U7 A! q5 b O0 y/ a1 _" d+ m* @' w9 b* s
__Pico板__(RP2040)_______ili9341串口屏___________
$ Y8 v, u9 |& W' H* I* g7 W Pin-16 GP12/SPI1-RX SDO(MISO) [非必须]
: _! n& n# Q3 _) N$ T6 A. V/ g' I, h6 s4 M Pin-14 GP10/SPI1-SCK SCK时钟
, j! m+ R0 K9 T0 ]$ q Pin-15 GP11/SPI1-TX SDI(MOSI)9 b) D' x$ V. R7 [1 u- S* u
Pin-17 GP13/SPI1-CSn CS2 W7 v( X9 w7 c
Pin-19 GP14 DC数据/命令选择
8 P. ^' M" ^5 n Pin-20 GP15 RST复位 [非必须]
- h, s' X( Z! ?* C0 h7 v. |5 W6 c
0 ]9 N3 x9 V F- ~, ~4 y1 a__Pico板__(RP2040)_______SD卡接口_____4 l6 p% e! T& ~6 g$ i) b4 N
Pin-1 GP0/SPI0-RX MISO
+ Y( a& W7 m1 {9 K1 L Pin-2 GP1/SPI0-CSn CS
0 a4 C8 P0 J4 g" e0 R Pin-4 GP2/SPI0-SCK SCK时钟3 [' Q$ Q/ M: F/ x
Pin-5 GP3/SPI0-TX MOSI! e( J2 F* {1 S& [1 [" O
+ b( @$ {9 ?& R. Q
__Pico板__(RP2040)_______UART串行通讯接口_____- G+ ^& N) F7 e0 H/ w3 c
Pin-6 GP4/UART1-TX RS-232-RX/ T3 j% ~/ Q* R# X
Pin-7 GP5/UART1-RX RS-232-TX
7 m4 m1 \: f8 l7 O; t! p, N% W' d+ P' r) U. D' m" G( f9 O
__Pico板__(RP2040)____AppleII必备的外设信号___6 m+ L& w" l5 d: W( W- T) O; e& }
Pin-9 GP6 摇杆[上] s8 C1 ]9 O9 N$ l) b
Pin-10 GP7 摇杆[下]8 \' ]8 E8 d* g3 V$ F, i6 t
Pin-11 GP8 摇杆[左]9 t; j7 ~$ ?! D! ~% \0 G
Pin-12 GP9 摇杆[右]
2 \; j# n) D a7 j1 g( t7 w8 J Pin-21 GP16 摇杆[按钮A]& d1 p( k( |8 x) c1 [& G1 f5 S
Pin-22 GP17 摇杆[按钮B]9 y3 p2 ]: T: x5 R! {6 H
Pin-34 GP28 扬声器输出7 F4 U0 ~ W" N; g4 S0 ?; R6 ]: f
( d( x2 j% l. _8 L: \
板上LED灯用于模拟磁盘访问指示灯。
# T4 p, V* ?* _! B; ^6 B
5 v& ]4 m- u4 ]* @1 kUART串口实现一个简单的调试控制,有如下命令:7 o2 Y& i7 N) n9 V5 D$ X( _9 Y
T:单步执行: T4 a: c2 x% k9 b. A
R:查看6502/Z80寄存器- `9 Q: N/ b; d8 a% |
G:开始运行(上电处于运行状态)
/ a) b1 ~6 C, O' v& C P:停止运行* ]) {- Q6 p& A9 t
@:复位6502/Z80
" C) ^* {# m3 u /:后续字符串作为键盘输入给AppleII" k7 N# W1 p" K7 v7 ^
5 `5 \: l1 K+ m. V6 J0 CProject仍在完善中。
3 z! ~+ F: }2 Z0 v暂时先提供一个uf2固件代码,供大家把玩。
1 R! F* Q) L. {这个固件是经典的LodeRunner(警察抓小偷)游戏。, X7 U$ [+ U: f, i0 x
用六个按钮就可以玩起来。
0 @ r% f/ B* _5 }! R: j |
|