最近设计工程时发现上次使用的AT24C128M已经不能满足数据存储了,所以重新选用一个更大的容量进行存储,因此时序也会发生一定的变换。

一、芯片概述

AT24CM01 是 Atmel(现 Microchip)推出的一款 1Mbit(131,072 x 8) 的串行 I²C 接口 EEPROM 芯片。

项目规格
型号AT24CM01
容量1 Mbit = 131,072 字节 = 128 KB
接口I²C(2-wire)
电压版本1.7V - 5.5V / 2.5V - 5.5V
封装SOIC、TSSOP、WLCSP 等
工作温度-40°C 至 +85°C(工业级)

二、核心特性

1. 电气特性

参数规格说明
工作电压1.7V - 5.5V宽电压范围,兼容 1.8V/3.3V/5V 系统
待机电流1.0μA (1.7V) / 6.0μA (5.5V)低功耗,适合电池供电设备
工作电流2.0mA(读)/ 3.0mA(写)典型值 @5V/400kHz
输入漏电流±3.0μA(最大)低输入漏电
输出低电平0.2V (@1.7V, 0.15mA) / 0.4V (@3V, 2.1mA)标准 I²C 电平

2. 时序特性

参数1.7V2.5V/5.0V单位
最大时钟频率4001000kHz
写周期时间55ms
噪声抑制时间10050ns
时钟低电平时间1300400ns
时钟高电平时间600400ns
数据建立时间100100ns
数据保持时间00ns
启动/停止建立时间600250ns

3. 可靠性

参数规格说明
擦写寿命1,000,000 次100万次写入循环
数据保持40 年在 25°C 条件下
ESD 保护>4000V人体模型

三、存储组织

1. 内部结构

text

总容量: 1,048,576 位 = 131,072 字节
页大小: 256 字节
页数量: 512 页
地址位数: 17 位 (A16 - A0)

2. 页结构示意

text

Page 0:  地址 0x00000 - 0x000FF
Page 1:  地址 0x00100 - 0x001FF
Page 2:  地址 0x00200 - 0x002FF
...
Page 511: 地址 0x1FF00 - 0x1FFFF

四、引脚与封装

1. 引脚配置(8-pin SOIC/TSSOP)

引脚名称功能
1NC无连接(No Connect)
2A1设备地址输入(硬件地址位1)
3A2设备地址输入(硬件地址位2)
4GND
5SDA串行数据(双向,开漏)
6SCL串行时钟(输入)
7WP写保护(高电平有效)
8VCC电源(1.7V - 5.5V)

2. 封装选项

封装代码封装类型特点
8S1JEDEC SOIC8引脚,0.150" 宽
8S2EIAJ SOIC8引脚,0.208" 宽
8XTSSOP8引脚,4.4mm 本体
8U-6WLCSP8球,晶圆级芯片尺寸封装

五、设备地址与寻址

1. 设备地址格式

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
1010A2A1P0R/W
  • 高4位固定为 1010(0xA)

  • A2, A1:硬件地址引脚,最多支持 4 个器件 共享总线

  • P0地址第17位(A16),用于扩展寻址

  • R/W:0=写,1=读

2. 17位地址分布

地址位位置
A16设备地址字节的 P0 位
A15 - A8第一个字地址字节
A7 - A0第二个字地址字节

3. 地址示例

text

要访问的地址: 0x1A2B3 (二进制: 1 1010 0010 1011 0011)

设备地址: 1010 A2 A1 P0 R/W
         = 1010 00 1 0 = 0xA4 (假设 A2=0, A1=0, P0=1, 写操作)

字地址高8位: 1010 0010 = 0xA2
字地址低8位: 1011 0011 = 0xB3

六、操作模式

1. 写操作

模式说明
字节写写入单个字节,需要发送设备地址 + 2字节字地址 + 数据
页写最多连续写入 256 字节,地址低8位自动递增

1.1  字节写(Byte Write)

序列
Start → 设备地址 (W=0) → Ack → P0 + 高位地址 → Ack → 低位地址 → Ack → 数据 → Ack → Stop(根据芯片手册)

示例(向地址 0x1A2B3 写入 0x55):

P0 = bit16 of 0x1A2B3 = 1
高位地址 = 0x2B
低位地址 = 0x03

Start
发送 0xA6 (1010 A2 A1 1 0)   // 假设 A2=0, A1=0
Ack
发送 0x2B
Ack
发送 0x03
Ack
发送 0x55
Ack
Stop

1.2  页写(Page Write)

  • 最多一次写入 256 字节(同一页内)

  • 地址低 8 位自动递增,高 9 位(含 P0)不变

  • 超过页边界会覆盖页内开头

