校准值、序列号、MAC、运行计数这类小参数,到底该存 EEPROM 还是 NOR Flash?本文讲清两者在擦写粒度、寿命、写入耗时与掉电风险上的本质差别,附华邦 W25X/W25Q、Microchip 24LC/25LC、ST M24C/M95 真实型号与选型要点,帮硬件与嵌入式工程师避开"拿 Flash 当 EEPROM 用"的量产大坑。
存几十字节的校准值、序列号、MAC 地址、开机次数,还是存几 MB 的固件、字库、图片?这决定了你该用 EEPROM 还是 NOR Flash。一句话:写得频繁、每次写得少 → 选串行 EEPROM(可按字节直接改写、寿命 100 万~400 万次);容量需求大、以读为主、偶尔整块更新 → 选小容量 SPI NOR Flash(4KB 扇区、10 万次擦写、单位容量便宜十倍以上)。最常见的错误是拿 NOR Flash 当 EEPROM 用来做高频计数器——写一个字节要擦掉整个 4KB 扇区,几个月就把扇区写坏,还可能在掉电瞬间丢掉整块数据。
| 维度 | 串行 EEPROM(I²C / SPI) | 小容量串行 NOR Flash(SPI) |
|---|---|---|
| 典型容量 | 1Kb – 1Mb(128B – 128KB) | 512Kb – 128Mb(64KB – 16MB) |
| 接口 | I²C 两线,或 SPI 四线 | 标准 SPI / Dual / Quad SPI |
| 写入粒度 | 可按字节或页直接改写,无需先擦除 | 必须先擦除扇区(最小 4KB)才能写 |
| 擦除单位 | 不需要独立擦除操作 | 4KB 扇区 / 32KB、64KB 块 / 整片 |
| 擦写寿命 | 100 万 – 400 万次(按字节/页) | 约 10 万次(按扇区) |
| 数据保持 | ≥ 100 – 200 年 | ≥ 20 年 |
| 单次写耗时 | 页写自定时,约 3.4 – 5 ms | 页编程(256B)典型 0.7 ms,但扇区擦除典型 45 ms、最大可达数百 ms |
| 读取速度 | I²C 100k/400k/1MHz;SPI 约 5 – 20 MHz | 标准 SPI 50 – 133 MHz,Quad 模式带宽再翻数倍 |
| 能否放代码 / XIP | 否,只做数据 | 可以(QSPI XIP、Bootloader、字库、FPGA 配置) |
| 单位容量成本 | 高(按 Kb 计价) | 低(按 Mb 计价) |
| 掉电风险 | 低,页写为自定时原子操作 | 较高,扇区擦除耗时长,掉电可能损坏整个扇区 |
| 典型用途 | 校准参数、序列号、MAC、配置项、运行计数 | 固件 / Bootloader、字库、图片、日志、FPGA 配置码流 |
EEPROM 的每个字节都可以单独改写,控制器内部自己完成"擦 + 写",主控发一条写命令,等几毫秒即可。NOR Flash 的物理特性决定了只能把 1 写成 0,把 0 变回 1 必须整块擦除——所以改写 1 个字节,要么这块区域还是"空白"(0xFF)可以直接编程,要么就得先擦掉整个 4KB 扇区。
这带来三个后果:
如果确实要用 NOR Flash 存参数,正确做法是:至少两个扇区做乒乓(A/B)写 + 每条记录带 CRC 校验 + 追加式(append-only)写入,写满一个扇区再擦另一个。等于自己实现一个简易的 EEPROM 仿真层。
以下均为在产的真实型号,具体电压档、温度等级与封装以官方 datasheet 为准。
| 类型 | 品牌 | 型号 | 容量 | 接口 | 关键规格 |
|---|---|---|---|---|---|
| I²C EEPROM | Microchip | 24LC256 / 24AA256 / 24FC256 | 256Kb(32KB) | I²C | 1M 次擦写、>200 年保持、64 字节页;24LC 400kHz、24FC 1MHz、24AA 可低至 1.7V |
| I²C EEPROM | Microchip | 24LC02B / 24LC64 | 2Kb / 64Kb | I²C | 小参数区最常用的两档,生态成熟、料源多 |
| I²C EEPROM | ST | M24C02 / M24C64 | 2Kb / 64Kb | I²C | >4M 次擦写、32 字节页、支持 1MHz 快速模式;M24C64-A125 为车规宽温版 |
| SPI EEPROM | ST | M95256 | 256Kb(32KB) | SPI | 1M 次擦写、64 字节页,适合已有 SPI 总线、不想再引 I²C 的板子 |
| SPI EEPROM | Microchip | 25LC256 | 256Kb(32KB) | SPI | 1M 次擦写、64 字节页,与 M95256 功能对位 |
| SPI NOR | Winbond 华邦 | W25X20CL / W25X40CL | 2Mb / 4Mb | SPI / Dual | 4KB 扇区、256 字节页、2.3–3.6V,小容量 Bootloader / 参数区的便宜之选 |
| SPI NOR | Winbond 华邦 | W25Q16JV / W25Q32JV / W25Q64JV / W25Q128JV | 16 / 32 / 64 / 128Mb | Quad SPI | 4KB 扇区、100K 次擦写、>20 年保持;应用最广的 QSPI NOR 家族 |
| SPI NOR | Microchip | SST26VF016B / SST26VF064B | 16Mb / 64Mb | SQI(Quad) | SuperFlash 工艺,小扇区、擦除快,适合参数与代码混合存储 |
晟雅泰(SUNTEC)现货供应 华邦 Winbond W25X / W25Q 系列 SPI NOR Flash、Microchip 24LC / 25LC 系列 EEPROM 与 ST M24C / M95 系列 EEPROM,覆盖消费、工业宽温与车规级,可提供选型比对、跨品牌替代方案、样品与批量报价,并由资深 FAE 协助参数区掉电保护与磨损均衡方案设计。把型号或 BOM 发给我们,24–48 小时响应。欢迎联系我们获取现货与替代方案。
核心差别是擦写粒度。EEPROM 可以按字节或按页(16–64 字节)直接改写,不需要单独擦除,寿命通常 100 万~400 万次,数据保持 100 年以上;NOR Flash 只能把 1 写成 0,要把 0 变回 1 必须擦除整个扇区(最小 4KB),寿命约 10 万次/扇区、保持 20 年以上。所以 EEPROM 适合小而频繁的参数改写,NOR Flash 适合大容量、以读为主、整块更新的固件与字库。
可以,但必须自己做管理层。写 4 个字节参数会消耗整个 4KB 扇区一次擦写寿命,且扇区擦除典型 45 ms、最大可达数百毫秒,中途掉电整个扇区都可能损坏。正确做法是:至少两个扇区做乒乓(A/B)写、每条记录带 CRC 校验、采用追加式写入,写满再擦另一个扇区。写得不频繁的场景这样做没问题;高频写建议直接外挂一颗 EEPROM。
大体可以。24Cxx 是行业通用的 I²C EEPROM 生态,Microchip 24LC/24AA、ST M24C 等在封装与引脚上兼容,替换时重点核对三件事:页大小(Microchip 24LC256 为 64 字节、ST M24C64 为 32 字节,写驱动要跟着改)、最大写周期时间(一般 3.4–5 ms)、以及 WP 写保护脚与 A0–A2 地址脚的行为。电压范围与温度等级也要对齐。
写得不频繁才靠谱。多数 STM32 F 系列内部 Flash 擦写寿命只有约 1 万次,扇区还很大(F4 高地址区可达 128KB),擦除期间 CPU 从 Flash 取指会被阻塞,实时性受影响。如果参数需要频繁改写,外挂一颗 24C02/24C64 EEPROM 成本极低却省掉大量返修风险;或者选用 STM32L0/L1 这类自带真正 data EEPROM 的型号。
工业控制器、仪表和机柜维护口不只是“能连电脑”。需要把 USB 功能做进控制器,可关注 Microchip PIC18F4550-I/P;新一代 32 位控制板希望同时兼顾 USB 与现场通信,ST STM32F072CBT6 更适合纳入主控路线;维护口需要隔离时,ADI ADuM3160BRWZ 可作为全速/低速 USB 隔离环节。按成品的维护方式选择,接口会更贴近产品定位。
阅读全文 Read more →小型设备更换主控,不一定要把原有软件和板卡一起推倒重来。Microchip ATMEGA328P-PU、ATTINY85-20PU 适合分别讨论既有 AVR 板卡延续和紧凑型直插控制;ST STM32C031F6P6、STM32G030F6P6 则面向可采用 3.3V 供电的 Cortex-M0+ 新板开发。四款的区别不仅是位数和主频,还包括供电、封装、运行内存以及原平台的延续价值。
阅读全文 Read more →现有 MCU 没有 CAN FD 时,有两条路:通过 SPI 外挂 Microchip MCP2518FD-H/SL,或者换成片内带 CAN FD 控制器的 ST STM32G431CBT6、NXP S32K144HFT0VLLT。本文对比两条路线的通道数、速率、供电与温度,并说明 MCP2515-I/SO 只做经典 CAN、TJA1057GT 收发器的 5V 供电限制。
阅读全文 Read more →