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.

[参考译文] MCU-PLUS-SDK - AM263X:MCU-PLUS-SDK - AM263X

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1324125/mcu-plus-sdk-am263x-mcu-plus-sdk-am263x

器件型号:MCU-PLUS-SDK AM263X

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1310642/mcu-plus-sdk-am263x-i2c-transaction-failure-after-a-read-to-a-non-existent-device-address

我们是否能够找到解决此问题的方法? 使用标准 MCU+ SDK 和 AM263x 控制卡很容易重新创建。

只需访问在不存在的 I2C 器件上执行 rd 或 power、假设7b 地址为0x61、然后在 AM263x 控制卡上地址为0x60的 LED IO 扩展器上执行 vali I2C 事务、您将需要有效访问失败。

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

    你好、Kedar、

    我们 已经复制了该问题、并确认它是 SDK I2C 驱动程序上的有效错误。 我们将在即将发布的09.02v 版本中修复此问题。  

    团队正在进行修复。 我们将在3-4天内共享修复程序。

     

    此致、

    阿比谢克- S

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

    谢谢

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

    你好、Kedar、  

    根据处于阻塞模式时在 NACK 条件下的当前驱动器、在启动停止之前发布信号量。
    在启动停止条件后、中断被禁用;因此不再发生中断。
    检查总线是否繁忙是解决问题的一种方法、虽然这是一种相当原始的方法。

    一种更好的方法是以不同的方式处理 NACK、以下是这样的一种方式。

    - NACK 发生
    -对象状态变为 I2C_ERROR
    -将中断存储在 intStatusErr 中
    -清除并禁用除 STOP 之外的所有中断
    -启动停止
    -控制器中断由于停止完成而再次触发
    -在 I2C_ERROR/I2C_IDLE_STATE 中、检查 NACK 是否来自 intStatusErr
    -清除和禁用停止中断
    -发布信标

    这样、在发布信标时、总线将处于空闲状态。

    我已经附加了补丁文件。 您能否尝试将它应用到您的代码中、并让我知道它是否起作用?

    此致、

    阿比谢克- S

    e2e.ti.com/.../8345.i2c_5F00_nak_5F00_interrupt_5F00_fix.patch

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

    谢谢、此操作可解决此问题。  

    PS、您提供的补丁是"反转"的