This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BQ27Z561-R1:I2C 时钟拉伸

Guru**** 2539500 points
Other Parts Discussed in Thread: BQ27Z561-R1

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1085867/bq27z561-r1-i2c-clock-stretching

部件号:BQ27Z561-R1

尊敬的专家:

有关技术参考手册中的以下说明:

 I2C 时钟可能在主机读取 周期上的起始位,ACK/nack 位和第一个数据位传输之后发生。”

所有 I2C 时钟拉伸 仅在读取周期发生? 还是只有 第一个数据位在主机读取 周期上传输?

 I2C 时钟可能 在起始位后拉伸。 那么,这种情况会在任何比特之间发生吗?

 I2C 时钟可能会在 ACK/nack 位之后拉伸? ACK 表示传输已成功 ,为什么仍需要时钟拉伸?

客户 BQ27Z561-R1随机遇到高通处理器 I2C 挂起问题。  

如下图所示(蓝色为 SCL,紫色为 SDA),在 ACK 后,SCL 保持在大约300ms 的低水平(您可以参考上部缩小图像),然后变为高。 在确认后,SDA 会很高,在大约100毫秒后会变得很低。 然后 I2C 总线挂起(无任何信号变化)。   (此 I2C 总线只有561个)

如果您有问题,需要您的帮助来回答我的上述问题,并给我更多提示。  

非常感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Ryan,

    时钟伸展可能随时发生。 检查发送停止位是否有帮助。 这可能表示错过了时钟周期。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shirish,

    是的,你是对的。 我们发现,当存在停止点时,问题就不会发生。 即使错过了时钟周期,根据数据表,在2秒后,561应该超时。 它不应该卡在这里。 什么可能导致 I2C 总线永久卡在此处?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shirish,

    “如果 I2C 总线保持在低电平大约两秒钟,I2C 发动机将释放 SDA 和 SCL。”

    以上是 TRM 提供的 BTW。 这是否意味着 SDA 或 SCL 较低,将会发生超时? 还是两者都很低?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Ryan,

    在这种情况下,当数据不足时,时钟很高。 情况不同。

    我建议您连接一个串联电阻器,以检测哪一侧(主机或仪表)拉低 SDA