主控能不能自动认出一颗刚换上去的 SPI NOR,取决于这颗器件的 SFDP 表里写了什么。华邦和旺宏用的是同一条 5Ah 指令,但表的公开程度、遵循的 JESD216 版本,以及能不能描述 4 字节寻址,三家项目最容易踩坑的正是这几处。本文对比华邦 W25Q128JVSIQ、W25Q256JVEIQ 与旺宏 MX25L6406EM2I-12G、MX25L25645GMI-08G,说明换料前该确认哪几件事。
做网关、路由器、工控主板或显示终端时,SPI NOR 换品牌是常事:缺货、涨价、国产化,都会让项目在华邦和旺宏之间来回切。切换顺不顺,很大程度上取决于主控的启动代码是写死了某一家的参数,还是靠 SFDP 自动读出来。
SFDP 是 JEDEC 的串行 Flash 可发现参数标准。按旺宏数据手册的说法,它提供一套标准化的内部参数表来描述串行 Flash 的功能与特性,主机软件可以查询这些表,以适配不同厂家之间的差异,概念类似 CFI。华邦的描述是:SFDP 寄存器包含器件配置、可用指令和其他特性信息,这些参数存放在一个或多个参数标识(PID)表里。
| 项目 | W25Q128JVSIQ | W25Q256JVEIQ | MX25L6406EM2I-12G | MX25L25645GMI-08G |
|---|---|---|---|---|
| 品牌 | 华邦 Winbond | 华邦 Winbond | 旺宏 Macronix | 旺宏 Macronix |
| 容量 | 128Mb | 256Mb | 64Mb | 256Mb |
| 电压 | 2.7 ~ 3.6V | 2.7 ~ 3.6V | 2.7 ~ 3.6V | 2.7 ~ 3.6V |
| 读 SFDP 指令 | 5Ah | 5Ah | 5Ah | 5Ah |
| JEDEC ID(9Fh) | EF 40 18 | EF 40 19 | C2 20 17 | C2 20 19 |
| 数据手册标注的 JESD216 版本 | 未标注具体版本 | 未标注具体版本 | JESD216(1.0) | JESD216B(1.6) |
| SFDP 表内容是否印在数据手册里 | 否,指向应用说明 | 否,指向应用说明 | 是,逐字段列出 | 是,逐字段列出 |
| 表中的地址字节字段 | 数据手册未列出 | 数据手册未列出 | 仅 3 字节 | 3 或 4 字节 |
| 4 字节地址指令表 | 数据手册未列出 | 数据手册未列出 | 无 | 有,列出 21h/5Ch/DCh |
| 厂商专有参数表 | 数据手册未列出 | 数据手册未列出 | 有(ID C2h) | 有(ID C2h) |
两家都是同一条指令:5Ah,后接 24 位地址和 8 个空时钟周期,然后读出数据。到这一层为止是通用的。差别从下一层开始。
旺宏把 SFDP 表逐字段印进数据手册。MX25L6406E 的 JEDEC 基本表是 09h 个双字,起始地址 000030h;MX25L25645G 的基本表是 10h 个双字,同样从 000030h 开始,另外在 0000C0h 还有一张 4 字节地址指令表。字段值、擦除指令、扇区大小都能直接查到。
华邦这四颗的数据手册则统一写“SFDP 寄存器数值与说明请参阅华邦 SFDP 定义表应用说明”,只说明是 256 字节的 SFDP 寄存器,不列表内容。旺宏的 MX25L12835F 也是同样处理,指向应用说明。对要写跨品牌自动识别固件的团队来说,这意味着手上的资料不对称:旺宏的可以直接照着实现,华邦的需要另外索取应用说明。
这一条在容量超过 128Mb 的项目上最要紧。MX25L6406E 标注遵循 JESD216,表内的版本号是 1.0,它的“寻址所用地址字节数”字段取值是“仅 3 字节”——对 64Mb 器件来说这没问题,3 字节地址足够覆盖。
MX25L25645G 标注遵循 JESD216B,版本号 1.6,同一个字段取值是“3 或 4 字节”,并且多出一张专门的 4 字节地址指令表,把 21h、5Ch、DCh 这些 4 字节擦除指令列出来。256Mb 以上的器件必须切到 4 字节寻址才能访问完整空间,主控要自动用对指令,靠的就是这张表。华邦这两颗的数据手册没有标注具体遵循哪一版,只说与 2010 年确立的 SFDP 标准以及 2011 年起发布的 JESD216 系列标准兼容。
这是很容易被忽略的一点。旺宏在 MX25L25645G 的数据手册里直接写明:RDSFDP、RES 和 REMS 不支持 4 字节地址。华邦 W25Q256JV 的 4 字节地址模式指令表里,读 SFDP 仍然是 5Ah 加 A23-A16、A15-A8、A7-A0 再加空周期,而相邻的其他指令已经改用 A31-A24 开头。
所以固件在切到 4 字节模式之后去读 SFDP,地址仍然要按 3 字节发。把这条指令和普通读写一起做地址位数切换,是启动阶段常见的一类故障。
旺宏在 JEDEC 标准表之外另挂了一张厂商专有表(表头 ID 为 C2h),把 JEDEC 表不描述的内容放进去。MX25L6406E 的那张列了 Vcc 上下限、是否具备 Reset# 和 Hold# 引脚、深度掉电、软件复位及其指令码、擦写暂停与恢复、环绕读模式及其指令码和数据长度,以及单块锁定(支持位、易失或非易失、指令码、默认保护状态)、Secured OTP 和 Read Lock。MX25L25645G 的厂商表则列出 E0h、E1h、E2h、E3h 这几条单扇区锁定指令,以及 Vcc 范围和复位、保持引脚的有无。
换句话说,保护机制这一层在厂商表里,不在 JEDEC 标准表里。如果项目用到了块锁定或 OTP 区,仅靠 JEDEC 基本表做自动适配是不够的。华邦的数据手册没有对 SFDP 的边界作说明,但它不印表本身,在实践中就是同一个缺口。
MX25L6406E 是支持 SFDP 的,数据手册第一页就有“支持 SFDP 模式”的特性条目,正文里有读 SFDP 模式一节,表也列全了。但它的修订记录显示,这项能力是 2012 年 3 月的 Rev 1.4 才加进去的,而且每张表的表头都明确写明适用的订货型号,例如 MX25L6406EM2I-12G。同系列的其他后缀、或更早批次,未必有同样的表。这也是换料前要按完整订货型号确认、而不是按系列名确认的原因。
把主控型号、需要的容量、是否从这颗 NOR 启动、以及固件是写死参数还是走 SFDP 自动识别告诉我们,我们可以在两家之间给出更贴近实际的候选,并同步反馈当前批次与交期。已经在用的料号要找同容量替代方向,把完整订货型号发来即可。
本文出自 SUNTEC 晟雅泰(苏州晟雅泰电子有限公司)技术团队。
按旺宏数据手册列出的基本表字段,包括器件容量、寻址所用的地址字节数(3 字节、3 或 4 字节、仅 4 字节)、各类擦除指令的指令码和对应扇区大小、4KB 擦除指令码、各种读模式的支持位与所需空周期、写入粒度等。主控读到这些之后,可以不改代码就适配不同厂家的器件。
一样,都是 5Ah,后接 24 位地址和 8 个空时钟周期。差别在指令之外:旺宏把表的内容逐字段印在数据手册里,华邦这几颗只说明是 256 字节的 SFDP 寄存器,具体数值指向它的 SFDP 定义表应用说明。另外要注意,读 SFDP 这条指令在两家都不走 4 字节地址,即使器件已经切到 4 字节模式,地址仍按 3 字节发。
因为 3 字节地址最多只能覆盖到 128Mb,超出部分必须切到 4 字节寻址。表里的“地址字节数”字段和有没有 4 字节地址指令表,决定了主控能不能自动用对指令。MX25L25645GMI-08G 标注遵循 JESD216B,该字段为“3 或 4 字节”,并带有列出 21h、5Ch、DCh 的 4 字节指令表;而 64Mb 的 MX25L6406EM2I-12G 标注遵循 JESD216,该字段是“仅 3 字节”。
它能解决容量、擦除指令、读模式这一层的自动适配,但覆盖不到全部。旺宏就在 JEDEC 标准表之外另挂了厂商专有表,把 Vcc 上下限、复位和保持引脚、深度掉电、擦写暂停恢复,以及单块锁定、Secured OTP、Read Lock 这些放进去。如果项目用到保护机制,这部分要单独适配。换料前也要按完整订货型号确认,同系列不同后缀或更早批次未必有同样的表。
给 FPGA 配一颗配置 Flash,容量到底该选 64Mb 还是 256Mb?本文讲清 Artix-7 / Kintex-7 / Zynq-7000 的码流大小怎么估、MultiBoot 双镜像与用户数据怎么预留,并点破 4 字节寻址、VCCO_0 电压匹配、配置时间计算三大坑,附华邦 W25Q、旺宏 MX25L/MX66L、美光 MT25Q 真实型号与跨品牌替代对照。
阅读全文 Read more →控制器、仪表、网关和显示终端需要外接固件存储时,先分清 1.8V 还是 3V,再看 64Mb 或 128Mb,比先比较品牌更有效。Winbond W25Q64JWSSIQ 是 64Mb、1.7–1.95V 的 SPI/Dual/Quad NOR;Macronix MX25L6406EM2I-12G 是 64Mb、3V 方向;Micron MT25QU128ABA1ESE-0SIT 与 MT25QL128ABA1ESE-0SIT 分别对应 128Mb 的 1.8V 与 3V SPI NOR 路径。电压、容量与封装一起锁定,才能让完整料号真正落到板上。
阅读全文 Read more →当 NOR Flash 容量不够、又不想上并行 NAND 时,SPI NAND 是性价比之选。本文讲清华邦 W25N 系列的容量、接口与 ECC 要点,给出旺宏 MX35LF 等替代对照,帮工程师为日志/数据/字库存储快速定料。
阅读全文 Read more →