总共32个page,每个page为8byte。总共256KB(2Kb),地址的长度需要使用8bit(刚好可以用来表示256个字节的地址)来表示。
AT24CC02的地址
设备的地址由8bit组成,前4 bit是固定的(1010);接着的3 bit是和A2 A1 A0的硬件连接相关,通过指定这3 bit可以在统一个I2C系统里面最多连接8个AT24C02设备;第8bit用来表示读/写选择,1表示读/0表示写。AT24C02会和总线上的设备地址进行比较,假如一直则AT24C02输出一个0,不一致则返回的是standby状态。
TQ2440开发板的A2 A1 A0地址线全接地,所以此处AT24C02的读写地址格式为:
读AT24C02:1010 0001
写AT24C02:1010 0000
AT24C02写操作
1.1byte write
Byte write的操作时序如上图所示。主机在发送完毕device address,并且接受到确定信息后再接着发送需要写的地址(把这个数据写到哪个地址上),然后再发送数据。当AT24C02接受到这个数据时,会输出一个0,此时主机必须发送一个停止信号。然后AT24C02进入写时序,将刚才接受到的数据写到存储单元中,并且在此期间不响应任何输入,知道写操作完成。
1.2 Pagewrite:
Page write前面几步的操作和byteqrite操作类似,只是在成功发送第一个数据之后,主机在收到AT24C02发送的确认信息后,不会发送停止信号,而是接着发送剩余的数据,对AT24C02来说就再接着发送剩余的7个字节,直到1个page的数据发送完毕之后才发送停止信号。
在页操作的时候dataword address用于表示业内的地址的低3bits会每收到一个数据就自动增长,页地址维持不变。所以,当业内地址到顶端时,此时假如还有数据,则数据将会被放到页的起始地址处,页其实地址中之前存放的数据将被覆盖。即AT24C02页操作时,写入的数据大于8 byte,则大于8 byte的数据将重新从此页起始处存放,覆盖掉之前写入的数据。
AT24C02读操作
2.1 从当前地址读
AT24C02内部的data word address计数器会一直保存着最后一次读/写操作后自动变化的dataword address地址。此计数器中保存的地址值一直有效,直到AT24C02断电。并且这个地址值在读/写过程中的roll over方式不一样。读操作时候,会从最后一页的最后一个字节跳到第一页的第一个字节然;写操作时,会从当前页的最后一个字节跳到当前页的第一个字节。
所以从当前地址读的意思,就是从当前data word address中保存的地址中读取一个字节的数据。
2.2 从随机地址读
随机读写的操作就是先用一个写操作来骗过AT24C02器件,使其内部的data word address中的地址值修改,然后再通过current address reas操作来读取所需地址上的数据。
如图所示,先发送一个写操作,但是发送完毕word address之并不发送数据,而是发送一个停止信号,此时at24c02中的data word address中的地址值就被修改了,然后通过current address read去读取此地址上的数据。
2.3 连续读
相关阅读: