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.

[参考译文] CC2340R5:对 UART 和 SWD 使用相同的引脚

Guru**** 2635075 points

Other Parts Discussed in Thread: CC2340R5, LP-XDS110ET, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1576135/cc2340r5-use-the-same-pin-for-uart-and-swd

器件型号: CC2340R5
Thread 中讨论的其他器件: LP-XDS110ETSYSCONFIG

工具/软件:

您好、E2E

因为 CC2340R5 的引脚数比我需要的引脚数少、所以我遇到了问题。

我们是否可以将 A1 和 A2 引脚用于 UART 和 SWD?

我希望 A1 和 A2 引脚正常设置为 UART、然后在连接调试器 (LP-XDS110ET) 时自动接管作为 SWD。

请让我知道在这种情况下我应该小心什么。

此致、  

Masa

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

    您好、Masa、

    是的、这应该是可行的、但在调试器件时、需要确保不使用 UART(或您连接到 A1/A2 引脚的任何其他设备)、因为这会停止调试会话(或扰乱刷写)。

    谢谢、
    Alex F  

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

    您好 Alex、  

    感谢您的快速答复。

    我理解得很好、但我想详细了解它在电气方面的工作原理。

    即使 CC2340R5 的 A1 和 A2 引脚配置为 UART、它如何知道已连接调试器并决定启动 SWD?

    此外、在使用 SWD 后如何返回 UART 设置?

    此致、  

    Masa

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

    您好:

    我认为、在调用 board_init 后、我们可以根据需要使用 TRM 中的引脚、如果我们要使用 SWD 来刷写器件、则需要执行 POR。  

    来自 TRM 的一些信息:

    “上电复位 (POR) 后、目标器件将 SWD 引脚配置为 SWD 模式、在 SWDIO 线上启用内部上拉电阻、并在 SWCLK 线上启用内部下拉电阻。 如果器件配置没有永久禁用所有 SWD 访问、则在引导过程中会启用 SWD 接口、并且可以将调试探针连接到 DEBUGSS。“  

    “引导代码可以禁用 DEBUGSS 中的 SWD 接口、从而释放 IO 以用于通用 IO 功能。 一旦引导代码禁用 SWD 功能、 除非触发 POR、否则不能重新启用 SWD 功能 。 POR 会自动重新启用 SWD 功能、并在启用上拉/下拉电阻的情况下将 SWD 引脚置于 SWD 模式。 要重新获取对器件的调试访问、请在 POR 期间使用 RSTN 引脚使器件保持在复位状态。 这会阻止启动代码启动、并让调试探针访问器件“

    CC23xx SimpleLink 无线 MCU(修订版 A)

    谢谢、
    Alex F

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

    您好 Alex、  

    感谢您的答复。

    但你的补充意见使我感到困惑,所以让我 再次确认。

    我的第一个问题的答案仍然不清楚。

    首先、你能否澄清我第一个问题的答案是 可能的 还是不可能的?

    ↓我的第一个问题↓

    「我们是否可以将 A1 和 A2 引脚用于 UART 和 SWD? 我希望将 A1 和 A2 引脚正常设置为 UART、然后在连接调试器 (LP-XDS110ET) 时自动接管作为 SWD。」μ s

    此致、Masa。

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

    您好、Masa、

    我们是否可以对 UART 和 SWD 使用 A1 和 A2 引脚?

    是的、您可以将 A1 和 A2 引脚 (SWDIO、SWDCK) 用作 UART 和 SWD:

    我目前知道这个工作原理的就是、我们基本上是对引脚进行多路复用 、并且当建立调试连接时、XDS110 负责引脚(通过 JTAG SWD 模式,器件可以知道何时访问该连接)。  

    谢谢、
    Alex F

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

    您好 Alex、  

    我使用评估板确认了这些功能。 使用 SysConfig、我将 CC2340R5 的 A1 和 A2 引脚(SWD 的引脚)设置为 UART、并通过 SWD 刷写器件。 之后、当我再次尝试通过 SWD 连接时、SWD 连接失败。 连接调试器后、为 UART 配置的端口似乎无法接管为 SWD。

    此致、  

    Masa

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

    您好、Masa、

    我从 TI SDK 下载了 uart2echo_LP_EM_CC2340R5_fretos 工程、并将 UART 从“使用硬件 XDS“更改为“无“、然后将 UART PinMux 设置为 DIO17 和 DIO16。 然后我能够调试和刷写工程、但我没有注意到 UART 线路上有任何活动(我指的是来自 UART 驱动程序)。  

    可能是当 UART 处于活动状态时、它会阻止 SWD、而当处于空闲状态时、SWD 可以接管这一工作、我知道这类似于我将鼠标滚轮绑定到 SWD、如果您在调试时移动鼠标滚轮、则会使会话中断的情况。  

    谢谢、
    Alex F

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

    您好 Alex、  

    感谢您的答复。

    当我尝试使用 SWD 连接调试器时、我可以确定 UART 未处于活动状态。

    如果我想执行这样的操作、不应使用 SysConfig 配置 UART??

    此致、  

    Masa

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

    您好、Masa、

    是我在上面的测试中使用了 SysConfig 仅更改设置。

    谢谢、
    Alex F

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

    您好 Alex、  

    “那是我的错。“

    你认为什么是事情对我来说不好的原因?

    此致、

    Masa

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

    您好、Masa、

    这是我以前用于测试的修改后的 UARTecho 工程;我想看看是否可以复制我看到的相同行为。 在我的测试中、我将 XDS 与 LaucnhPad 完全断开、然后手动连接四根导线 (GND、3.3V、SWDIO、SWDCK)、我能够使用这些导线调试/刷写器件。  

    e2e.ti.com/.../uart2echo_5F00_LP_5F00_EM_5F00_CC2340R5_5F00_freertos_5F00_ticlang.zip

    谢谢、
    Alex F

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

    您好 Alex、  

    谢谢你。
    但是、我无法将其正确导入到我的 CCS 中。

    ###########################

    我收到以下错误:

    【该工程是使用当前未安装的编译器版本创建的 — TICLANG_4.0.4.LTS[Arm]】

    ###########################

    原因可能是我使用的是旧版本的 CCS。

    但我目前无法使用最新版本的 CCS。

    我的 CCS 版本为 12.8.0。

    您能给我发送一些适用于此版本的信息吗?

    此致、  

    Masa

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

    您好、Masa、

    我的 CCS 版本为 12.7.1、但此处示例使用的 SDK 是 9.12 F3 SDK。 您当前安装了哪个 SDK? 您还可以尝试切换工程的 SDK 版本、从而解决您的问题。  

    谢谢、
    Alex F

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

    您好 Alex、

    这是我的 SDK 版本「f3_SDK_8_20_00_119 μ」

    这是什么?

    此致、

    Masa

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

    您好、Masa、

    在工程属性(在 General 中)中、我们可以将 Compiler version 更改为 3.2.2.LTS:

    然后在 General 选项卡中、切换到 Products 以切换 SDK:

    如果我向您发送了我的工程、请将编译器切换至 3.2.2 并转到您下载的 SDK、如果这不起作用、您可以尝试手动将我的代码(仅是 uart2echo.c 文件中的代码和我在 syscfg 中所做的小更改)移植到您的工程中。

    谢谢、
    Alex F