|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
树莓派Pico采用他自己的处理器RP2040,双核M0,133MHz。' O5 g2 Y/ J8 ^, O/ Q4 F3 R
为了体验它的双核编程环境和性能,我用它来实现一个AppleII8 W0 E' ]- x b' H
仿真,当然是在AppleWin代码基础上移植改造的。2 m) u1 H& h9 o4 n
- ~5 x( Y- a: U) Z5 w5 D4 n
Core0用作管理、外设仿真,Core1用作CPU6502/Z80仿真。/ W7 Y! a1 l6 S6 s6 t
采用SIO/FIFO实现两个核的数据交换。+ D# j, c: W# c, I
自旋锁用于需要共同操作的UART操作权管理。
{' p$ h, P. @, z6 O, o5 h' Q5 J! x. U4 u9 O7 [9 g4 y( f) m
ROM和磁盘数据放在FlashMemory中。4 B* Q! B2 U; R8 ?! d
4 |! Z5 s$ x4 P5 l B; @4 [' o7 w在RP2040仿真AppleII,可以达到真机速度的1.6倍。
2 q( g6 a* j3 E2 O5 d$ SRPi Pico当然只能串口屏。
& U w! j* j/ j- d( p. r f
8 r2 X. ^$ N+ |" P- `5 V, O5 n: D, v7 w__Pico板__(RP2040)_______ili9341串口屏___________
( Y9 X) {$ b8 s0 E! C: c& F Pin-16 GP12/SPI1-RX SDO(MISO) [非必须]2 e6 b0 i6 I4 G. F
Pin-14 GP10/SPI1-SCK SCK时钟8 l' I0 l% o% Z/ W7 Z% a
Pin-15 GP11/SPI1-TX SDI(MOSI)
2 L# R* o' H, C) s% s5 w Pin-17 GP13/SPI1-CSn CS
+ c; B" ~2 [8 k9 i$ B: {& u Pin-19 GP14 DC数据/命令选择
2 R% p) n1 e- v8 T) V. T7 d Pin-20 GP15 RST复位 [非必须]5 d; g' V7 B: k! R8 k$ R$ l. }& j, k
. n, k; [" z9 x9 Z f. Z__Pico板__(RP2040)_______SD卡接口_____) f6 q: |1 \$ V5 c! d! Y( i9 B7 d; H
Pin-1 GP0/SPI0-RX MISO
* l* J9 y% E) x0 t7 m Pin-2 GP1/SPI0-CSn CS
5 j2 A3 Y3 x) @2 ] Pin-4 GP2/SPI0-SCK SCK时钟) c0 q5 `/ Z% E
Pin-5 GP3/SPI0-TX MOSI' I) J* D; x' ^% @5 t
5 s- b: ~4 G2 m! \! O( q, h
__Pico板__(RP2040)_______UART串行通讯接口_____( D! `0 ^2 S0 \3 ]
Pin-6 GP4/UART1-TX RS-232-RX# X. c" r* [! \: T( l
Pin-7 GP5/UART1-RX RS-232-TX
3 E* V9 c8 _# M$ J& J
, v- h) o; Q& g/ Y__Pico板__(RP2040)____AppleII必备的外设信号___5 _2 k; b; M6 L8 Q, G
Pin-9 GP6 摇杆[上]% W+ j# P# p$ g/ p
Pin-10 GP7 摇杆[下]
4 L D2 ]) a$ Q$ T5 T Pin-11 GP8 摇杆[左]0 m( _/ o0 G' i4 G& \* f
Pin-12 GP9 摇杆[右]* o0 q! z! H) ~# Y0 B9 g
Pin-21 GP16 摇杆[按钮A]3 B" u, d' H! N& o) W8 ?+ r; m5 ^
Pin-22 GP17 摇杆[按钮B]
t6 O; d. g) v1 A3 J2 Z# k Pin-34 GP28 扬声器输出- z8 U& Z% k( w" R
. w: D5 h1 P, v. m板上LED灯用于模拟磁盘访问指示灯。
0 c* ~* h. Q; O; c( _, b. }, _7 \5 ]
UART串口实现一个简单的调试控制,有如下命令:
4 p' n5 v+ o( H* b6 q. p T:单步执行
3 ]- E/ z# q/ |$ _8 a' q1 l! { R:查看6502/Z80寄存器
& U) u4 H0 ~+ J3 E" m" M G:开始运行(上电处于运行状态)+ Q% a! L3 B% D. b6 H+ H
P:停止运行
* O" a" C3 p+ n8 T @:复位6502/Z80% H& ]* R5 h4 @8 h
/:后续字符串作为键盘输入给AppleII
, N0 Q- Y/ `( O6 B! s7 n9 R
: c7 B M% J4 v% [ `Project仍在完善中。- \; N, f: P6 `, q R) k, V; X
暂时先提供一个uf2固件代码,供大家把玩。
# `/ p5 s! \ r1 b6 [4 f这个固件是经典的LodeRunner(警察抓小偷)游戏。
" b/ L2 `) e9 V7 k& P* \1 Z# D用六个按钮就可以玩起来。
) K, b$ u2 }' V+ c; q7 T- R |
|