AT24C02芯片简介:小巧强大的串行EEPROM存储器
一、AT24C02概述
AT24C02是一款2K位(即256字节)的串行EEPROM芯片,采用I²C(Inter-Integrated Circuit)总线进行通信,适合低功耗、小容量存储需求。
主要特性:
项目 | 参数 |
---|---|
存储容量 | 2Kb(256 x 8位) |
接口协议 | I²C(双线串行接口) |
工作电压 | 1.7V - 5.5V |
访问时间 | 字节写入:最多5ms;读取:快速响应 |
读写次数 | 超过100万次擦写周期 |
数据保持 | 超过100年 |
封装形式 | 常见有DIP、SOIC、TSSOP等 |
二、引脚功能与硬件连接
AT24C02采用8引脚封装,关键引脚如下:
-
A0-A2:地址引脚,用于多设备级联时设定唯一地址(默认接地时为0xA0写地址/0xA1读地址)17。
-
SDA/SCL:I²C数据线和时钟线,需外接4.7kΩ上拉电阻以保证信号稳定性710。
-
WP:写保护引脚,接地时允许读写,接高电平时仅允许读操作39。
典型连接示例(以Arduino为例):
-
VCC接5V或3.3V电源,GND接地,SDA/SCL分别连接至MCU的I²C引脚(如Arduino Uno的A4/A5)17。
三、工作原理与通信流程
AT24C02通过I²C协议与主控设备通信,步骤如下:
-
起始信号:SCL为高电平时,SDA由高变低,标志通信开始310。
-
地址传输:主设备发送7位设备地址(高4位固定为1010,低3位由A0-A2决定)和读写位(0为写,1为读)28。
-
数据操作:
-
写入:需指定存储地址,单次最多写入8字节(页写入),每次操作后需等待5ms内部写入周期19。
-
读取:支持随机读和顺序读,需先发送“哑地址”再切换为读模式23。
-
示例代码(写入与读取):
// 写入单字节
void EEPROM_Write(uint8_t addr, uint8_t data)
{
I2C_Start();
I2C_SendByte(0xA0); // 写地址
I2C_WaitAck();
I2C_SendByte(addr); // 存储地址
I2C_WaitAck();
I2C_SendByte(data); // 数据
I2C_WaitAck();
I2C_Stop();
delay(5); // 等待写入完成
}
// 读取单字节
uint8_t EEPROM_Read(uint8_t addr) {
uint8_t data;
I2C_Start();
I2C_SendByte(0xA0); // 写地址
I2C_WaitAck();
I2C_SendByte(addr); // 存储地址
I2C_WaitAck();
I2C_Start();
I2C_SendByte(0xA1); // 读地址
I2C_WaitAck();
data = I2C_ReceiveByte();
I2C_SendAck(1); // 非应答结束读取
I2C_Stop();
return data;
}