序列
Start → 设备地址 (W) → Ack → 字地址(含 P0)→ Ack → 多个数据字节(每个后都有 Ack)→ Stop(根据芯片手册)

页写注意事项

  • 超过页边界时,地址回绕到当前页开头

  • 建议每次写入不超过页内剩余空间

2. 读操作

模式说明
当前地址读读取内部地址计数器指向的字节
随机读先执行伪写设置地址,再执行读操作
顺序读连续读取多个字节,地址自动递增

2.1 当前地址读(Current Address Read)

  • 直接读出内部地址计数器指向的字节(上次访问地址 + 1)

序列
Start → 设备地址 (R=1) → Ack → 读取数据 → No Ack → Stop

2.2  随机读(Random Read)

使用一个“伪写”来设置地址,然后读。

序列
Start → 设备地址 (W) → Ack → 17 位字地址 → Ack → Restart → 设备地址 (R) → Ack → 读取数据 → No Ack → Stop

2.3  顺序读(Sequential Read)

  • 可连续读取多个字节

  • 每读完一个字节后主机回应 Ack,直到不想再读时回应 No Ack + Stop

3. 写保护

WP 引脚状态效果
GND正常读写操作
VCC全芯片写保护,禁止任何写入

七、时序波形

1. 总线时序

text

SCL:  /‾‾‾\___/‾‾‾\___/‾‾‾\___
SDA:  ___/‾‾‾\_______/‾‾‾\___
      Start   Bit7   Bit0   Stop

2. 写周期时序

text

Start → 设备地址 → 字地址 → 数据 → Stop
                                    ↓
                              ┌─────────────┐
                              │  tWR = 5ms  │
                              │ 内部写周期  │
                              └─────────────┘

八、优势与局限

优势

优势说明
大容量1Mbit 存储空间,适合存储配置、日志、字库等
宽电压1.7V - 5.5V,兼容多种系统电压
高速1MHz 时钟频率(≥2.5V),快速数据传输
高耐久100万次擦写寿命
大页写256字节页写,提高写入效率
低功耗待机电流仅 1μA
多器件最多 4 个器件共享总线,总容量可达 4Mbit

局限

局限说明
地址寻址复杂17位地址需使用 P0 位,驱动需特殊处理
页边界限制页写不能跨页,需要管理地址边界
挂载数量少仅支持 4 个器件(A2、A1 两个地址引脚)
数据保持较短40 年,低于 AT24C64D 的 100 年

九、应用场景

应用领域典型用途
工业控制参数存储、校准数据、运行日志
通信设备MAC地址、配置信息、固件参数
消费电子用户设置、设备状态、产品信息
医疗设备患者数据、设备配置、校准参数
物联网终端传感器校准、网络配置、数据记录

十、与其他型号对比

特性AT24CM01AT24C64DAT24C128/256
容量1 Mbit64 Kbit128/256 Kbit
页大小256 字节32 字节64 字节
硬件地址线2 条 (A2, A1)3 条 (A2, A1, A0)2 条 (A1, A0)
最大器件数4 个8 个4 个
低压速度400kHz @1.7V400kHz @1.7V100kHz @1.8V
写周期5ms5ms10ms
擦写寿命100万次100万次10万次
数据保持40 年100 年40 年
地址位数17 位(需 P0 位)13 位14/15 位

十一、驱动开发要点

FPGA接口设定

    input  wire        clk,          // 系统时钟 50MHz
    input  wire        rst_n,        // 异步复位,低有效
    
    // 用户接口
    input  wire        start,        // 启动传输
    output reg         busy,         // 忙标志
    output reg         done,         // 传输完成
    output reg         ack_error,    // ACK 错误标志
    
    // 发送/接收数据接口
    input  wire [7:0]  tx_data,      // 发送数据
    output reg  [7:0]  rx_data,      // 接收数据
    input  wire        tx_rx,        // 1=发送模式, 0=接收模式
    
    // I2C 总线接口 (需要外部上拉)
    output reg         scl,          // 时钟线
    inout  wire        sda           // 数据线

十二、总结

AT24CM01 是一款大容量、高速、低功耗的 I²C EEPROM,适用于需要存储大量非易失性数据的嵌入式系统。

核心优势

  • ✅ 1Mbit 大容量

  • ✅ 1MHz 高速通信

  • ✅ 256 字节大页写

  • ✅ 100万次高耐久性

  • ✅ 1.7V 宽电压支持

注意事项

  • ⚠️ 17位地址需特殊处理 P0 位

  • ⚠️ 页写需管理 256 字节边界

  • ⚠️ 最多挂载 4 个器件

  • ⚠️ 数据保持 40 年(较 AT24C64D 短)

适用场景
工业控制、通信设备、物联网终端等需要大容量参数存储的应用。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