一文搞定 ROM 芯片实战:型号解码、参数选型与电路连接
系列:微机原理与存储器系列(第 4 篇:ROM 芯片实战篇)
摘要:本文教你从型号看懂 ROM 芯片的容量与类型,详解 EPROM(2716/2764/27256)、EEPROM(24C02/28C64)、NOR Flash(W25Q 系列)、NAND Flash 的典型型号与引脚,解读存储容量、速度、擦写寿命、电压、接口等核心参数,给出并行 ROM、SPI Flash、I²C EEPROM 的连接方法与极简示例代码。关键词:ROM、EPROM、EEPROM、NOR Flash、NAND Flash、W25Q、24C02、SPI、I²C、选型。
关键词/标签:微机原理存储器ROMEPROMEEPROMFlashSPII²C选型嵌入式
首图建议:统一系列风格,标注"系列 04:ROM 芯片实战篇"。
1. 开篇:不同场景如何选 ROM 芯片,看懂型号是第一步
核心结论:固件固化、参数保存、大容量数据存储是三种截然不同的场景,分别对应 EPROM/Flash、EEPROM、NAND Flash;而看懂型号,是选对芯片的第一步。
ROM 家族从 EPROM 走到 NAND Flash,每种都对应一个典型场景:
| 应用场景 | 首选类型 | 理由 |
|---|---|---|
| 固件 / 程序固化(可小批量改写) | EPROM 或 NOR Flash | 随机读取、可 XIP 运行代码 |
| 参数 / 配置等掉电数据保存 | EEPROM | 字节级擦写、免擦除、寿命长 |
| 大容量数据(U盘、存储卡) | NAND Flash | 高密度、低成本 |
而这一切的前提,都是先看懂芯片型号——型号本身就包含了容量、类型、工艺等信息。
2. ROM 芯片命名规则拆解
核心结论:ROM/Flash 型号同样遵循"厂商 + 系列 + 容量 + 类型 + 速度 + 封装"的结构;EPROM 以"27"为系列代号、EEPROM 以"28"为系列代号,其后数字代表位容量。
2.1 从系列代号读懂"类型"
- 27 系列 = EPROM:Intel 的 27 系列产品,型号后数字表示位容量[[1]]。如 2764 的"64"代表 64K 位(bit),按字节每字 8 位,即 8K×8 = 8KB[[2]]。
- 28 系列 = EEPROM 或 Flash:如 28C16、28C17、2817A 是典型 EEPROM[[3]];数字"28"同时用于 EEPROM 和 FLASH 器件[[4]]。
- 字母"C":表示 CMOS 工艺。如 27C64 中间加 C 代表 CMOS EPROM,相比普通 EPROM 功耗小得多、价格稍贵、使用方法相同[[5]][[6]]。
2.2 举例拆解 27C64(EPROM)与 28C64(EEPROM)
27C64:
27 C 64 │ │ └─ 位容量 64Kbit → 8K×8 = 8KB[[7]][[8]] │ └────── C = CMOS 工艺,功耗低[[9]] └───────── 27 = EPROM 系列代号28C64:
28 C 64 │ │ └─ 64Kbit 容量(8K×8) │ └────── C = CMOS 工艺制造[[10]] └───────── 28 = EEPROM 系列代号容量换算口诀:EPROM/EEPROM 型号后的数字是位容量,除以 8 即得字节容量[[11]]。如 2764 = 64Kbit ÷ 8 = 8KB[[12]]。
2.3 EPROM 型号容量速查
| 型号 | 位容量 | 字节容量 | 地址范围 |
|---|---|---|---|
| 2716 | 16Kbit | 2KB | 0000H-07FFH[[13]] |
| 2732 | 32Kbit | 4KB | 0000H-0FFFH[[14]] |
| 2764 / 27C64 | 64Kbit | 8KB | 0000H-1FFFH[[15]][[16]] |
| 27128 / 27C128 | 128Kbit | 16KB | 0000H-3FFFH[[17]][[18]] |
| 27256 / 27C256 | 256Kbit | 32KB | 0000H-7FFFH[[19]][[20]] |
| 27512 | 512Kbit | 64KB | 0000H-0FFFFH[[21]] |
(型号容量分档参考[[22]][[23]][[24]])
3. 各类典型 ROM 芯片详解
3.1 EPROM 经典型号:2716、2764、27256
核心结论:2716 是 24 引脚 2KB EPROM,2764/27256 是 28 引脚 8KB/32KB EPROM;三者引脚具有兼容性,2764 以 PN 引脚(紫外线擦除)为典型特征。
- 2716:2KB×8,24 引脚,是 27 系列早期典型[[25]][[26]];
- 2764:8K×8,28 引脚[[27]]。2764 是 8K×8 紫外线擦除、电可编程 ROM,单一 +5V 供电,最大工作电流 75mA、维持电流 35mA,读出时间最大 250ns[[28]];2764 编程需 Vpp 加高压(如 25V)[[29]];
- 27256:32K×8,28 引脚[[30]][[31]]。
引脚兼容性:2716 与 2732 均为 24 引脚,2764、27128、27256 均为 28 引脚,引脚具有兼容性[[32]][[33]]。2764 的引脚包含 A12-A0 地址、D7-D0 数据、VPP(编程电压)、VCC、OE、CE 等[[34]]。
3.2 EEPROM 经典型号:24C02、28C64
核心结论:28C64 是"28"系列的并行 EEPROM,常见于存 BIOS;24C02 是 2Kbit 的 I²C 串行 EEPROM(256 字节),广泛用于单片机掉电数据保存,可反复写 30 万-100 万次。
28C64(并行 EEPROM):
- 28C64 是 EEPROM 的典型示例;"C"表示 CMOS 工艺;EEPROM 通常用于产品数据存储,因为可被计算机写入[[35]];
- 主板通常用 EEPROM 芯片储存 BIOS[[36]],BIOS ROM 正是这类并行 EEPROM 的经典应用。
24C02(I²C 串行 EEPROM):
- 容量 2Kbit =256 字节[[37]][[38]];
- 基于I²C 协议与单片机连接[[39]]:SDA(数据)、SCL(时钟)两线[[40]][[41]];
- 地址由A0/A1/A2引脚决定,可多器件共线;写地址 0xA0、读地址 0xA1[[42]];
- 可反复写入30 万-100 万次、读取无限次[[43]];
- 相比单片机内部 Flash,24C02 写入次数多、无需擦除操作,适合掉电保存(如电表度数、频道记忆)[[44]][[45]][[46]];
- EEPROM 与 RAM 读写操作几乎无差别,只是写入速度慢,断电后能保存[[47]][[48]]。
3.3 NOR Flash 典型芯片:W25Q 系列
核心结论:W25Q 系列是应用最广的 SPI NOR Flash,有 W25Q32/64/128 等容量档,体积小、功耗低,广泛用于嵌入式与消费电子;其特点是"先擦除后写入"。
- W25Q 系列是大容量SPI Flash 存储器,体积小巧、功能强大,广泛应用于嵌入式,尤其适合 STM32 项目[[49]];
- 常见容量档:W25Q32、W25Q64、W25Q128[[50]];
- 采用SPI 协议通信,简化硬件设计[[51]];
- 特性是先擦除后写入;通过通信接口(片选 CS 低电平有效)与 MCU 通信[[52]];
- 型号后缀数字通常代表容量(如 64 = 8MB,128 = 16MB)。
3.4 NAND Flash:典型型号、结构、应用
核心结论:NAND Flash 用于大容量数据存储,需按块/页读写、易出现坏块,通常需 ECC 纠错和坏块管理,典型应用是 U 盘与本地大容量存储。
- 应用定位:大容量存储[[53]](U 盘、存储卡等本地存储设备);
- 结构特点:单元串联成串行结构,需按块/页读写,不提供随机访问[[54]];
- 读取最慢(25-50μs)[[55]];
- 需错误探测/更正(EDC/ECC)算法处理不可靠的位交换现象,使用 NAND 一般要配合 ECC/坏块管理[[56]];
- NAND 使用时需先写驱动程序,且不能向坏块写入,需虚拟映射管理[[57]];
- 成本低、功耗低、密度高[[58]]。
4. 核心参数解读与选型指南
核心结论:选 ROM 芯片要看容量、速度、擦写寿命、工作电压、接口类型五大参数;场景决定类型:固件用 Flash/EPROM、参数用 EEPROM、大容量用 NAND。
4.1 五大核心参数
| 参数 | 含义与说明 | 参考案例 |
|---|---|---|
| 存储容量 | 可容纳数据量,注意"位"与"字节"换算 | 2764=8KB[[59]]、24C02=256B[[60]] |
| 读取速度 | 读出时间 / 访问时间 | 2764 读出最大 250ns[[61]] |
| 擦写寿命 | 可擦写次数上限 | 24C02 可写 30万-100万次[[62]] |
| 工作电压 | 读电压与编程电压(Vpp) | 2764 读 +5V,编程需高压[[63]][[64]] |
| 接口类型 | 并行(地址/数据总线)或串行(SPI/I²C) | 28C64 并行、24C02 走 I²C[[65]][[66]] |
4.2 选型指南
| 场景 | 推荐 | 理由 |
|---|---|---|
| 固件 / 程序固化 | NOR Flash(如 W25Q)或 EPROM | 随机读取、可 XIP 运行代码[[67]] |
| 配置数据 / 参数掉电保存 | EEPROM(如 24C02) | 字节擦写、写入次数多、免擦除[[68]][[69]] |
| 大容量数据存储 | NAND Flash | 密度高、成本低[[70]] |
| 大批量量产固件 | 掩膜 ROM | 成本最低 |
| 低功耗场景 | CMOS 型(C 后缀) | CMOS 功耗远低于普通型[[71]] |
参考一行:SRAM 用于 CPU 缓存、DRAM 做主内存、ROM 存固件、EEPROM 存配置、NOR Flash 存代码、NAND Flash 做大容量存储[[72]]。
5. 基础配置与典型电路
核心结论:并行 ROM 走"地址-数据-控制"三总线连接;串行 Flash 走 SPI 四线;EEPROM 走 I²C 两线;三者接线与编程方式截然不同。
5.1 并行 ROM 的连接(地址 / 数据 / 控制)
以 2764 并接单片机为例:
单片机 ──A12~A0────→ 2764.A12~A0(地址总线) ├──D7~D0────━━→ 2764.D7~D0(8 位数据) ├──读选通/PSEN─→ 2764.OE ├──译码输出────→ 2764.CE(片选) └──VPP 接编程电压(读时接 +5V)[[73]][[74]]2764 引脚含 A12-A0 地址、D7-D0 数据、VPP(编程电压)、VCC、CE、OE 等[[75]];CE(芯片使能)与 OE(输出使能)共同控制读取[[76]]。
5.2 串行 Flash(SPI)的接线
W25Q 系列走 SPI 协议,典型接线:
MCU ── SPI_SCK ──→ W25Q.CLK ├── SPI_MOSI ──→ W25Q.DI ├── SPI_MISO ←── W25Q.DO └── GPIO/SS ──→ W25Q./CS(片选,低有效)[[77]][[78]]特点:先擦除后写入,通过 SPI 底层函数与 MCU 通信[[79]]。
5.3 单片机读写 EEPROM(24C02,I²C)极简示例
I²C 两线:SDA(数据)+ SCL(时钟),线上挂上拉电阻[[80]];器件地址 0xA0(写)/0xA1(读)[[81]]。
// 以 STM32 为例(伪代码框架,参考 HAL 库)I2C_HandleTypeDef hi2c;// 写一字节到 addr 处uint8_twrite_byte=0xAA;HAL_I2C_Mem_Write(&hi2c,0xA0,addr,I2C_MEMADD_SIZE_8BIT,&write_byte,1,100);HAL_Delay(5);// EEPROM 写周期需等待[[82]]// 读一字节uint8_tread_byte;HAL_I2C_Mem_Read(&hi2c,0xA0,addr,I2C_MEMADD_SIZE_8BIT,&read_byte,1,100);注:写入时需要延时等待 EEPROM 内部写周期,读取则无需等待[[83]];若 I²C 总线死锁,可将 SCL/SDA 设为 GPIO 翻转 9 个时钟复位[[84]]。
6. 开源硬件中的应用
核心结论:Arduino/STM32 常外接 W25Q 与 24C02,主板 BIOS 用并行 EEPROM/Flash,这些都是 ROM 家族在真实硬件中的典型落地。
- STM32 外接 W25Q(SPI Flash):W25Q 广泛配合 STM32 做数据存储,提供
sFLASH_Init()初始化等驱动[[85]][[86]]; - STM32/51 外接 24C02(I²C EEPROM):基于 I²C 读写 24C02 是开发板最常用掉电存储方案[[87]][[88]][[89]];
- BIOS ROM 芯片:主板上通常用EEPROM芯片存储 BIOS[[90]]。
7. 常见误区澄清
核心结论:ROM 不是"只能读";Flash 与 EEPROM 的本质区别在擦除单位——一个是字节、一个是扇区/块。
误区一:ROM 只能读,不能写。
→纠正:EPROM、EEPROM、Flash 都可改写。EEPROM 可像 RAM 一样逐字节读写,只是写入慢;EPROM 可紫外线擦除重写[[91]]。误区二:Flash 就是 EEPROM,二者一样。
→纠正:Flash 可理解为 EEPROM 的升级版,核心区别在擦除单位——EEPROM 按字节擦除、成本高;Flash 按扇区/块擦除、密度更高成本更低(详见第 3 篇)。EEPROM(如 24C02)支持字节级擦写且免擦除即可覆盖写[[92]];而 W25Q 等 Flash必须先擦除后写入[[93]]。误区三:只看容量不看接口。
→ 并行(28C64)与串行(24C02、W25Q)接线和驱动完全不同,选型时接口类型与容量同等重要[[94]][[95]]。
结语:从"看懂型号"到"选对芯片"
ROM 芯片实战的核心是四步:
- 拆型号:27=EPROM、28=EEPROM/Flash、C=CMOS,后数字是位容量÷8=字节容量[[96]][[97]];
- 识场景:固件用 NOR Flash、参数用 EEPROM、大容量用 NAND Flash[[98]];
- 对参数:容量、速度、寿命、电压、接口逐项核对;
- 连电路:并行三总线 / SPI 四线 / I²C 两线,按接口接入[[99]][[100]][[101]]。
下一篇预告:《存储器扩展与地址译码实战》——讲清地址译码器、存储器与 CPU 的地址分配、位/字扩展的完整工程实践。
系列闭环:
- 第 1 篇:RAM 基础原理篇
- 第 2 篇:RAM 芯片实战篇
- 第 3 篇:ROM 演进史篇
- 第 4 篇:ROM 芯片实战篇(本文)
- 第 5 篇:存储器扩展与地址译码实战(下一篇)
注:本文事实来自公开教材、厂商文档与技术综述。W25Q 型号后缀与具体容量档、片内页/扇区大小等细节以具体数据手册为准;24C02 程序为教程示范框架,实际需按目标单片机与 HAL 库适配。