0

在 I2C 接口中,

SCL,时钟线即使总线上没有设备也会传输时钟信号?

我们如何调试 I2C?

4

1 回答 1

1

I2C 总线主机不知道是否有从设备连接到总线。

它所能做的就是通过将slave的地址发送到总线来启动与某个设备的通信(它可以是读或写操作)。如果主机收到一个 ACK​​ 确认,那么这意味着从机准备好(并呈现在总线上)进行通信。NACK,未确认可能意味着从设备未准备好。如果请求超时,这意味着总线上没有具有特定地址的可用设备。

现在,回到你的问题:

SCL,时钟线即使总线上没有设备也会传输时钟信号?

是的,当主机发起通信时,时钟线将被驱动,即使没有任何从机。使用时钟,因为总线上有数据,从设备地址。

如下图所示,如果总线上没有从设备(具有该地址),则不会出现 ACK 的唯一区别。

在此处输入图像描述

现在至于调试,最好的办法是购买逻辑分析仪(在 eBay 或速卖通上有更便宜的版本)来捕捉总线上实际发生的情况。上面的图像是使用一张制作的。

于 2016-10-07T16:49:20.177 回答