IIC通讯
IIC是一种串口通讯协议,它有两根线组成,一根SCL时钟线,一根SDA数据线。需要通讯的双方都挂在在IIC总线上,通过IIC协议进行通讯。
主机:数据的发送方
从机:数据的接收方
- 主机先发出起始信号,然后发送7位从机地址信息+1位读写标志位
0写,1,读 - 从机检查自己的地址信息,地址信息相同,发送ACK应答。(1)
- 主机发送数据。
- 从机收到数据,发送ACK应答(1)。
… - 重复步骤3、4。
- 从机发送结束信号。
IIC的起始信号:
起始信号:时钟线SCL保持高电平,数据线SDA由高拉低。
IIC结束信号:
结束信号:时钟线保持高电平,数据线由低拉高。
IIC数据信号:
数据发送过程中,SCL要保持高电平,SDA高电平则标识发送1,SDA低电平则表示发送0。
在SCL为高电平时,禁止SDA发生变化。
SDA如果要切换,需要把SCL先拉低,然后SDA可以切换,切换完成后,再将SCL拉高。
EEPROM
EEPROM存储器为掉电不丢失数据。
这里使用的是AT24C02。大小为2K bit,为256字节。8个字节为一页。按页操作。
操作方式:
-
一个字节写入
-
按页写入
注:按页写需要注意,如果超出页的大小,会覆盖页开头数据。 -
当前地址读
当前地址读的操作比较少。 -
随机读
随机读是IIC通讯的复合操作,第一步先写要读的地址,然后再触发IIC通讯,读出数据。 -
顺序读