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.

[FAQ] [参考译文] [常见问题解答] C2000WARE:如何在嘈杂的环境中通过软件重置 JTAG 逻辑?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1396434/faq-c2000ware-how-do-i-reset-jtag-logic-with-software-in-a-noisy-environment

器件型号:C2000WARE

工具与软件:

在某些系统中、 JTAG 引脚/布线上的噪声将导致 MCU 的调试架构发出停止 MCU 运行的命令。  

在以下器件中、有时可以通过下面所述的软件检查来缓解此问题:  

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

    其中许多 TRM 包括以下部分:  

    TAAP_STATUS 寄存器反映了任何给定时间 JTAG TAP 的状态。 通常会非常有用
    连接到器件、状态可以是 IDLE。 在某些 PCB 噪声过大的情况下、可能会出现
    不需要的 TMS 和 TCK 切换、从而使 JTAG 退出空闲状态。 如果是持久的、这最终可以实现
    会导致 JTAG 边界扫描或一些其他的 JTAG 模式被意外激活、这些模式会干扰
    预期应用。 为了避免这种情况、请在电路板上放置足够强的拉电阻器以防止噪声
    无法激活 JTAG。 作为调试工具、可通过应用代码轮询 TAP 状态寄存器来进行检测
    是否它是器件干扰的原因。 SOFTPRES40[JTAG_nTRST]寄存器也可用于复位
    通过软件对 JTAG 进行 TAP 控制。 谨慎使用该复位寄存器、除非这样可防止连接调试器
    代码使用一些其他 GPIO 状态或其他方法来限定对此寄存器的写入、以区分噪声
    和调试器访问。

    此信息可能非常有用、但在这些 TRM 中 SOFTPRES40寄存器意外处于未记录状态。 此常见问题解答展示了如何使用 SOFTPRES40来复位 JTAG TAP 状态、即使寄存器没有文档记载也是如此。

    1.找到的起始地址 DevCfgRegs  差分电压。 例如、在 F28P65X 上、起始地址为0x5D000

    2.在中添加0xD2  DevCfgRegs 获取32位 SOFTPRES40寄存器的起始地址。 仅对于 F28P65X、SOFTPRES40位于  DevCfgRegs + 0xEC。 因此、对于 F28P65X、SOFTPRES40位于0x5D0EC。  

    3.将0xDCAF000A 写入 SOFTPRES40以复位 JTAG TAP 状态机。 以下代码适用于 F28P65X:

        EALLOW;
        HWREG(0x5D0EC) = 0xDCAF000A;

    以下代码适用于上面列出的其他器件:

        EALLOW;
        HWREG(0x5D0D2) = 0xDCAF000A;

    ***请注意上述 TRM 通道的警告、将无法连接到在循环中执行此操作的设备。