知易网
白蓝主题五 · 清爽阅读
首页  > 硬件维护

只读存储器芯片怎么读取?手把手带你实操

家里老打印机突然不认固件,修电脑时发现BIOS芯片没反应,或者拆开一台报废的路由器,看到那颗标着“24C02”“SST39VF020”的小黑块——很多人第一反应是:这玩意儿怎么把里面的数据搞出来?

先搞清它到底是什么

只读存储器(ROM)不是一块铁板钉钉不能动的“死芯片”。现在常见的其实是可编程类型,比如EEPROM、Flash ROM。它们出厂时数据已写好,但支持用特定方式擦除和重写。真正“只读”的掩膜ROM现在基本只出现在计算器、老式家电里,普通人几乎碰不到。

读取的前提:确认芯片型号和封装

别急着上电。先拿放大镜或手机微距拍清楚芯片表面丝印,比如“AT24C02-PU”“MX25L8006EM1I-12G”。再看封装:DIP-8?SOIC-8?TSOP-48?不同封装对应不同的夹具或座子。常见BIOS芯片多为SOIC-8,用国产CH341A编程器+SOIC-8夹子就能搞定;而一些带加密的MCU内置ROM,就得靠JTAG或SWD调试接口了。

最常用的三种读取方式

① 编程器直读(适合拆下来的芯片)
买个CH341A+适配座,装好驱动,打开软件(如AsProgrammer),选对芯片型号,点“读取”,几秒就出bin文件。注意:有些芯片需要加跳线或改供电电压(比如3.3V/5V切换),否则会提示“ID错误”。

② 在板读取(不拆芯片)
如果芯片还在电路板上,优先查有没有ISP接口(比如SPI引脚暴露在板边)。用杜邦线把MISO、MOSI、SCK、GND接到CH341A,再用软件选择“SPI在板读取”,勾选“自动检测芯片”,能识别的话直接读。失败?很可能是周围电路拉低了信号线,得断开部分外围再试。

③ 用逻辑分析仪抓通信(适合动态场景)
比如想看单片机启动时从ROM加载了啥代码。把逻辑分析仪探头接在ROM的SCK和MISO线上,触发设置为“SCK上升沿”,录下开机过程,再用Saleae软件解码SPI协议,导出十六进制数据流——这就是实时读到的内容。

举个真实例子

上周帮朋友救一台华硕老主板,开机卡在Logo。拆下BIOS芯片W25Q80DV,用CH341A读出来是个全FF的空片——原来之前刷坏没回滚。换了个同型号芯片,用备份好的bin文件重新烧入,插回去一开机,立马进系统。

几个容易踩的坑

• 芯片有写保护:SOIC-8芯片第7脚(WP)接地才是可读写,悬空或接高电平可能锁死;
• 供电不稳:USB供电不足时CH341A读取会校验失败,建议加外接电源或换USB3.0口;
• 文件乱码别慌:读出来的bin文件用WinHex打开,看开头是不是“55 AA”(常见BIOS签名),不是的话可能读取偏移错了,试试调整起始地址。

读ROM不是玄学,关键在型号、接口、供电三步对齐。动手前多看Datasheet,比瞎试强十倍。