» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 22 12
发新话题
打印

[硬件改造] 芯片记忆依然掉记录

引用:
原帖由 mike11 于 2025-9-15 09:24 发表
芯片 看来也不是100%啊。。。一直以为芯片绝对没问题。。。。。。
别听他胡扯,记忆芯片现在很成熟了,不存在任何问题


TOP

引用:
原帖由 elitex 于 2025-9-15 10:21 发表


别听他胡扯,记忆芯片现在很成熟了,不存在任何问题
我哪有胡扯,你就不能友善点?我上面那帖回了那么多你无视,别人回个贴你就回复他说我在胡扯?
在贴吧我看见你跟你打招呼,你也无视我
大家都是玩家,不能心平气和的交流吗

这两个博主/up主给GBA卡带更换FRAM,就没有加任何其他芯片,直接用FRAM换掉SRAM搞定的,请解释下为什么他们没有加任何别的芯片
https://www.youtube.com/watch?v=haJ505LZZDg
https://blog-e.uosoft.net/entry/20220906/1662449672
而DQ系列卡带一贯有掉记录的传统,现在都能搜到一大堆日站文章的

我特地搜了FM18W08和FM16W08
FM18W08是synchronous的,而FM16W08是asynchronous的,所以https://forums.nesdev.org/viewtopic.php?t=24180里的讨论对FM16W08并没有什么意义
请问,既然FM16W08是异步的,为什么还需要加其他芯片?如果你有不同意见,欢迎你阐述出来,如果我发现我错了,我一定承认
别上来就一句“胡扯”完事
你那么忙,没空打几个字吗?

[ 本帖最后由 tzenix 于 2025-9-17 00:01 编辑 ]



TOP

老兄别生气,ls这位基本上没有干货,就会贬低别人,没必要认真。

不过dq删存档这个图啥,是程序bug么,总不该是故意的吧。
引用:
原帖由 tzenix 于 2025-9-16 23:50 发表

我哪有胡扯,你就不能友善点?我上面那帖回了那么多你无视,别人回个贴你就回复他说我在胡扯?
在贴吧我看见你跟你打招呼,你也无视我
大家都是玩家,不能心平气和的交流吗

这两个博主/up主给GBA卡带更换FRAM ...


TOP

引用:
原帖由 tzenix 于 2025-9-14 22:57 发表
最近又做了一些研究
1.这个帖子里讨论的是FM18W08,之所以要加74HC02,是因为FM18W08是同步FRAM
而我用的是FM16W08,是异步FRAM,因此是不需要74HC02的
2.我发现网上很多GBA卡带改芯片记忆的做法,就是直接用FM18 ...
FM1808/FM18W08/FM1608/FM16W08全部是异步RAM,那篇文章里说的Synchronous其实作者想表达的是地址的确定只取决于/CE(片选)信号, 而SRAM上基本都以:读取时/OE和/CE中较晚发生的一个,写入时/WE和/CE中较晚发生的一个来作为地址锁存条件。
以上这个只是顺带一提,是同步RAM还是异步RAM不是你发生潜在数据错误的关键,不用去纠结,我也不展开说。

* 你改造后丢数据,主要来源于SRAM改FRAM时的2个常见遗漏。
1. FRAM的/CE脚的默认拉高。这个具体见FM1808/FM18W08,FM1608/FM16W08的datasheet。拉高的原因是在开机上电时,FRAM的/CE脚的驱动方如果是某些逻辑芯片的输出脚,而刚开机时因为这些逻辑芯片本身还未进入完全正常的工作状态,而导致/CE脚悬空信号高低电平不稳态,而导致地址被意外锁存,然后又被开机时异常浮动的/WE信号紧跟,导致了意外的数据写入。这个在SRAM时理论上也会发生,但是卡带的SRAM因为有一个CE2脚,它会被一个电源芯片管理,在电压完全到达工作状态前,电源管理芯片会使用纽扣电池作为SRAM的供电电源,并输出低电平给CE2脚,导致SRAM芯片此时是不会被/CE1的意外低电平片选的,所以杜绝了这个问题,而FRAM,因为只有一个/CE,所以稳妥的设计上,需要提供一个拉高电阻,也就是在FRAM的P20脚上直接接一个10K电阻,然后10K电阻另一头接卡带的Vcc(+5V)脚。(见图1)
2. 高地址线浮空未接。DQ5等SFC游戏,大多用64Kbit的SRAM,地址线A12..A0,而FM1808/FM18W08是256Kbit的FRAM,地址线A14..A0,你可以看成是4个64K的RAM在那里,如果FM1808/FM18W08的A13和A14是没有接任何地址线的,那就会浮空,浮空时它们的值是不确定的,当读写发生时,可以看成是4片64KRAM中的某一片在那里被随机选择了一片,读取了或写入到了A12-A0地址的内容。所以A14(1号脚)和A13(26号脚)要给它们确定的值,0或者1都可以,总之要确定,所以一般把它们接地,也就是取0值输入给它们。特别注意,因为A13地址线在Pin26上,而这个脚在卡带的SRAM上是CE2脚,是有输入信号的,所以自己做转接板时,不要把FRAM的26脚直接接到原来板子的26脚上,否则会导致和供电管理芯片输出的信号对接,而FRAM的A14脚是P1,这个在64Kbit的SRAM上是无连接的脚,所以一般原卡带PCB上这个P1也是不接线的,如果原卡带PCB上这个P1是有接线的,那也要特别注意,不要你提供的是GND而原来卡带的接线是VCC,那就短路烧鸡了。

