本指南详细介绍了如何使用C语言对AT24C04系列EEPROM进行读写操作,包含源代码示例及实用技巧。适合电子工程师和编程爱好者参考学习。
I2C总线是一种串行数据传输方式,仅使用两根信号线:SDA(双向数据线)和SCL(时钟线)。在 I2C 总线上每次传送的数据字节由八位组成,并且每个字节后需要跟随一位应答位。发送过程遵循先最高有效位 (MSB) 的规则。
传输开始,主机首先发出启动信号 S (当 SCL 为高电平时,SDA 线从高到低变化)。随后,主机将要发送的第一个字节包含了特定的信息:前七位是目标设备的地址;第八位则指示数据的方向(0表示写入操作,1表示读取)。
接收到启动信号后,在同一 I2C 总线上的所有设备都会检查该地址。如果匹配,则被寻址到的从机在第九个时钟周期回应低电平作为应答确认。除了第一个字节可能用于通用呼叫或十位地址之外,后续的所有字节都是数据。
传输结束前,主机发送停止信号 P (当 SCL 为高电平时,SDA 线从低到高变化)以关闭总线通信。
AT24C系列串行E2PROM支持I2C接口,并且具有较低的功耗、宽泛的工作电压范围(根据型号不同在2.5V至6.0V之间),工作电流约为3mA,静态电流随电源电压而变化,在不同的电源下为30μA到110μA。以下列出了AT24C系列串行E2PROM的具体参数:
- AT24C01:容量 1K(128×8),寻址字节 (R/W):1010 A2 A1 A0,一次读写字节数为4。
- AT24C02:容量 2K(256×8),寻址字节 (R/W) 同上,一次读写字节数为8。
- AT24C04:容量 512×8,寻址字节 (R/W):1010 A2 P0, 一次装载的字节数是16。
- AT24C08:容量 1K(1024×8),寻址字节 (R/W) 同上,每次读写字节数为16。
- AT24C16:容量 2K(2048×8),寻址字节(R/W):1010 P2P1P0, 每次装载的字节数是同样。
由于I2C总线可以连接多个串行接口设备,每个器件必须具有唯一的地址。根据 I2C 总线规则,器件地址为7位数据(加上一位读写方向标志构成一个8位寻址字节),这使得理论上在同一个 I2C 系统中最多可挂接128个不同的设备。AT24C系列E2PROM的型号地址皆固定为1010, 器件地址中的低3位由引脚A2 A1 A0决定,这些引脚的状态决定了具体的器件寻址。
对 AT24C 系列 E2PROM 的读写操作完全遵循I2C总线上的主从交互规则。