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.

[参考译文] CC3220SF:无 I2C 通信

Guru**** 2394305 points
Other Parts Discussed in Thread: CC3220SF, BQ25601D

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/959331/cc3220sf-no-i2c-communication

器件型号:CC3220SF
主题中讨论的其他器件: BQ25601D

尊敬的 TI:  

我们发现与 CC3220SF 进行 I2C 通信存在一个奇怪的问题。  

在99%的器件中、I2C 通信工作毫无瑕疵、但在某些情况下却没有。
I2C 总线连接到 BQ25601D 电池充电器和 LTC2941电量监测计。

初始化代码的草图如下所示:
I2C_Init()
I2C_PARAMS_INIT ()
句柄= I2C_open ()

按预期执行、即句柄不等于 NULL。

总线被初始化为非阻塞模式。
实际传输(I2C_transfer (handle、I2C_Transaction))不起作用。

我们根本看不到总线上的任何通信。 SDA 和 SCL 都持续为3.3V。
由于 I2C 通信是在非阻塞模式下完成的,因此 I2C_Transfer()函数始终返回 true。

在产品放在工作台上几天之后、我再次打开器件、I2C 总线恢复正常并按预期工作。 我们也在其他器件中看到了该问题、但没有找到解决方案、因为似乎错误会不断发生。   

您是否知道 I2C 和 CC3220SF 存在任何已知错误、其中 I2C 总线根本不传输任何数据?   


最棒的
Mathias Vandel

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

    您好、Mathias、

    您测试的是 LaunchPad 还是定制板? 您使用的是什么 SDK? 您能否验证您是否未将这些 I2C 引脚设置为另一个外设(如 GPIO)?

    此致、

    Sarah

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

    [引用用户="Sarah P"]

    您好、Mathias、

    您测试的是 LaunchPad 还是定制板? 您使用的是什么 SDK? 您能否验证您是否未将这些 I2C 引脚设置为另一个外设(如 GPIO)?

    此致、

    Sarah

    [/报价]

    您好、Sarah、  

    我使用的是定制板、总线上有2k 上拉电阻器。

    SDK:4.20。  

    是的、这些引脚仅设置为 I2C 引脚。   

    最棒的

    Mathias

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

    Mathias、

    您是否尝试增大电阻器值? 下面是 一个应用手册 、其中介绍了如何计算 I2C 上拉电阻器值。

    当 I2C 信号正常工作时、您能否共享清晰的示波器快照?  

    BR、

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

    [引用用户="Seong Kim"]

    Mathias、

    您是否尝试增大电阻器值? 下面是 一个应用手册 、其中介绍了如何计算 I2C 上拉电阻器值。

    当 I2C 信号正常工作时、您能否共享清晰的示波器快照?  

    BR、

    [/报价]

    是的、我尝试使用较大的上拉值-但没有任何区别。  

    我目前没有 PCB 出现故障、但我们看到的信号是3.3V 直流电、根本没有任何时钟。  

    此致、

    Mathias

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

    Mathias、

    您是否说 I2C 时钟一直处于低电平? I2C 从器件作为状态机工作、如果 CC3220在发送停止条件之前复位、则可能会被阻止。

    您可以实现的一种简单解决方案是在 CC3220上电后执行任何 I2C 操作之前多次切换时钟。  

    BR、

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

    尊敬的 Seong:  

    不可以、我说 SCL 和 SDA 被上拉至3.3V、当通信应该发生时、CC3220 (或从器件)永远不会被切换至低电平。  

    问题并不是永久性的、即95%的产品启动时间都能完美地工作...  

    最棒的

    Mathias

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

    您好、Mathias、

    只是一个评论。 您提供的信息对我来说毫无意义。 我认为有两种选择:

    • 硬件问题- SCL 或 SDA 线路直接短接至 UCC。
    • 或者需要在 SCL 和 SDA 上看到一些活动(某些活动在执行 SPI 代码时拉低)。 在这种情况下、请使用示波器并检查 I2C 电平、并使用逻辑分析仪来显示总线上发生的情况。

    从技术上讲、CC3220不可能与某些 I2C 芯片一起工作、但有些芯片不能与正确的总线上拉配合工作、但在总线上没有活动(始终 SDA 和 SDL 在 HI 时)。

    1月

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

    您好、Jan、  

    这对我也没有意义,但我 和我的同事 亲眼目睹了这一点。。  

    但我们看到的是 SDA 和 SCL 上的恒定3.3V、总线上有适当的上拉电阻。  

    但是、使用完全相同的 FW、完全相同的硬件(相同的 CC3220)、I2C 通信停止工作。 一段时间后、I2C 通信以磁力的方式重新开始按预期工作。  

    我们现在已经在~5器件上看到了这种情况。  

    I2C 总线正在与电池充电器和电池电量监测计通信、我开始怀疑电池处于特定电压/容量时会发生这种情况。 但这仍然是奇怪的、因为我会假设 SCL/SDA 线路上至少会发生一些事情...  

    /Mathias

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

    您好、Mathias、

    如果在出现问题时(及其之前)不嗅探 I2C 线路、则很难说出发生了什么情况。

    只需确保。 如果出现问题、SPI 外设的重新初始化无法修复问题、对吧?

    1月

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

    您好、Jan、  

    实际上、在这种情况下、嗅探是无聊的、因为它绝对是空的...  

    我还没有尝试过、但很快就会尝试。 谢谢!  

    Mathias

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

    您好、Mathias、

    但出于这个原因、您需要在问题出现之前进行嗅探。 可能是 I2C 外设处于错误状态、TI 驱动程序以某种方式失败、或者您的代码中存在其他导致故障(例如堆栈或缓冲区溢出)的错误。

    1月