我们将 SoC 器件用作向 MSP430F5438A I2C 总线写入数据的主器件。 MSP430F5438A 是从器件。 我们偶尔会看到 SCL 一直保持低电平、直到发生超时。
在接收到以下数据字节的第7位时的寄存器、这是一个错误条件
可能会发生在 I2C 总线上。 根据 USCI 配置、可能会出现以下情况
发生:
1) 1)如果 USCI 配置为 I2C 主接收器、则会意外重复启动
条件可被触发或者主器件切换至一个空闲状态(I2C 通信
已中止)。 在这种情况下、当前数据字节的接收不成功。
2) 2)如果 USCI 配置为 I2C 从接收器、从器件可以切换到空闲状态
停止 I2C 通信。 在中、当前数据字节的接收不成功
这种情况。 USCI I2C 状态机将通知主器件接收中止
一个 NACK。
请注意、上面描述的错误条件只在的一个有限窗口内发生
接收到的当前字节的第7位。 如果接收缓冲区被读取超出此范围
窗口(之前或之后)、则不会发生错误情况。
问题:
第一段和最后一段似乎有些冲突。 您能提供澄清吗?
4. 您有哪些想法和/或问题可以帮助我们确定为什么并防止 SCL 卡在低位?