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.

[参考译文] TMS320F28388D:无需 CPU1干预、即可解锁 CPU2所拥有的锁定 I2C 总线

Guru**** 2522770 points
Other Parts Discussed in Thread: TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1281926/tms320f28388d-unlock-a-locked-up-i2c-bus-owned-by-cpu2-without-cpu1-intervention

器件型号:TMS320F28388D

您好、TI 支持团队、

在 I2C 锁定情况下、发送从器件 IC 将数据线保持为低电平(传输未完成、 但 C2000主器件会考虑传输完成)、我们用于将 SCL 引脚从 C2000切换为 GPIO 输出、并使用位拆裂来切换输出、以强制传输完成、直到从器件释放数据线。

在采用 TMS320F28388D 的当前产品上、CPU2拥有一个 I2C。 根据 TRM、只有 CPU1能够更改 GPIO 设置(多路复用器位置)、这样上面的解决方案在没有 CPU1干预的情况下不会工作。

我的问题:是否有办法在没有 CPU1干预的情况下实施类似的解锁策略? 我无法想出任何巧妙的解决方案来实现它。

这种救援应该几乎不需要在脊医,但我们必须确保通信从这样的(不可能的)事件中恢复。 一如既往,感谢您的大力支持!

此致、Gael M

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

    您好、Gael、

    感谢您的提问。 遗憾的是、如您所述、控制 GPIO 多路复用器位置设置的唯一方法是来自 CPU1。 显然、如果你可以非常短暂地切换到 CPU1以执行此配置、然后返回到 CPU2以控制将有效的位拆裂。 但我意识到 CPU1的中断可能不是理想的选择。

    此致、

    文斯