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.

[参考译文] BQ27510-G3:解干扰 I2C 总线

Guru**** 2482145 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/697365/bq27510-g3-unjamming-the-i2c-bus

器件型号:BQ27510-G3
主题中讨论的其他器件: BQ27510

我们正在设计中使用 BQ27510-G3电量监测计。

由于以前在中等复杂的 I2C 总线上使用各种 I2C 总线器件的经验、我们希望能够在 I2C 总线卡滞时将其解锁。 在过去、我们编写并测试了一个相当复杂的 GPIO"位拆裂"序列、该序列似乎能够从大多数"卡住"的条件中恢复 I2C 总线。 (也就是说、无论大多数 I2C 外设在任何正在进行的 I2C 数据传输中处于何种状态、它都会使其进入正确的"已停止"状态。)

但我们当前的 I2C 总线只有 MSP430作为主器件、BQ27510作为从器件、数据表(SLUSAT1A–2013年3月–2015年11月修订)中有一段内容听起来非常有希望:

如果我乐观地阅读这一信息、听起来好像(但并不是准确地说) BQ27510 I2C 总线状态机将在看到 SDA 和 SCL 都保持低电平两秒钟后恢复到其"接地状态"。 与我们的甘蔗 I2C 解卡序列相比、这听起来更简单、更可靠。

我读得太慷慨了吗? 或者、我的解释实际上是什么意思? (假设我的 MSP430 I2C 总线主设备未连接、)我能否简单地通过执行以下操作来解锁当前的 I2C 总线?

  1. 将主器件的 I2C 线路切换为 GPIO 线路、
  2. 将它们都保持在低电平2秒钟以上,然后
  3. 在 MSP430串行外设的控制下、将主器件切换回 I2C 线路。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Atlanta,
    您认为是正确的。
    谢谢
    Onyx
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Onyx:

    >您的理解是正确的。

    谢谢! 好消息! 我们将对此进行编码!