请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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 总线?
- 将主器件的 I2C 线路切换为 GPIO 线路、
- 将它们都保持在低电平2秒钟以上,然后
- 在 MSP430串行外设的控制下、将主器件切换回 I2C 线路。
