I2C总线的读操作的流程详解
扫描二维码
随时随地手机看文章
M24Cxx的读操作模式及其各种模式的操作流程如图1、图2所示。
1. 当前地址读
EEPROM内部具有保持当前地址的寄存器。读取当前地址的数据时,不需要指定地址。只要单纯给出读指令就可读出数据。读取完毕后,内部所保持的当前地址将自动进位。
数据读操作后的ACK/NoACK信号由主机返回,但必须返回NoACK信号。
2. 随机读
随机读是由主机指定任意的地址读取的。利用写指令设定地址,如果赋予读指令则可以读出当前地址。所以,与字节写操作时相同,在第1字节的数据后面给出地址。在这里,一旦发送出数据就成为写操作,在此设置开始条件,取消向写操作的迁移而发出读指令,将从事先设定的地址中读出数据。
此时,DEVSEL数据(前7位数据)必须设定与最初写指令所发送的相同的值。
3. 顺序读
在当前地址读操作之后,如果主机返田ACK信号,则为顺序读模式,器件将准备下一个地址的数据,主机取回该数据。一旦到达要读出的最终地址,主机将返回NoACK信号,通知器件这已是最后的数据。
4. 顺序随机读
当指定任意地址、希望由此连续读出数据时,可利用该模式。只要认为这是与对应于当前读的顺序读相同的模式即可。
顺序随机读模式与随机读同样进行读操作,接收到数据后如果是ACK应答,则器件将准各下一个地址的数据;如果是最终数据,则返回NoACK信号,结束数据的传输。