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.

[参考译文] TCA9555:TCA9555 I2C 死锁恢复

Guru**** 2391845 points
Other Parts Discussed in Thread: TCA9555, TCA9539

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/712324/tca9555-tca9555-i2c-dead-lock-recovery

器件型号:TCA9555
主题中讨论的其他器件: TCA9539

您好!

我在单个 I2C 总线上以100KHz 使用四个 TCA9555器件。 它们按预期工作、但在某些情况下(即施加在电路板上的强 EMI)、总线被阻断、无法恢复(除非将电源切换为关闭)。 由于该器件没有复位输入、我想知道是否可以使用 SDA 和 SCL 线路以某种方式将 I2C 总线重新启动到空闲状态。 这是否可行?

此致、
Gaston

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

    Gaston、您好!

    "我想知道是否可以使用 SDA 和 SCL 线路以某种方式将 I2C 总线重新启动到空闲状态。 这是否可行?"

    我知道的唯一方法是在 SCL 上发送18个时钟脉冲、尝试重置状态机、尽管可能处于未知状态、并且不对此做出响应。

    如果这不起作用、则重置器件的唯一方法是执行下电上电(关闭并重新打开)。

    谢谢、

    -Bobby

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

    您好、Bobby、

    很有趣 在哪里可以找到有关此"重复"方法的一些信息? 它是与器件的特定功能相关还是属于 I2C 规范的一部分?

    此致、
    Gaston

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

    Gaston、您好!

    "在哪里可以找到有关这种"重复"方法的一些信息?"

    虽然 我提到了18个时钟脉冲、以确保器件释放总线标准状态为9个时钟脉冲、但这在 I2C 标准中有所规定。

    标准第20页上有一个 snip-it:

    "它是否与器件的特定功能相关"

    不可以、因为这应该适用于所有 I2C 从器件。 这是因为从器件的状态机不再与实际的 I2C 时钟保持一致。 这可能是由于噪声、热插拔事件、在线路上产生振铃的寄生电感或与 I2C 时钟线路的串扰造成的。 9个时钟脉冲应该复位从器件的状态机、以便它可以看到一个停止条件。

    我还应该提到、有些器件具有"阻塞总线恢复"功能、该功能实际上会检测 SDA 线是否被锁存为低电平、并自动生成9个时钟脉冲以尝试释放总线。

    谢谢、

    -Bobby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Bobby、非常感谢您的详细解释。 在这种特殊情况下(电梯控制器)、我不能承担任何风险。 因此、我更喜欢切换到具有复位线路的器件(即 TCA9539、支持多达4个从器件地址)。

    此致、
    Gaston