老师,I2C通信的时候在发送完一个字节的数据后,需要把SDA置1

🔍 溯源 ✍️ Jack | 📅 2024-09-08 | 👍 0 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/I2C #质量/普通

原帖 | Jack | 2024-09-08 01:04 | 👍0 | 阅读约1

老师,I2C通信的时候在发送完一个字节的数据后,需要把SDA置1,来将SDA总线的控制权交给从机,然后从机在下一个时钟发送应答信号。 既然是通过SDA置1来达到总线控制权的释放,那么在发送第一个字节的时候,数据中会有逻辑1,这时候也是SDA置1,但是这时候为什么总线的控制权还是在主机呢? 从机是怎么区分这两次SDA置1是信号,还是主机释放了控制权呢?

从机能够区分这两种情况,是通过通信时序。在发送第一个字节时,SDA 的置 1 是随着数据发送,由主机控制时钟逐个数据位发送,从机在每个时钟沿接收数据位。而释放总线控制权时,主机在发送完一个完整的字节后,停止发送时钟,将 SDA 置 1,并保持一段时间,等待从机响应。数据接收时段从机不会抢占总线控制权。

IIC问题


相关笔记