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.

[参考译文] CC3200-LAUNCHXL:CC3200无法作为 I2C 从设备生成 ACK

Guru**** 2398695 points
Other Parts Discussed in Thread: CC3200, RM46L852, MSP430FR5994

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/913295/cc3200-launchxl-cc3200-unable-to-generate-ack-as-i2c-slave

器件型号:CC3200-LAUNCHXL
主题中讨论的其他器件:CC3200RM46L852MSP430FR5994

您好、

我是一名从事一个毕业生项目的学生。 我将 RM46L852 Launchpad 用作 I2C 主设备、将 CC3200 Launchpad 用作 I2C 从设备。 问题是 CC3200无法以可靠的方式生成 ACK 信号、即使是为了解决该问题。 因此、每当我开始通信时、它都会为我提供 NACK 标志。

奇怪的是、每当我将示波器探针连接到 SDA 或 SCL (或两者)时、问题就会消失、并且每次都会发出 ACK。 即使没有探针、我也能获得 ACK、但失败次数超过60%。 我的电流测试电路仅包括这两块电路板、以及用于 SDA 和 SCL 的2个4.7kOhm 上拉电阻器。

我一直使用相同的 RM46板并将 MSP430FR5994用作 I2C 从器件、从未遇到过此问题。 您能帮我调试并解决问题吗? 提前感谢。

此致

Vaibhav

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

    Vaibhav、

    您如何将一切连接在一起? 您是否有可以分享的原理图?

    请注意、CC3200 LaunchPad 上已有3.3k 上拉电阻连接到 GPIO 10和 GPIO 11。 您是否正在使用这些引脚?

    将4.7K 电阻器并联会降低电阻器值、从而防止器件上的 I2C 引脚驱动为低电平。  

    BR、

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

    嘿、Seong、

    感谢您的回复。 连接非常简单、我有两条来自 CC3200 (SDA 和 SCL)的线和两条来自 RM46 (SDA 和 SCL)的线连接到试验电路板。 然后、我让 RM46为试验电路板提供3V3线路。 然后、我通过两个4.7k Ω 电阻将 SDA 和 SCL 连接到3V3。 此外、我已断开 J2和 J3 (板载传感器的 SDA 和 SCL)上的跳线。

    如果我插入 J2和 J3跳线并移除任何其他外部上拉电阻、系统工作正常。 我想知道是否有任何方法可以禁用内部上拉电阻器、请使用外部上拉电阻器。 我将在线路上连接5-6个传感器/板、并在最终设计中使用外部3V3、因此我希望有外部上拉电阻器。 如果您能指导我、那将非常有帮助。

    我也有新的看法。 将4.7千欧电阻器替换为10千欧电阻器可以解决 NACK 问题、但现在 RM46会在完全接收数据之前产生停止条件。 我想随着总电阻的增加、NACK 问题得到了解决、但为什么数据传输会在正确的字节数量之前停止。  

    此外、如果您能够解释将示波器探针连接到总线是如何解决该问题的、那将非常有帮助。

    谢谢。

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

    Vaibhav、

    您观察到的问题可能是由于使用试验电路板连接了两组跳线。 长导线中存在寄生电容、可延迟上升时间并衰减 I2C 信号。 因此、消除一组导线并使用板载3.3k Ω 上拉电阻器可能会按预期工作。 如果您构建的电路板上的 CC3200和5个传感器通过短迹线进行连接、则不应出现任何类似问题、因此我建议您使用尽可能短的导线、以便更好地反映最终的情况

    有关 GPIO 的配置、请参阅此处。

    第一步是选择正确的上拉电阻器值。 请参阅使用 此应用手册 为您的应用计算合适的电阻器值、并再次尝试测试 I2C。

    示波器探针可以表示为可能影响 I2C 运行的小容性负载。 也可能是接地问题、即通过解决问题的示波器将设置的 GND 连接到接地。

    您是否有可共享的原理图以及显示流量和详细上升/下降沿的示波器截图?

    BR、