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.

[参考译文] TMS320F28377D:I2C 挂起

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/778878/tms320f28377d-i2c-hangs-up

器件型号:TMS320F28377D

尊敬的所有人:

我的其中一位 AA 报告了以下与 I2C 相关的问题:

 "我在使用28335和28377d 的 i2c 外设时遇到一些问题。 我在总线上连接了一个外部 ST EEPROM 和一些其他器件。 有时通信挂起在这种情况下、i2c 中断过程(未启用 FIFO)报告没有中断!"

我已经附加了用于处理 I2C 的代码。

您能在调试中提供帮助吗?

此致、

Domenico

e2e.ti.com/.../sc_5F00_request_5F00_ba62215edbbfa340a47d7dad6896195a_5F00_attachments.zip

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

    您是否对您所面临的 I2C 问题进行了任何快照(或)正确描述? 只说"I2C 挂断"就没有太大帮助。

    此致。
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    i2ca_TX_Rx 例程在以下行上挂起:
    while (!(i2ca.done || i2ca.nack));
    但是、该软件版本具有权变措施、因为原始行是:
    while (!(i2ca.done));
    该解决方法还在 i2c 中断过程中添加了以下行:
    情况 I2C_NO_ISRC:
    i2ca.nack = true;
    中断;
    如果没有这些线路、软件将继续等待 i2c 传输结束。
    此致 Luca
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    卢卡

    嗯、我不确定您在上面的消息中引用的是哪个软件代码。 但是、看起来您能够使它正常工作。 我是对的吗? 我们可以关闭这个线程吗?

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

    曼诺伊

    该代码附在 Domenico 的第一篇帖子中、代码的行为不可靠、我认为我们无法关闭该线程。

    卢卡

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manoj
    我已经完成了其他测试、我认为 NACK 发生时会出现问题、因为 i2c 中断过程转到 I2C_NO_ISRC 案例:仅在我在轮询 EEPROM 等待程序运行结束时接收到的 NACK 之后
    此致 Luca
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    卢卡

    请查看以下有关处理 NACK 的帖子。

    processors.wiki.ti.com/.../I2C_Tips

    此致、
    曼诺伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manoj
    看起来很有用... 我将进行检查。
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此问题是否已解决? 我可以关闭此主题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我需要更多时间来测试建议的解决方案。 如果您现在需要关闭该线程、请将其关闭。
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我将再等待1周。

    -Manoj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manoj
    我已经检查了建议的解决方案、并按照建议管理 NACK、我解决了问题。
    谢谢 Luca