最近在做几个项目,都需要用到eeprom存储芯片。在使用周立功提供的硬件I2C读写AT24CX X系列芯片程序时,对以下一段程序存在一些困惑:
if (suba_type == 3)
{ /* 子地址结构为8+X */
I2C_sla = sla + ((suba >> 7 )& 0x0e); /* 读器件的从地址 */
I2C_suba = suba & 0x0ff; /* 器件子地址 */
I2C_suba_num = 1; /* 器件子地址为8+X */
}
因为用的是AT24C08,一直不明白上面的代码为什么从地址与子地址有关联?
后来在网友的帮助下才了解到原来24C08内部是由4片24C02级联组成的,需要通过内部A0、A1来对页进行选择。

图一

图二
以上只是简单写了一下,估计自己也没有描述清楚。希望有人可以相互探讨,共同进步!
理解AT24C08内部结构与I2C通信原理
本文详细解释了使用周立功提供的硬件I2C读写AT24CXX系列芯片程序时,针对AT24C08芯片中从地址与子地址关联性的疑惑。通过解析AT24C08内部由4片24C02级联组成的特点,以及如何通过内部A0、A1引脚进行页选择,帮助开发者深入理解I2C通信中地址结构的应用。
5302

被折叠的 条评论
为什么被折叠?



