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.

[参考译文] MSPM0C1105:使用 UniFlash 进行刷写后、XDS110 将复位引脚 (NTRST) 保持为低电平

Guru**** 2965660 points

Other Parts Discussed in Thread: UNIFLASH, MSPM0C1106, MSPM0C1105

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1643205/mspm0c1105-xds110-holding-reset-pin-ntrst-low-after-flashing-with-uniflash

器件型号: MSPM0C1105
Thread 中讨论的其他器件: UNIFLASH、 MSPM0C1106

在使用 UniFlash 成功重新刷写过程后、我遇到了一个问题、XDS110 (FW:3.0.0.41) 调试器会将复位引脚保持在逻辑低电平状态 (0V)。 这会阻止 MCU 启动应用程序。  

6 年前的主题中已经描述了非常类似的情况:
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/926219/tms320f28069-xds110-debugger-keeping-the-dsp-at-reset-at-power-up-and-letting-the-dsp-run-at-erase-load-via-uniflash-or-ccs

我已经在 UniFlash 中尝试了各种复位和连接设置 (v:9.4.1)、但无论配置如何、Reset 引脚都一直保持低电平 (Run Target After Program Load、Reset Target After Program Load、...)。  

使用 MSPM0C1106 LaunchPad 时、该行为正确、MCU 会在刷写后按预期启动。  

我的目标通过调试连接器进行连接、使用信号 NTRST、GND、VTRef、SWDIO 和 SWCLK 将 20 引脚减少至 14 引脚。

经过调查后、我发现 在刷写过程释放 Reset 引脚后、立即使用-Y 闪烁参数调用 dbgjtag.exe 实用程序、并且 MCU 开始正常运行:  

当前解决方法如下所示:

dslite.bat --config=MSPM0C1105.ccxml -e -f release.hex -u
dbgjtag.exe -f MSP432_XDS110_JTAG.dat -Y 闪烁

其它选项(如-Y power、-Y power、supply=on/off 或-Y reset)不会执行任何操作。
在所有情况下、只有-Y 闪烁才能释放 RESET 引脚。 因为它需要更长的时间。

我当时使用了 dbgjtag.exe 实用程序来控制 XDS110、然后在 IAR 调试器文件中找到了 MSP432_XDS110_JTAG.dat 文件。 这是唯一可用于我使用 MSPM0C1105 的 XDS110 的文件。 即使对于 MSP432、我也可以看到 LED 正在闪烁、从而释放 RESET 引脚。

我也尝试了实用程序 xds110reset.exe 但在 NTRST(引脚 2)或 nReset(引脚 15)上没有发生任何变化。  
该实用程序处理了该命令、看起来好像已被 XDS110 忽略。

似乎调试会话未被 Uniflash 正确终止、或者探针未释放复位行。 使用 Uniflash GUI 或 dslite.bat 无关紧要、行为始终相同。

这是专门针对 MSPM0C 系列的 XDS110 驱动程序或 UniFlash 的已知问题吗?

如果不使用 dbgjtag.exe 权变措施、有关如何解决此问题的指导将不胜感激。  

