1、主机向每一个连接的从设备发送数据,然后将SDA信号从高切换到低,之后在将SCL从高切换到低电平。
2、主设备向每个从设备发送它想要与之通信的从设备的7或10位地址,以及读/写位:
3、每个从设备将主设备发送的地址与其自己的地址进行比较。如果地址匹配,则从器件通过将SDA线拉低一位来返回ACK位。如果主设备的地址与从设备的地址不匹配,则从设备将SDA线保持为高电平。
4、主设备发送或接收数据帧:
5、在传输了每个数据帧之后,接收设备将另一个ACK位返回给发送方以确认成功接收到该帧:
6、要停止数据传输,主机通过在将SDA切换为高电平之前切换SCL为高电平来向从机发送停止条件:
有多个从设备的单一主设备
由于I2C使用寻址,因此可以从单个主设备控制多个从设备。使用7位地址,可以使用128(27)个唯一地址。使用10位地址并不常见,但提供1,024(210)个唯一地址。要将多个从器件连接到单个主器件,请像这样连接它们,使用4.7K欧姆上拉电阻将SDA和SCL线连接到Vcc:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)