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.

[参考译文] TMS320F28386D:I2C 总线挂起(SDA 挂起)

Guru**** 2457700 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1278501/tms320f28386d-i2c-bus-hangs-sda-hangs

器件型号:TMS320F28386D

在我的项目中、CM 内核的 I2C 总线与两个从器件相连接。

由于看门狗复位、有时 CM I2C 总线会发生 SDA 挂起。

是否有建议的解决方案可解决此问题?

有两个从器件没有复位引脚。

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

    您好!

    只是为了验证、 是否上拉了 I2C 引脚? 您的项目是否需要将器件的看门狗复位、还是满足您需要为中断提供服务的要求?

    此致、

    阿米尔·奥马尔

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

    不、从器件将 SDA 保持为低电平、上图显示。

    我可以从历史记录问题中获得答案。  

    我想知道 TI 有没有 driverlib 接口来恢复此 I2C 问题、或者有其他推荐的恢复方法?

    这位于 CM 内核 I2C 中。

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

    您好!

    CM I2C 与通常属于 C2000器件硬件的 I2C 不同、因此我不太熟悉。 我将与设计团队进行核实、看看硬件中是否有器件可以实现 您所描述的功能。

    此致、

    阿米尔·奥马尔

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

    谢谢、等待回复

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

    感谢您的耐心、一旦我得到回复、我将尽量在一周结束前让您知道。

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

    在 CPU2中、我们面临同样的问题。 C28内核。 我还需要信息。

    TI 是否有 driverlib 接口来恢复此 I2C 问题或其他推荐的恢复方法?

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

    您好!

    我相信您应该能够将 I2CMDR 寄存器中的 IRS 位用于 C28x I2C。

    我将注意到、在这两种情况下、即 CM I2C 和 C28x I2C、您可能都会进行一些轮询、以确定 I2C 总线是否出于某种原因。 这是您的计划的一部分吗?

    另外、从另一点来看、您是希望 WD 能够对器件进行复位、还是仅仅发生了这种情况? 我很好奇为什么启用了 WD 并在 I2C 传输期间导致了未接受服务的复位。

    此致、

    阿米尔·奥马尔

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

    就是发生的事情。

    这是在一些特殊情况下将触发看门狗复位的设计。

    当看门狗复位的同时、I2C 通信开启。 此复位会导致 I2C 通信意外停止。

    从器件保留 SDA 线、即使 F28386也会重新启动、并尝试对从器件执行写入和读取操作。 但 SDA 保持低电平。  不会进行 IIC 通信。

     

    因此需要恢复从器件、使其释放 SDA 线。

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

    您好!

    但 SDA 保持低位。

    我不确定您是否已经回答了我之前关于这个问题的问题、I2C 引脚上是否有上拉电阻器? 这是 I2C 所必需的。

    此致、

    阿米尔·奥马尔

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

    是的、它具有可连接到3.3V 电源的上拉电阻器。

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

    您好!

    我与 一位设计专家讨论了这个问题、他告诉我、当 CM I2C 用作主设备并且器件本身进入复位状态时、如果目标控制 SDA 并且其为低电平、则作为主设备的 CM I2C 无法启动新事务。 由于目标 I2C 没有复位、因此您会看到总线挂起情况。

    此致、

    阿米尔·奥马尔

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

    好的。 谢谢。  

    您能否帮助与 IIC 专家沟通以下方法?

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

    抱歉、我需要此帖子的上下文。 您能否对其进行链接、以便我查看它是什么器件?

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

    抱歉、我现在无法找到该 TT。

    但下面的问题与我是相同的。

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

    我不知道这是否与 F2838x 器件上的连接管理器的 I2C 相同(请记住、CM I2C 和正常的 I2C 是不同的)。 CM I2C 上没有重置功能、但我将咨询设计专家、以了解是否可以通过软件或其他方法找到权变措施。   如果我得到他们的回应,我会在下周早些时候作出回应。

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

    我遵循这个问题、因为这是产品的紧急错误。

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

    我仍在尝试与设计专家确认这一点、他们还没有给我提供解决方法(我每天积极地向他们发送电子邮件)。

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

    非常感谢!

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

    没问题、一旦我得到响应、我就会向您更新。

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

    专家建议使用 I2CMRIS CLKRIS 来查看时钟超时中断的状态。  您可以使用 I2CMCLKOCNT 寄存器来设置超时值。

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

    当进入 I2C 错误状态时、我调用 I2C_setMasterClkTimeout (I2C0_BASE、0x7d);

    但无法恢复。 它只是使 CLK 从高到低。

    但 SDA 作为错误状态保持低电平。

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

    有关这方面的更多信息、请参阅参考手册中 CM I2C 一章的时钟低电平超时(CLTO)部分、但这是您需要在应用中处理的事项。 通过配置时钟低电平超时、您可以使用前面提到的 CLKRIS 状态来让应用程序代码处理此错误。 我已经在下面的部分中添加了一个简短的片段供参考、但从手册中全文阅读可能会更有帮助: