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.

[参考译文] CC1352R:定制电路板上出现奇怪的 I2C 问题

Guru**** 2460850 points
Other Parts Discussed in Thread: LP-XDS110, SYSCONFIG, CC1352R, LAUNCHXL-CC1352R1

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1547687/cc1352r-a-strange-i2c-problem-on-a-custom-board

器件型号:CC1352R
主题中讨论的其他部件:LP-XDS110Sysconfig

工具/软件:

你(们)好

我一直使用 CC1352R1 Launchpad 来开发我的应用...所有这些都进展顺利。 (CCS 10.4、Win11、simplelink_cc13x2_26x2_SDK_5_20_00_52)

我现在在我的定制板上测试我的应用程序&所有不是 well....in 事实我有一个相当特殊的问题.

我的定制电路板通过 USB 供电、它具有到 LP-XDS110 调试器的 JTAG 连接。

电路板的一个方面是有一个 DS1672S 二进制计数器、我将其用作备用 RTC。 它通过 I2C 进行通信。

当我连接调试器并调试我的应用时、I2C 线路上的通信正常工作、没有问题。 在 SDA 上使用示波器进行确认。

如果我停止调试并断开调试器的连接、I2C 线路上的通信将继续正常运行。 再次在 SDA 上使用示波器进行确认。

如果现在对电路板进行下电上电、我会注意到 I2C 线路上没有通信。 (范围未被触及,也未被移动)。

重新连接调试器并开始调试会话、所有操作都很好。

电路板或芯片上的其他子模块似乎都不会出现同样的问题。

我的问题是:地球上的情况如何?  
我无法理解为什么调试会话应该表现出 I2C 模块看似“启动“的效果、但当在调试会话之外进行下电上电时、I2C 模块仍然不工作。

【编辑】移除 LP-XDS110 调试器后、我将 LP-CC1352R1 连接到电路板、但我未将 LP 连接到电源(但似乎我的电路板为其提供了一些电源)... I2C 工作正常...因此、仅连接调试器一个事实就足以使 I2C 正常工作

提前感谢

Moshe

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

    尊敬的 Moshe:

    让我了解一下问题:

    1.这是否意味着 I2C 线路被下拉或上拉、但没有发生通信?

    如果我现在对电路板进行下电上电、我会注意到 I2C 线路上没有通信。

    2.不使用调试器时,应用程序的其余部分是否正在运行或所有部分都停止?

    不使用调试器时、所有器件都通电了吗?

    4.您能分享一个在初始化 I2C 驱动程序和您的 Sysconfig 时截获的代码吗?

    5.你可以尝试在没有调试器和示波器的情况下运行它吗? 工作原理?

    此致、

    Daniel

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

    您好 Daniel

    感谢您的答复。

    1. I2C 线路被上拉并保持 so..no 通信发生。
    2.其他应用程序运行正常。
    3.一切都有动力。
    4. I2C_Params i2cParams;
    I2C_Params_init (&i2cParams);
    i2cParams.bitrate = I2C_100kHz;//I2C_400kHz;//I2C_100kHz;
    I2C = I2C_OPEN (CONFIG_I2C_0、&i2cParams);
    SysConfig — 请参阅随附的。

    5、我使用示波器运行的唯一原因是因为它不起作用。

    我真正遇到的问题是 JTAG 线路(和 MCU 引脚)与 I2C 之间的连接是什么???

    此致

    Moshe

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

    尊敬的 Moshe:

    我还不确定。

    您在 I2C_Params_init 之前调用 I2C_init()  吗?

    您是否可以查看此用例 (+) CC2640R2F:I2C 在连接到调试器时运行良好,但现在由外部供电 — 蓝牙论坛- BluetoothRegistered︎ — TI E2E 支持论坛

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

    这听起来像某种睡眠相关的问题。 当您连接调试器时、由于 JTAG 连接/活动调试、芯片无法进入睡眠模式。  

    但当您重启电源时、芯片可能会进入睡眠状态。 我将测试这对 I2C 驱动程序和驱动程序设置的 GPIO 有何影响。  

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

    您好 Daniel

    是的。。 在 main 中调用 I2C_init ()。

    我看到了这种情况、很遗憾这里不适用。

    此致

    Moshe

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

    您好“theGhostOf"...遗憾“遗憾的是、我有两个 LED 和 UART 通信、它们在下电上电后完全正常工作、因此无法让芯片进入睡眠状态。

    但是、调试和 I2C 之间必须有一些连接、但如果我知道从哪里开始查看、就会受到影响。

    【编辑更新】
    我注意到、连接 LP1352R 与 LPXDS110 时存在差异、这可能会说明这个问题...
    借助 LP1352R、只要 LP 连接到 LP 上的 XDS110(CC1352 完全隔离)、我就可以在定制电路板上进行下电上电、I2C 就会正常工作。
    但是、如果连接了 LPXDS110、当我在定制电路板上电时、必须为 LPXDS110 上电、I2C 才能正常工作。

    调试芯片本身在这方面可以发挥作用吗?

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

    尊敬的 Moshe:

    很抱歉、我想我没有关注您的最新更新。

    如果您的定制板连接到 1352R Launchpad(通过 JTAG 连接器?)、但 LaunchPad 未通电时、它是否正常工作? XDS110 跳线与 LaunchPad 的连接是否断开?

    此致、

    Daniel

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

    您好 Daniel

    Yes..in 1352R LP 的情况下、所有跳线(XDS 电源/跳接 XDS 电源除外)均已移除、并且我正确使用 JTAG 连接器和定制电路板 I2C。

    但问题可能有所改变...引脚 TDI
    对于 1352R LP、TDI 处于 3.2V
    对于 XDS LP、TDI 为 0V
    但是、如果我移除  1352R LP 上的 XDS 电源/外部电源跳线、则 TDI 在下电上电后保持为 0V、此后 I2C 无法 正常工作(与 XDS LP 一样)...但当我在定制板通电期间重新插入该跳线时、我注意到定制板执行了复位(有 LED 指示此情况)、I2C 正常工作 — 在此实例中未执行物理电源上电。

    因此、TDI 有某种效果、但如果我只是为 TDI 引脚提供 3.2V 电压、因为我尝试了使用跳线来实现该电压...或者 1352R LP 上的 TMC 是否通过 JTAG 供电并通过 TDI 向 CC1352R 发送信号???

    此致
    Moshe

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

    -您使用的是 2 引脚还是 4 引脚 JTAG? (通常,JTAG 以 2 引脚启动、然后必须在工具中设置所需的 4 引脚)

    -默认情况下, GPIO17 用作 IO ,但作为 4 引脚 JTAG ,此引脚用作 TDI。 您是否仔细检查了是否未将此 GPIO 用于电路板上的其他器件?

    -   LP-XDS110 和 CC1352R LP 的顶部在概念上是相等的, JTAG 部分是相同的。 因此、首先来看、它们的行为方式不同毫无意义。 您是否能够提供一些图片、其中清楚地显示了调试器与电路板之间的工作连接和非工作连接? 显示 JTAG 连接和 I2C 器件的电路板原理图(部分)也可能有所帮助。  

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

    调试器未上电、因此问题是 2 引脚还是 4 引脚、不应该 相关。 因为它是,当我已经使用调试器(两个)我从来没有设置连接是 2 引脚还是 4 pin....in 事实它永远不会对我和想象它是 4 引脚,因为提供的连接是 4 引脚..

    所有引脚分配都在 CCS-SysConfig 中执行、并且没有报告任何冲突...所有使用的外设都会保留其默认引脚分配、专门分配为 I/O 的 GPIO 肯定不会使用 DIO17。

    我同意,整个情况是没有道理的。

    请参阅随附的原理图。

    我认为 TDI 是 problem...no的中心,阅读它。

    【编辑】也许我把这看作是错的...也许 我应该问:“当没有连接调试器/加载器时、是否可以使 JTAG 轨迹保持悬空“...in 在哪种情况下、我可以在哪里找到有关 JTAG 迹线应该如何布线/连接/通电的信息?

    【进一步更新】我刚刚发现了一些可能会揭示问题的东西。。
    1.我断开了 dubgger 的连接。
    2.我重新上电,然后就像预期的那样, I2C 不工作了。
    3.然后我循环使用“复位“引脚(电路板有一根跳线连接到 GND)、 这导致 I2C 此后正常工作!
    由 USB 为向 3.3V 网络输出 3.3V 电压的 LDO 供电、RESET 跳线仅将 3.3V 网络路由到 GND。
    I2C 是否可能 只能在最短启动时间后启动?


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

    尊敬的 Moshe:

    您是否参考了 LAUNCHXL-CC1352R1 原理图?

    当您将 XDS110 电源跳线置于另一位置时、该问题是否也会发生?

    激活调试连接时、系统会复位。 那么它可能与启动有关。 您是否尝试过从 SDK 运行 I2C 驱动程序示例?

    此致、

    Daniel

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

    您好 Daniel
    遗憾的是、在进行所有各种 JTAG 引脚测试的过程中、我现在有一个“锁定“的 CC1352、无法将任何其他代码下载到芯片中。

    (https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1549160/cc1352r-oops-i-locked-my-mcu/5960182)

    此致

    Moshe

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

    尊敬的 Moshe:

    这很不幸。 我将在另一个线程上与 Marie 合作、因此我们可以回到这个问题上来。

    1.您可以发送设置的照片吗?

    2.按照我的理解,运行相同代码的 LaunchPad 没有问题? LaunchPad 通过 XDS110 供电、您能否断开 CC1352 和 XDS110 之间的所有跳线、并从 3.3V 接头为 CC1352 供电? 从概念上讲、我认为这与您的定制板相同。

    此致、

    Daniel

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

    您好 Daniel

    由于引脚分配不同、我实际上无法在 LaunchPad 上运行相同的代码……但…我现在怀疑 I2C 问题是时序问题导致的……

    加电时 MCU 已准备就绪,我在它实际上已连接起来之前向 i2c 设备发送一个查询……但是……
    使用我的 RESET 跳线时; 虽然这会将 RESET 引脚降至 0V、但 I2C 器件的 3.3V 电压会保持 3.3V 电压、因此器件绝不会断电、并且在 MCU 启动后立即准备就绪。

    我使用了 该 复位跳线、但 I2C 器件仍然有问题。 然而,这肯定是一个错误和结果,我下来的兔子洞的调试器和他们的重置操作。

    所以我现在怀疑我已经浪费了每个人的时间和时间,并在这个过程中,我已经禁用了我的芯片...唉,这是开发生命。

    一旦我得到一个工作板,我将能够测试我的计时怀疑,我会报告回来。

    另一个注意事项是、“The Ghost of “ 4 天前问我“您正在使用 2 引脚或 4 引脚 JTAG 吗?“。正如我今天发现的那样、通过 CCS 在 ccxml 文件中设置该设置、始终设置为 2 引脚...但实际上、当我开发电路板时、我满足了 4 引脚连接的要求。

    此致
    Moshe

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

    尊敬的 Moshe:

    不用担心! 让我们知道它是如何实现的。

    此致、

    Daniel  

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

    您好 Daniel & GhostOf

    因为接近这个线程和任何人谁碰巧阅读这远.

    这个问题的解决方案是:-
         我 延迟 我第一次调用的 32 位 I2C 计数器 240 毫秒  从我的计划中我准备好确定我是否有计数器的那一点开始。
         太奇怪了 、计数器需要很长时间才能准备就绪。

    (调试器和重置问题等只是所有的红色错误… 2+2=5)

    此致

    Moshe