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.

[参考译文] TMS320C6672:如何清除 I2C 总线挂起条件

Guru**** 2606725 points
Other Parts Discussed in Thread: TMS320C6672

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/585332/tms320c6672-how-to-clear-i2c-bus-hang-condition

器件型号:TMS320C6672

在 sprz335h (TMS320C6672器件勘误表)中、使用说明6介绍了如何清除当 I2C 事务处理过程中的主器件复位时可能发生的 I2C 总线挂起。

据说"I2C 主设备必须生成多达9个时钟周期..." 等等、

但未介绍将 TMS320C6672用作主器件的此类实现的详细信息。

问题:

是否完全可以使用 TMS320C6672作为主器件来实现这样一个 I2C 总线清零(我没有找到将 SDA 和 SCL 用作 GPIO 的提示)?

或者是否需要其他硬件设计措施来使用 TMS320C6672完成此类任务?

sprz335h (TMS320C6672器件勘误表)的节选

使用说明6主器件复位后 I2C 总线挂起使用说明
受影响的版本:1.0、2.0
详细信息:通常知道、如果 I2C 主设备从总线中移除、I2C 总线可能挂起
在数据读取的中间。 这可能是因为 I2C 协议不强制执行
最小时钟速率。 因此、如果一个主器件在一个读取期间复位
从器件将数据线路驱动为低电平、从器件将继续将数据线路驱动为低电平
等待下一个时钟边沿。 这可防止总线主控发起传输。 如果是这样
检测到这种情况、以下三个步骤将清除总线挂起情况:
I2C 主设备必须产生多达9个时钟周期。
2.在每个时钟周期后、必须观察数据引脚以确定是否具有数据引脚
时钟处于高电平时变为高电平。
一旦发现数据引脚为高电平、主器件就可以启动一个启动条件。

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

    您好 Juergen、

    不确定在这方面的 RTOS 实现、但在 Linux 内核中(实现来自内核4.4.32) e2e.ti.com/.../i2c_2D00_davinci.c

    请参阅 Davinci_i2c_SCL_Prepare_recovery()、 Davinci_i2c_SCL_unprepare_recovery ()、 i2c_Davinci_wait_bus_not 忙、 Davinci2c_prepare_recovery ()、 Davinci_i2c_unprepare_recovery ()。  

    另请参见  e2e.ti.com/.../i2c_2D00_core.c 上的 i2c_general_recovery()

    希望这对您有所帮助。  

    此致、  
    Yordan

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

    嗯、当我知道使用 TMS320C6672是可能的、并且找不到 RTOS 或更好的无操作系统芯片特定模板来使用 SCL 和 SDA 作为 GPIO 时、这可能会有所帮助。

    现在、我的主要问题是、如果通过 GPIO 访问 SCL 和 SDA 完全可以使用 TMS320C6672、

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

    同时、我简要看了这个主题
    e2e.ti.com/.../2149364



    我目前从这位研究人员和其他研究人员那里得出的结论是:

    1) 对于 TMS320C6672、不能按逻辑访问 SDA 和 SCL GPIO

    2) 硬件设计人员应考虑 www.ti.com/.../sprugv3.pdf 图 A-4中建议的其他恢复逻辑(我感兴趣的方法也是 www.analogue.com/.../54305147357414AN686_0.pdf )

    3) 可能有一种变通方法、即在没有使用 I2C 模块的回送功能的情况下实现从 TMS320C667x 启动的总线恢复、但这未经验证、如果将 I2C EEPROM 用作引导器件、将不起作用。