我有一个板子,它充当I2C主站。只有一个主人。它连接到两个从站。一个从站支持时钟拉伸,而另一个不支持。在读取或写入事务之间,线路被拉低。从站有没有可能不把线拉低?
Frome Wikipedia, 物理层段落:
当 SCL 为低电平时,发射器(最初是主设备(将 SDA 设置为 所需的值和(在小延迟后让值传播( 让 SCL 高高浮动。然后,主人等待 SCL 真正离开 高;这将因SCL信号的有限上升时间而延迟 (上拉电阻和寄生电阻的RC时间常数 总线的电容(,并且可能会因从站的 时钟拉伸。一旦 SCL 为高电平,主站将等待最短时间(4 μs 标准速度I²C(,以确保接收器已经看到了该位,然后 再次将其拉低。这样就完成了一位的传输。
所以是的,主站可以将 SCL 线拉低。这是正常的传输结束。