——认识EEPROM的AT24C02)
目录生态位概念读写特点1、支持随机读写与顺序读写2、内部组织256字节32页每页8字节3、页写”能力的限制4、写操作需要“充电”时间写周期写保护自身设备地址为什么代码里必须左移 1 位生态位AT24C02 是 I2C 生态中最为经典的入门级 EEPROM 芯片它凭借 256 字节的“够用且便宜”的容量、断电极高可靠性的数据保持能力以及极简的两线制接口成为了单片机系统中存储 MAC 地址、设备 ID、校准参数和配置数据的绝对主力同时作为国产替代极其成熟、价格被打到底的元器件它不仅是工业与消费电子中不可或缺的“小数据保险箱”更是嵌入式工程师学习 I2C 协议时序重复起始、页回卷、写周期等待绕不开的“标准教具”。系列接口特点生态位24系列AT24CxxI2C2线容量小字节级擦写低速配置存储的绝对主力25系列W25QxxSPI4线容量大速度快固件、字库、大容量存储93系列Microwire3线较老已边缘化24系列是EEPROM里最经典、最普及的一支AT24C02 又是其中的入门型号。概念AT24C02 是一颗基于 I2C 接口的 EEPROM 芯片容量 2Kbit256 字节断电不丢数据支持按字节/按页读写。命名部分含义ATAtmel现被 Microchip 收购行业代名词2424系列 I2C 接口C低功耗、宽电压1.8V~5.5V022Kbit 容量 256 Byte读写特点1、支持随机读写与顺序读写随机读/写可以指定任意地址读取或写入单个字节。顺序读/写读写一个字节后芯片内部地址指针会自动递增1可以连续操作后续地址。2、内部组织256字节32页每页8字节把 AT24C02 想象成uint8_t array[256]地址就是数组下标。它内部按“页Page”管理每页 8 字节共 32 页。3、页写”能力的限制AT24C02 允许一次性连续写入多个字节但一次最多只能写一页8 字节。回卷特性如果从一页的中间开始写并且写的数据超过该页的剩余空间地址会自动回卷到本页的开头覆盖本页之前的数据绝对不会跨页向后写。4、写操作需要“充电”时间写周期每次写入操作不管是写1字节还是写1页完成后芯片内部需要时间把数据真正烧录到存储介质中。这个时间叫做写周期tWR最大 5ms。在这 5ms 内芯片不会响应 I2C 总线不回复 ACK。写保护芯片第 7 脚是 WPWrite Protect。接 GND低电平允许正常读写灵犀板默认接地。接 VCC高电平整个芯片被硬写保护只能读不能写。这是一个硬件级的安全保障防止程序跑飞去篡改重要数据。自身设备地址AT24C02 支持 7 位地址模式。它的设备地址由两部分组成固定部分4位 可配置部分3位 1 0 1 0 A2 A1 A0高 4 位1010这是 24 系列 EEPROM 的固定标识出厂就写死了改不了。低 3 位A2 A1 A0由芯片上的A2、A1、A0 三个物理引脚决定。这三个引脚的存在是为了解决地址冲突。假设你的板子上需要挂两颗AT24C02如果它们地址一样主设备发数据时两颗芯片都会应答总线就短路了。此时你可以这样接芯片 1A2, A1, A0 接地 → 地址1010 0000x50芯片 2A2 接地A1, A0 接 VCC → 地址1010 0110x53这就是为什么硬件工程师可以在一根 I2C 总线上挂最多 8 颗2³同型号的 AT24C02 而不冲突。为什么代码里必须左移 1 位I2C 协议规定主机发完起始条件后紧接着发送的第一个字节必须是D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 A2 A1 A0 R/W高 7 位设备地址1010 A2A1A0最低位D0读写标志位0表示写1表示读。在 HAL 库里的体现// 写操作把最低位清零 #define I2C_7BIT_ADD_WRITE(__ADDRESS__) ((uint8_t)((__ADDRESS__) (uint8_t)(~I2C_OAR1_ADD0))) // 读操作把最低位置一 #define I2C_7BIT_ADD_READ(__ADDRESS__) ((uint8_t)((__ADDRESS__) | I2C_OAR1_ADD0))