[英]I2C SCL line, clock issue on STM32F4
在I2C界面中,
SCL,即使总线上没有任何设备,时钟线也会传输时钟信号吗?
我们如何调试I2C?
I2C总线主机不知道是否有从设备连接到总线。
它所能做的就是通过将从站的地址发送到总线来启动与特定设备的通信(可以是读取或写入操作)。 如果主机收到ACK,则进行确认,这意味着从机已准备就绪(并出现在总线上)进行通信。 NACK(未确认)可能意味着从站未准备好。 如果请求超时,则意味着总线上没有具有特定地址的可用设备。
现在,回到您的问题:
SCL,即使总线上没有任何设备,时钟线也会传输时钟信号吗?
是的,即使没有任何从机,当主机启动通信时,时钟线也会被驱动。 使用时钟,因为总线上有数据,即从设备地址。
如下图所示,唯一的区别是,如果总线上没有从设备(具有该地址),则不会出现ACK。
现在进行调试,最好的办法是购买逻辑分析仪 (eBay或aliexpress上提供更便宜的版本)来捕获总线上实际发生的情况。 上面的图像是用一个制作的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.