原来你有基础,手艺也不错,那就太好了,省了我很多事。
1 X, e4 H0 T8 a
, j( J' j& A, n4 O! {首先说一下关于kazzo烧录器。你可以在闲鱼上搜索“kazzo”,有一家保定的,75块钱。虽然是闲鱼,但实际上是店主自制的全新kazzo,非量产,并非二手货。可以放心购买。
) t9 ~* O- e) @8 f然后解释一下你遇到的现象。你那个MMC1的卡带上的PRG ROM芯片丝印是HFC-RT-0,板子是HVC-SGROM-02,查数据库可以断定这是《サラダの国のトマト姫》(沙拉国的土豆公主)。+ {9 _% `, t6 N* C$ C
注意,事实上这个游戏的PRG ROM是256K,而你只读了128K的内容,而且读出来的数据,前后64K都是相同的。造成这个问题的原因是,Mask ROM的引脚排列,并不遵守JEDEC标准。换句话说,这个Mask ROM并不能直接放到烧录器插座上读数据,而是需要飞线。* G# |, k2 K Y4 O. Y
- PRG Mask ROM EPROM0 }8 W+ e% o, t
- ---_--- ---_---
1 Y X! e9 n1 V - A17 - |01 32| - +5V VPP - |01 32| - +5V
2 W) Q6 ]1 h* D. Q" F - /CE - |02 31| - +5V A16 - |02 31| - PGM
' f! x* u' \. N/ l: P* E - A15 - |03 30| - +5V A15 - |03 30| - NC
/ E" m) {: v% S& l8 O: z4 D - A12 - |04 29| - A14 A12 - |04 29| - A14( q% y2 L& @- l* h
- A7 - |05 28| - A13 A7 - |05 28| - A13
( r2 D% V5 u6 N& Z - A6 - |06 27| - A8 A6 - |06 27| - A8
! W. O5 U" F$ _ f; y4 O - A5 - |07 26| - A9 A5 - |07 26| - A9
8 w5 @+ y+ b, C/ L x G1 x2 H - A4 - |08 25| - A11 A4 - |08 25| - A11
E: @) T% x! R' ~, ~8 x7 U S" E8 B0 k- a' w - A3 - |09 24| - A16 A3 - |09 24| - /OE
/ J5 A4 g+ Z" {; U - A2 - |10 23| - A10 A2 - |10 23| - A10
4 w8 U) x8 D# F+ o5 P - A1 - |11 22| - /CE A1 - |11 22| - /CE4 R9 w- m4 w8 ?# C$ x
- A0 - |12 21| - D7 A0 - |12 21| - D73 N4 d: u) g1 z
- D0 - |13 20| - D6 D0 - |13 20| - D6! J5 d9 [& ~' F5 I8 {
- D1 - |14 19| - D5 D1 - |14 19| - D5, X2 R& P2 I d. i
- D2 - |15 18| - D4 D2 - |15 18| - D4& J1 L7 l) u- a1 }2 p
- GND - |16 17| - D3 GND - |16 17| - D3
. R$ V3 V' s4 _2 e6 q+ Q' B - ------- -------
复制代码 5 J1 @, ?! L0 Q, r$ T. F0 Z
这是32脚的PRG Mask ROM和32脚的EPROM引脚对比图。相比之下,Mask ROM没有/OE引脚,而多出一个A17引脚,所以32脚的PRG Mask ROM容量为256K,而EPROM只有128K。
0 S0 I3 B/ o, U( x5 B这就解释了你读Mask ROM的结果。对于通用编程器来说,它不知道你插到锁紧座上的是Mask ROM,它只把这个芯片当成是符合JEDEC标准的EPROM来对待。于是在读的时候,编程器给1脚加了高电平,24脚低电平,30脚电平未知,暂且假设是高电平,31脚低电平。- }/ u; V2 ~2 U1 u* ~
可见,Mask ROM的A16和A17都被定死了电平,所以你只能读出芯片容量(256K)的四分之一的数据,也就是64K。
0 \1 q5 ^# m- P3 _/ x! ^2 M) X+ m9 e而当编程器把芯片当成EPROM读到高64K的时候,2脚高电平。但对于Mask ROM来说,2脚等效于22脚,而22脚是片选,始终是低电平。对于常见的单片机来说,低电平的灌电流能力比高电平的拉电流能力强,于是2脚被强制拉低,于是和读低64K的情况一样。所以读出的高64K和低64K数据相同。 |