- I2C空闲状态为SCL 和 SDA都为高电平,开始信号为在SCL为高电平时,SDA产生一个下降沿,当SDA在时钟信号为高电平时,从低电平变为高电平,为结束信号
- 数据传输时,数据在SCL的低电平改变,在SCL的高电平时保持,刚好区别于开始和结束信号
- ACK信号也是在SCL低电平时改变,高电平保持不变的
- 在一个写周期之间,需要最少10MS的时间间隔,否则可能会写入出错(读周期并不存在这个时间间隔)

- 图上的START信号就是SDA在SCL高电平时变为低电平产生的
- 不论是读还是写操作,初始的操作都是进行一个写操作
- 对于AT24C64来说,其容量为64Kbit,就是8192=213个8bit数据,所以这时需要13位的地址线,所以如图47-7第一个字的高地址的前三位

- 写入可以分为单字节写入和页写,其中页写最多可以一次写入32字节的数据,页写结束后,发送一个结束信号,一页的数据整理位32位,如果写入超过32位,那么又会从一页的第0个字节重新写入。所以此时应该发送结束信号。页写只是在当前页的循环,如果需要写入超过一页的数据,那么需要重新开始一个新的写入操作。
- 不同的是,对于读操作,如果是多字节的顺序读操作,那么当一页的数据读取完毕后,会从下一页的第0个字节开始读取,在停止信号到来之前,会一直对每一页的字节进行读取,直到对整个EEPROM数据读取完毕

- 随机地址读取操作,可以选择任意位置的数据进行读取,但是在读取之前需要进行一个”DUMMY WRITE“的操作,称为哑写,如果要进行连续读操作,需要注意的是每一个数据后要输出一个低电平的应答位,知道最后一个数据接收完成后发送一个”NO ACK“高电平,这是和写操作相区别的地方。


- 当前地址读,内部数据字地址计数器保存上次读或写操作期间访问的最后一个地址上增加一个地址。只要保持电源,此地址一直有效。被维持到这个部分。读取过程中的地址翻转是从最后一页的最后一个字节到内存第一页的第一个字节。
- 为了与后面的其他设备相兼容,这里选取单字节写模式和随机地址读这两种模式进行编写驱动模块