carbonxie 发表于 2014-10-9 12:43:18

AT24C08读写注意!

定义AT24C02A页
1 0 1 0 A2 A1 A0 R/W
通过P1 P0选择哪个页,一只最多2K
定义AT24C04A页
1 0 1 0 A2 A1 P0 R/W
通过P1 P0选择哪个页,一只最多2K
定义AT24C08A页
1 0 1 0 A2 P1 P0 R/W
通过P1 P0选择哪个页,一只最多2K
一个只可以写16个数据,注:起始地址不能为16的倍数
如:起始地址为:0,则可以一次写16个数据(0~15),读出来
        数据从0~15对应的数据为0~15
        起始地址为:2,则一次写16个数据(0~15),读出来的
        数据从0~15对应的数据为14 15-0~13
        >>>所以首地址要为16的倍数
***************************************/
#define                __AT24Cxx_PAGE0        0xA0        //0~2K...
#define                __AT24Cxx_PAGE1        0xA2        //2~4K...
#define                __AT24Cxx_PAGE2        0xA4        //4~6K...
#define                __AT24Cxx_PAGE3        0xA6        //6~8K...



armstrong 发表于 2014-10-9 12:59:29

EEPROM是很古老的存储器了,其页编程机制在手册上很强调,属于EEPROM基本知识了。
按照EEPROM不同容量,其页大小也不同。一个START,STOP组合若称为一个编程事务的话,那么一个事务是不允许跨页边界的!

wye11083 发表于 2014-10-9 13:29:12

armstrong 发表于 2014-10-9 12:59
EEPROM是很古老的存储器了,其页编程机制在手册上很强调,属于EEPROM基本知识了。
按照EEPROM不同容量,其 ...

其实所有支持页写EEPROM都有一个scratchpad(即一小块内存)用于暂存数据。在写命令生效前,该缓存内数据可以随意写,地址虽然也是自增,但是毕竟就这么大点空间,溢出之后就回到开始了。包括DDRx,SDRAM在内都是一块scratchpad+一块超大容量阵列组成的。

armstrong 发表于 2014-10-9 13:34:04

wye11083 发表于 2014-10-9 13:29
其实所有支持页写EEPROM都有一个scratchpad(即一小块内存)用于暂存数据。在写命令生效前,该缓存内数据 ...

对,你说的就是这些芯片内部的构造;这种构造引出了使用者必须注意的跨页知识点。

烂泥桑 发表于 2014-10-9 13:39:32

很厉害的感觉{:shy:}{:shy:}{:shy:}
页: [1]
查看完整版本: AT24C08读写注意!