问题:i2c的高电平与高阻态迷惑
我们知道IIC的所有设备是接在一根总线上的,那么我们进行通信的时候往往只是几个设备进行通信,那么这时候其余的空闲设备可能会受到总线干扰,或者干扰到总线,怎么办呢?
为了避免总线信号的混乱,IIC的空闲状态只能有外部上拉, 而此时空闲设备被拉到了高阻态,也就是相当于断路, 整个IIC总线只有开启了的设备才会正常进行通信,而不会干扰到其他设备。
问题在于,SDA与SCL总线都外接了一个上拉电阻,这不应该是给予了一个高电平而不是高阻态了吗?
问题:i2c的高电平与高阻态迷惑
我们知道IIC的所有设备是接在一根总线上的,那么我们进行通信的时候往往只是几个设备进行通信,那么这时候其余的空闲设备可能会受到总线干扰,或者干扰到总线,怎么办呢?
为了避免总线信号的混乱,IIC的空闲状态只能有外部上拉, 而此时空闲设备被拉到了高阻态,也就是相当于断路, 整个IIC总线只有开启了的设备才会正常进行通信,而不会干扰到其他设备。
问题在于,SDA与SCL总线都外接了一个上拉电阻,这不应该是给予了一个高电平而不是高阻态了吗?
在IIC总线上,每个设备都需要有一个唯一的7位或10位地址,以便其他设备能够找到它。当一个设备不需要与其他设备通信时,可以通过设置自身地址为0x00,使其在总线上保持静默。这样可以避免该设备向总线发送干扰信号,同时也可以避免总线向该设备发送干扰信号。
此外,还可以采取以下措施来减少总线干扰: