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.

[参考译文] CC3220MODA:I2C 问题

Guru**** 2535750 points
Other Parts Discussed in Thread: BQ32000, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/837225/cc3220moda-i2c-issue

器件型号:CC3220MODA
Thread 中讨论的其他器件:BQ32000SysConfig

您好!

我的 I2C 总线上有两个从器件。 一个是 AM2315温度湿度传感器、另一个是 RTC - BQ32000。

我能够从这两个从器件读取数据、但在一段时间后、RTC 发生故障、当发生此故障时、我无法读取它的值、两个从器件都停止响应。 即使在多个看门狗复位后、我也无法恢复状态。 我必须从物理上移除电源、之后、它们再次开始响应。

我无法理解导致此问题的原因。  

请帮帮我。

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

    您好!

    这是许多类型的 I2C 从器件的常见问题。 有时、I2C 从设备上的内部逻辑卡在并将 SCL 线路保持在低电平状态。 这个问题的恢复过程在 SCL 上生成几个脉冲、这些脉冲是从器件的恢复状态。

    1月

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

    您好、Jan、

    感谢您的快速回复、

    AM2315使用电平转换器(5V)、RTC 直接连接。

    您能解释一下如何实施此恢复过程吗?

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

    您好!

    如果问题经常出现、我希望您的硬件方面出现问题。

    要进行恢复、您应该:

    • 禁用 I2C
    • 将 SCL 引脚设置为 GPIO
    • 通过切换 GPIO 在 SCL 生成少量脉冲
    • 切换回 I2C 并重新初始化 I2C

    1月

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

    您好、Jan、

    感谢您的回答。

    我将实施该解决方案、并告诉您它是否可行。

    此致

    Akshit

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

    您好、Akshit、

    正如 Jan 指出的、您应该将 SCL 线路设置为 GPIO 输出并切换输出、以便在遇到无响应的 I2C 从设备时向连接的 I2C 发送几个时钟脉冲。 此类似的 E2E 主题提供了有关该做什么的更多信息和资源:

    https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/p/829053/3070392#3070392

    如果您需要更多的澄清、或者对于如何处理 CC3220上卡滞的 I2C 总线有进一步的问题、请告诉我。

    此致、

    Michael

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

    您好、Michael、

    感谢您的回复。

    我使用 sysconf 来维护板配置,因此 会动态创建 gpioPinConfigs[]。 我无法理解在将 I2C 引脚声明为 GPIO 引脚时如何获取索引?

    请提供帮助、

    Akshit

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

    您好、Akshit、

    如果您使用的是 SysConfig、则生成的 gpioPinConfigs[]位于 CCS 项目文件夹的 Debug/syscfg/Board.c 中。 您可以在 Board.h 中找到可使用特定于参考的 GPIO 的相应索引  

    此致、

    Michael