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.

[参考译文] MSP430FR2311:在从器件侧执行 I2C 阻塞总线清除

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/767184/msp430fr2311-implementing-i2c-stuck-bus-clear-on-the-slave-side

器件型号:MSP430FR2311

我将 MSP430用作 I2C 从设备。  似乎从器件端清除卡住的总线比从主器件端清除总线更容易、并且可以完成所有引脚读数、将 i2c 引脚重新配置为 GPIO、计时直至总线清除等  在从器件端、您似乎可以监控状态机、并确保在出现 i2c 启动中断时、使用计时器开始计数。 您还可以为事务提供唯一 ID,然后使用一个计数器来检查该唯一 ID。  如果计数器达到某个指定的超时时间(例如1秒)并且唯一 ID 没有变化、则复位外设和状态机、这应清除阻塞的总线。

有什么想法?

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

    尊敬的 Andrew:

    不确定我是否完全理解您、但您为什么不使用时钟低电平超时功能来检测阻塞的总线、然后使用 UCSWRST 位复位 eUSCI_B 模块(请参阅用户指南第32.3.7.3章)。

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

    我的理解是、"总线阻塞"具有 SDA 卡在低电平而不是时钟低电平的特性。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Andrew、
    我不知道 I2C 总线卡滞有标准定义、但如果总线卡在 SCL 高电平、该功能将不起作用、对吧?
    用户指南在第32.3.1章中定义、以详细介绍 I2C 使用的完全初始化。 关键是你不知道为什么总线卡在正确位置? 如果主设备对卡住的情况负责、它不会在从属设备站点上提供帮助、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Andrew:
    您是否能够找到解决方案或是否需要更有力的帮助?
    如果没有回复、我将在本周结束前关闭此主题。