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.

[参考译文] 发送"reset"命令保持SDA低

Guru**** 2479615 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/661541/sending-a-reset-command-holds-sda-low

我正在做一个使用I2C通信的项目,当我发送“复位”命令时,SDA线路保持在低位。 如果在该点之后发送了另一个命令,则"reset"命令和下一个后续命令将成为一个长命令。 我知道这个问题是因为当我发送重置命令时,I2C的停止位没有被发送。 我在网上读到过,解决此问题的一种方法是多次切换时钟,但这对我的应用程序不起作用。

命令示例(使用Aardvark监控I2C线路)

[s]<21:w> 52 45 53 45 54 40 21 DF [P]

52 45 53 45 54部件以十六进制重置,21 DF是读取命令。

如果我直接从Aardvark发送相同的重置命令,它会正常工作,而发送时的重置命令通常偶尔也会工作10 % success)。

关于如何在 不关闭电源循环的情况下释放I2C SDA线,有什么建议?

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

    听起来设备的状态机出现故障并卡住。 我知道解决此问题的唯一方法是通过连续时钟脉冲(18个脉冲左右)或POR (开机重置)。

    您切换时钟的次数是多少次?

    您在母线锁扣之前是否有示波器? 了解这方面的进展可能会有所帮助。 我们可能还希望在通信过程中观看Vcc,以确保其稳定。

    谢谢!
    -Bobby