【问题标题】:I2C SCL line, clock issue on STM32F4I2C SCL 线,STM32F4 上的时钟问题
【发布时间】:2016-11-24 23:42:22
【问题描述】:

在I2C接口中,

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

我们如何调试 I2C?

【问题讨论】:

    标签: microcontroller stm32 i2c stm32f4


    【解决方案1】:

    I2C 总线主机不知道总线上是否有从设备。

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

    现在,回到你的问题:

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

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

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

    现在至于调试,最好的办法是购买logic analyzer,(在 eBay 或速卖通上有更便宜的版本)来捕捉总线上实际发生的情况。上面的图片是用一个制作的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 1970-01-01
      • 2023-03-08
      • 2022-08-02
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多