以下这个示意图,是我理解的at24c02的存储示意图。每个单元格是一个字节。最上面的0-7共8个字节(黄色部分),构成了一个Page. 后面每8个字节构成另外一个Page,依次类推,共32个Page.
我的问题是:我以Page Write的方式,连续写入了15个字节: 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x40 0x41 0x42 0x43 0x44
写完后,单片机断电后重新打开,读取单元格0开始的连续15个字节,得到的数据与我之前发送的数据完全相同。
根据手册,连续写入超过8个字节(即1个Page)后继续写的话,at24c02有一个"roll over"的动作,也就是会覆盖之前的数据(数据地址字的低3位由111翻转为000,高位未翻转)。我想象中写入15个字节后单元格0开始应该是这样的8个字节:
0x38 0x39 0x40 0x41 0x42 0x43 0x44 0x37
(0x30 0x31 0x32 0x33 0x34 0x35 0x36 共7个字节应该被覆盖掉)
请问为什么实际上连续写入15个字节后并未发生翻转(roll over)呢? |