AT24C256是一款串行I2C接口的EEPROM(Electrically Erasable Programmable Read-Only Memory)存储器,广泛应用于各种需要非易失性数据存储的嵌入式系统中。下面将详细介绍AT24C256的资料手册参数分析、引脚说明以及读写程序示例。
一、资料手册参数分析
1. 基本参数
容量:256Kbit,即32KB(16位地址线,8位数据线)。
供电电压:1.8V至5.5V。
封装:常见的封装形式有TSOP、SOIC等。
访问时间:典型值为100ns(在5V时)。
擦写次数:>1,000,000次。
数据保留时间:>200年。
2. 工作模式
AT24C256支持标准的I2C接口,支持写保护引脚(WP),可配置为字节写或页写模式。
3. 温度范围
工作温度:-40°C至+85°C。
存储温度:-65°C至+150°C。
二、引脚说明
AT24C256的引脚通常包括以下几个部分:
1. 电源与地线
VCC:正电源输入,通常为1.8V至5.5V。
GND:接地线。
2. I2C接口
A0, A1, A2(可选):硬件地址引脚,用于在多个EEPROM间选择。
SCL:串行时钟输入。
SDA:串行数据/地址输入/输出。
3. 写保护
WP:写保护引脚,当WP接地时,EEPROM处于写保护状态,不能写入数据。
4. 其他
NC(Not Connected):未连接引脚,通常悬空或接地。
三、读写程序示例
以下是一个基于C语言的AT24C256读写程序示例,这里假设你正在使用某种微控制器(如STM32),并通过I2C接口与AT24C256通信。
1. 初始化I2C接口
首先,你需要初始化微控制器的I2C接口,这通常涉及设置I2C的频率、地址、中断等。
2. 写入数据
#define EEPROM_ADDRESS 0xA0 // 假设A0, A1, A2均为接地,则EEPROM的地址为0xA0 void EEPROM_Write(uint16_t address, uint8_t data) { // 发送开始信号 I2C_GenerateSTART(I2C_Handle, ENABLE); // 发送EEPROM地址和写操作位 I2C_Send7bitAddress(I2C_Handle, EEPROM_ADDRESS << 1, I2C_Direction_Transmitter); // 等待ACK while (!I2C_CheckEvent(I2C_Handle, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // 发送内存地址(高位在前) I2C_SendData(I2C_Handle, (address >> 8) & 0xFF); while (!I2C_CheckEvent(I2C_Handle, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); I2C_SendData(I2C_Handle, address & 0xFF); while (!I2C_CheckEvent(I2C_Handle, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // 发送数据 I2C_SendData(I2C_Handle, data); while (!I2C_CheckEvent(I2C_Handle, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // 发送停止信号 I2C_GenerateSTOP(I2C_Handle, ENABLE); }
3. 读取数据
uint8_t EEPROM_Read(uint16_t address) { uint8_t data; // 发送开始信号 I2C_GenerateSTART(I2C_Handle, ENABLE); // 发送EEPROM地址和写操作位(注意这里还是写操作位,因为要先发送地址) I2C_Send7bitAddress(I2C_Handle