I2C读写EEPPROM(AT24CXX系列)特点
1、概述EEPROM特点
各型号EEPROM内存大小:
型号 | 内存大小 | 字地址长度 | WP脚 |
AT24C02 | 2K(256字节) | 一个字节0xff(256) | 高电平写保护,低电平取消写保护 |
AT24C04 | 4K(512字节) | 两个字节 | 高电平写保护,低电平取消写保护 |
AT24C32 | 32K(4096字节) | 两个字节 | 高电平写保护,低电平取消写保护 |
AT24C64 | 64k(8192字节) | 两个字节 | 高电平写保护,低电平取消写保护 |
(1)存储结构
(2)EEPROM的写入方式有两种:
- 单字节写入
- 页写,每种型号EEPROM 页的字节数不同(24C02器件按8字节/页执行页写,24C04/08/16器件按16字节/页执行页写,24C32/64器件按32字节/页执行页写)。
(3)地址特点
- 地址输入----A2、A1和A0是器件地址输入引脚。
- 24C02/32/64使用A2、A1和A0输入引脚作为硬件地址,总线上可同时级联8个24C02/32/64器件(详见器件寻址)。
- 24C04使用A2和A1输入引脚作为硬件地址,总线上可同时级联4个24C04器件,A0为空脚,可接地。
- 24C08使用A2输入引脚作为硬件地址,总线上可同时级联2个24C08器件,A0和A1为空脚,可接地。
- 24C16未使用器件地址引脚,总线上最多只可连接一个16K器件,A2、A1和A0为空脚,可接地。
2、AT24C02使用i2ctransfer读写测试:
i2ctransfer可以对i2c挂载的设备进行读写,具体用法:
(1)查看i2c总线有几路
(2)查看总线上挂载设备的地址
(3)读操作:
如下i2ctransfer指令代表写入一个字节的子地址0x00,然后读取0x00为起始地址的256个字的数据,如果EEPROM内存超过8X256(2K)小于8x65535个字节,则子地址为两个字节。
共有256个字节,现在全为空。
(4)写操作
- 写8个字节的数据;
- 写入9个字节数据:
- 写16个字节数据:
通过上面的读写实验可知:
AT24C02单次写入单字节都是没有问题的,但是写入9个字节,第9个字节数据会覆盖掉第一个字节的数据。写入16个字节数据,同样只在前8个字节写入。
AT24C02的页大小为8个字节,说明I2C写数据到AT24C02的时候,最多一次写入一页。单次写入的数据超过一页或者跨页写,则会从起始地址重新开始写入,会覆盖掉已经写入的前8个字节数据。
由此说明:EEPROM只有单字节写入和页写两种方式才能正确的写入数据。
I2C读写时序分析可参考:I2C读写EEPROM