有关EEPROM分页写入策略的理解(以AT24C02为例)
以AT24C02存储芯片为例,AT24C02是一种2K位的串行CMOS-EEPROM存储器,内部包含256个8字节大小的存储区域,CMOS技术可以使得该存储芯片功耗大幅减小,该芯片通过I2C总线接口进行读写操作,且有一个专门的写保护引脚,当该引脚接VCC时,芯片启动写保护功能,当该引脚接GND时,该芯片允许正常的读/写操作。,前者操作起来简单,操作更加精确,但速率较低,后者则相反,操作略微复杂,且
以AT24C02存储芯片为例,AT24C02是一种2K位的串行CMOS-EEPROM存储器,内部包含256个8字节大小的存储区域,CMOS技术可以使得该存储芯片功耗大幅减小,该芯片通过I2C总线接口进行读写操作,且有一个专门的写保护引脚,当该引脚接VCC时,芯片启动写保护功能,当该引脚接GND时,该芯片允许正常的读/写操作。
AT24C02芯片共有八个引脚,分别是A0,A1,A2,GND,VCC,WP,SCL,SDA,其中VCC/GND是电源侧引脚,SCL/SDA是I2C协议引脚,WP是写保护引脚,A0,A1,A2是芯片地址引脚,用于多器件工作模式。

A0,A1,A2加上AT24C02固定的高四位地址(即1010b)共同构成了AT24C02这个EEPROM的的设备地址,例如我们将A0,A1,A2这三个端口全部拉低至GND,则I2C对EEPROM进行访问的时候SLAVE_ADDRESS就需要填写1010000b这个地址。
AT24C02有两种写入模式,分别是按字节写入和按页写入,前者操作起来简单,操作更加精确,但速率较低,后者则相反,操作略微复杂,且写入数据时可能会因为分页问题导致数据写入存在一些边界条件,但写入速率远快于按字节写入的方式。
此外,页写可能会遇到页数回卷问题,例如AT24C02的内部存储空间共计2048bits,分为32页,每页可以存放8个字节(即64bits)。
当我们想写入一个长度为9字节(或大于8字节)的内容时,就会导致第九个字节重新覆盖第一个字节,因为按页写入实际上是先写到一个8字节的寄存器中,再由寄存器从内部赋值到EEPROM的存储空间中,所有当写入的数据超过8字节时会导致部分甚至全部的有效数据被覆盖掉。
更多推荐



所有评论(0)