单位: 我提供了我的所有 cfg。 间隔。 UniFlash.zip 

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

    嗨、Petr、

    据我所知、我认为这不是已知问题、但我可以在我们的软件工具团队中循环查看他们是否知道任何相关问题。

    您可以尝试下载并使用最新版本的 Uniflash 吗? 最新版本应为  9.5.0.5651.

    此致、

    Owen

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

    尊敬的 Owen:
    感谢您的答复。 最新的 UniFlash 没有帮助。 同时、我们发现无需连接复位引脚 NTRST! 现在、我们与目标的连接是: GND、VTRef、SWDIO 和 SWCLK。 通过这种连接、重新闪存过程和调试完全稳定、不会出现任何问题。 我们观察到、只有在目标发生故障时恢复出厂设置才需要 NTRST。

    我假设始终需要复位引脚。 您是否有一些关于它的更多信息、或者参考技术文档、以便我可以获得有关它的更详细信息。 谢谢你。

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

    嗨、Petr、

    正确、调试不需要 NRST 引脚。

    《MSPM0 硬件编程和调试器指南》 可能会有所帮助。

    您应该不需要将 NRST 引脚跳线与 LaunchPad 断开。 是否可以拆下跳线并探测引脚、以观察在刷写之前、刷写期间和刷写之后引脚的状态? 此外、还应观察按下 LaunchPad 顶部的 NRST 按钮时的状态。

    此致、

    Owen

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

    LaunchPad 没有问题。 所有跳线均已连接、并在 UniFLash 重新刷写后、MCU 启动。 在我们的应用中、我们遇到问题、即我们使用通过引脚 GND、VTRef、SWDIO 和 SWCLK 连接到 PCB 的 XDS110(黑盒调试器)。  正如我提到的、重新刷写后、NRST 必须断开连接才能启动 MCU。 问题是为什么? TI LaunchPad 和我们的应用程序之间有什么区别。  

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

    嗨、Petr、

    我看到、您可以尝试将独立式 XDS110 连接到 LaunchPad 上的接头吗? 跳线应为 J103。 还要拆下 J101 上的跳线。

    这将让我们看看 XDS110 还是 PCB 有问题。

    您还可以尝试使用 LaunchPad 上的板载 XDS110、通过 LaunchPad 的 J101 上的跳线对定制 PCB 进行编程。

    如果您也可以分享您的原理图、我可以查看是否存在任何问题。 复位电路看起来很好、因为这正是我们建议的电路。

    此致、

    Owen

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

    尊敬的 Owen:

    很抱歉、回复时间太晚了、现在很忙。

    我进行了一些测试、发现 NRST 引脚的行为有差异:

    • 具有板载 XDS110 的 LaunchPad MSPM0C1106: NRST 保持在日志中。 1 -> 确定

    • 通过 J103 插入外部 XDS110 的 LaunchPad MSPM0C1106(板载 XDS110 断开连接): NRST 保持在日志中。 1 -> 确定

    • 我们具有 MSPM0C1105 和外部 XDS110 的定制电路板: NRST 保持在日志中。 1、但随后进入日志。 0(将器件保持在复位状态,应用程序未运行)-> 不正常

    那么、我可以确认我们的电路板/应用出现了问题。 很遗憾、我无法分享原理图。


    LaunchPad:SWDIO/SWCLK 和 NRST(粉色)

    定制应用: SWDIO/SWCLK 和 NRST(粉色)
    使用 GUI Uniflash 或 dslite.bat 时也是如此  
    对于此测试、XDS110 上的 NRST 引脚与我们的 PCB 断开连接、因此这实际上是 XDS110 侧 NRST 引脚的行为。


    在测试中、我甚至使用了相同的十六进制文件。

    只有 GND、VTRef、SWDIO 和 SWCLK 连接到我们的定制应用。 还可以吗?
     与 LaunchPad 上的 J103 连接器相比、我们是否缺少一些连接?



    我看到的唯一区别是与 XDS110 一起提供的减少量、用于将 XDS110 与 J103 连接器连接起来。
    还有其他器件 R1 和 R2:


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

    嗨、Petr、

    观察波形、我注意到 SWDIO 和 SWCLK 线最初都被拉高。 SWCLK 线路应被拉低、因此如果填充了外部上拉电阻、则不需要这些上拉电阻、并且可以将其移除。  器件在这些引脚上具有内部上拉和下拉电阻。 如果要保留外部电阻、请将 SWCLK 线路上的电阻更改为下拉电阻。

    此外、我们很快将建议某些器件在 NRST 引脚上使用 1k Ω 上拉电阻、而不是之前建议的 47k Ω 上拉电阻。 我还建议尝试这个更强的上拉电阻、看看它是否解决了这个问题。

    此致、

    Owen

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

    ...对不起,我不小心按下了“这解决了我的问题“按钮。

    您提到了“ SWDIO 和 SWCLK 线最初被拉高“、但第一个波形来自您的 LaunchPad、没有任何更改。 因此、我不理解您为什么说“应将 SWCLK 线拉低“。 我刚刚将探头连接到 J101 (SWDIO/SWCLK/NRST)、同时按原样使用 LaunchPad 通过 UniFlash 进行刷写。

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

    嗨、Petr、

    是的、我认为设置可能存在问题。 SWCLK 默认不应为高电平。

    在上面的屏幕截图中、我还探测了 SWDIO 和 SWCLK 线、您可以看到 SWDIO 线默认为高电平、SWCLK 线默认为低电平。

    此致、

    Owen

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

    尊敬的 Owen:
    是的、您是对的、SWCLK 处于低电平、但仅在使用 LaunchPad XDS110 时。 我做了几个配置和测试。
    所有测试都使用相同的 UniFlash 配置、只是硬件设置不同:

    1) XDS110 + MSPM0C1105 定制 PCB
    2) LaunchPad XDS110 + LaunchPad MSMM0C1106
    3) XDS110 + LaunchPad MSPM0C1106
    4) LaunchPad XDS110 +配备 MSPM0C1105 的定制 PCB

    对于每个波形:
    绿色:SWDIO
    蓝色:SWCLK
    红色:NRST
    始终从为 XDS110 上电开始。

    结果:

    1) XDS110 + MSPM0C1105 定制 PCB
    信号 NRST、SWDIO/CLK、Vref(来自目标的 3.3V 电压)、GND 通过小型定制电桥从 XDS110 进入 CANON9。
    仅接线、没有上拉电阻器或其他器件。 CANON9 通过 PCB 直接连接到针形适配器。
    SWCLK 处于低电平状态、但只有在 XDS110 上电后、才会在首次闪存后保持高电平。
    另外、在这里、您还可以看到我的 NRST 问题(重新刷写后保持低电平)。

    2) LaunchPad XDS110 + LaunchPad MSMM0C1106
    当只尝试 LaunchPad 时、一切似乎都正常。
    在我的上一篇文章 SWCLK 处于高电平状态、不知道发生了什么。 也许我使用了错误的图片。 很抱歉。

    3) XDS110 + LaunchPad MSPM0C1106
    这里、我使用 XDS110 来刷写 LaunchPad 电路板上的 MSPM0C1106。
    NRST 保持在高电平、这很好。 但是、我不知道我们的配置 1 定制 PCB 与 LaunchPad 板上的 MSPM0C1106 之间的原因和区别是什么。 有趣的是、只有在 XDS110 USB 上电后、SWCLK 才处于低电平状态。 首次闪烁后、它保持在高电平。


    4) LaunchPad XDS110 +配备 MSPM0C1105 的定制 PCB
    最后、我还尝试将 LaunchPad XDS110 与定制 PCB 一起使用。
    SWCLK 没有问题、NRST 没有问题!

    因此、使用 XDS110 或 LaunchPad XDS110 是有区别的。
    -使用 XDS110 时 SWCLK 处于高电平状态(黑盒调试探针)
    -当使用 XDS110(黑盒调试探针)与我们的定制 PCB 时, NRST 仅在重新刷新后保持低电平状态

    同样、SWDIO/CLK 没有特殊的上拉或下拉电阻。 对于 NRST、使用 47k 和 10n。

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

    嗨、Petr、

    我最终测试了这一点、并观察到了同样的行为。 SWDIO 和 SWCLK 由 XDS110 驱动为高电平、nRST 行为相同。

    我注意到的是 TI14 引脚连接没有 nRST(系统复位)、而是 TRSTn(目标复位不是,用于 JTAG)。
    SWD 是一种两线制协议、因此无需连接 RST 线路。

    此致、

    Owen

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

    尊敬的 Owen:
    感谢您确认复位行为。
    我刚意识到我检查了 LaunchPad 上的 nRST 连接... 它未连接到 J101 接头上的 NRST 引脚:


    它仅直接连接到复位按钮。

    我对 XDS 和 LaunchPad 数据表中的命名:nRST/NRST/nRESET/TRSTn 感到困惑、所以我想我只是把它们连接起来不同
    首先将信号复位在一起:NTRST(来自 XDS110)与 nRST (MSPM0C1106)... 这是不对的。

    好的、因此现在它运行良好、MSPM01106 的 nRST 引脚未连接(上拉电阻器除外)。

    但我仍然想谈谈关于不同类型复位信号的最后一个问题、用途是什么?
    - MSPM0C1106 上的 nRST :这种情况现在已清除, JTAG 不需要,需要时可使用上拉+复位按钮
    - nTRST / TRSTn : XDS110 引脚排列,引脚 2,可能是相同的引脚正确? 只是不同的命名? 不知道它的作用是什么
    - nSRST:在 XDS110 调试探针数据表中提到、 不知道它有什么作用
    - nRESET:XDS110 引脚排列、引脚 15、 不知道它是什么

    例如、在 LaunchPad 上有一个名为“XDS_RESET_OUT“的引脚、该引脚连接到 J101(引脚 11/12)。 在 LaunchPad PCB 上、它被命名为 NRST。
    然后它进入 J102、J103 和 J2。 所以基本上它没有被使用... 对于我会使用这样的引脚?

    对于我来说、很难遵循这么多复位信号的原因。

    你能给我简单的解释一下我会使用 nTRST 和 nSRST 吗?

    谢谢。


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

    嗨、Petr、

    nTRST(有时显示为 TRSTn)、用于测试复位(非)。 它用于 5 引脚 1149.1 JTAG 连接。 它还用于将 XDS110 探针和连接的目标置于 JTAG 测试逻辑复位 (TLR) 状态。

    XDS110 用户指南对 nSRST 进行了说明:

    复位线路控制器是调试接头上的板或系统复位引脚。 将该引脚置为有效会导致目标器件上发生硬复位、类似于按下手动复位按钮。 在 TI 20 引脚接头上、这是引脚 15 (nSRST)。 在 Cortex-M 10 引脚接头上、这是引脚 10 (nRESET)。 在 ARM 20 引脚接头上、这是引脚 15 (nSRST)。 此复位在 TI 14 引脚接头上不可用。

    nSRST 和 nRESET 是同义的。 这就是 LaunchPad/器件上添加 nRST。

    此致、

    Owen

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

    尊敬的 Owen:
    感谢您的支持和澄清。
    现在对我来说更清楚了。

    祝你度过美好的一天!