* 你看的那个nesdev帖子里的OSHPark的那个电路板做了什么:
1. 它在原来SRAM的P20脚也就是/CE1脚加了我第1点说的拉高电阻R1,然后输入给74HC00
2. 它把FRAM的P1/P26脚接了GND,也就是完成了我第2点说的
3. 它额外把原来SRAM的P22和P27脚的/OE和/WE接到了74HC00,然后通过74HC00的逻辑,去输出一个信号作为FRAM的/CE信号,输出表达式是
  !FRAM.CE_n = !SRAM.CE1_n & !(SRAM.OE_n & SRAM.WE_n)
  它的目的,是为了确保只在读取或写入的开始时,才发生FRAM的/CE的下降沿,也就是锁存地址。本意是因为FRAM芯片在/CE发生一次下降沿后,就算地址再怎么变化,期间/OE和/WE就算有跳高电平,然后重新跳地电平进行新的写入,写入的地址都不会再变化,因为它的目标地址锁存只发生在那次/CE下降沿的时候。(见图2) 但这个其实对MD和SFC都不必须,因为这两个机器,它们官方卡带提供给SRAM部分的/CE信号,每一次地址变化的写入,都会重新产生一次/CE下降沿。但是加了这个逻辑是更稳妥的,尤其是如果不是官方的卡带线路设计,而是第三方的PCB设计,用的/CE信号来源有差异时。

* 现在你该做什么最简步骤来改造你已经装了FRAM(但是偶发不太正常)的卡(无需装74HC00)
以芯片一端的半月牙形缺口朝正上方,芯片文字面对着自己为基准,左上角为P1,左下角为P14,右下角P15,右上角为P28
1. 剪断P1脚,和P26脚和卡带PCB之间的连接,并将这FRAM的这两个脚,和FRAM的P14脚(GND脚)进行连接。使A13/A14地址线确定。
2. 在FRAM的P20脚,接一个10K电阻,电阻另一端,飞线到FRAM的P28脚(VCC脚)。(FRAM的P20脚不用和卡带PCB的SRAM芯片的P20脚断开,要让它们维持连接的)

[ 本帖最后由 SONIC3D 于 2025-9-17 16:37 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

引用:
原帖由 SONIC3D 于 2025-9-17 16:12 发表


FM1808/FM18W08/FM1608/FM16W08全部是异步RAM,那篇文章里说的Synchronous其实作者想表达的是地址的确定只取决于/CE(片选)信号, 而SRAM上基本都以:读取时/OE和/CE中较晚发生的一个,写入时/WE和/CE中较晚发生的 ...
大神终于下场了!再次学习了感谢

TOP

引用:
原帖由 SONIC3D 于 2025-9-17 16:12 发表


FM1808/FM18W08/FM1608/FM16W08全部是异步RAM,那篇文章里说的Synchronous其实作者想表达的是地址的确定只取决于/CE(片选)信号, 而SRAM上基本都以:读取时/OE和/CE中较晚发生的一个,写入时/WE和/CE中较晚发生的 ...
SFC卡有256Kb的记忆,这些卡SRAM也没有CS2脚,这个是怎么做到不被CS1意外低电平片选的?

TOP

引用:
原帖由 danmantemp 于 2025-9-17 14:20 发表
老兄别生气,ls这位基本上没有干货,就会贬低别人,没必要认真。

不过dq删存档这个图啥,是程序bug么,总不该是故意的吧。

dq不会删存档

TOP

 22 12
发新话题
     
官方公众号及微博