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.

[参考译文] TMS320F28377D:C2000微控制器论坛

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1033374/tms320f28377d-c2000-microcontrollers-forum

器件型号:TMS320F28377D
主题中讨论的其他器件: ISO7220C

 我们在某些 TMS320F28377D MCU 上无法与 CPU2进行 JTAG 通信。 我们之前在 TMS320F29379D 处理器周围实施了定制电路板、但由于这些处理器的采购问题、我们决定使用 TMS320F28377D 作为替代产品。  使用 TMS320F28377D 构建的卡中只有一半按预期工作、其余的卡显示与 JTAG 与 CPU2通信不可靠的问题相同。 JTAG 与 CPU1的通信似乎没有任何问题、可以连接、控制和刷写这些卡上的任何映像。

到目前为止唯一的权变措施是将 JTAG 时钟速度大幅降低至大约20kHz。 在更高的 JTAG 时钟速度下、每次尝试使用 CCS 连接到 CPU2都会返回错误消息(错误-1015 @ 0x0器件可能被锁定、错误-1041 @ 0x0调试探针在无法复位 CPU 之后报告了错误) 这似乎是错误的、因为这些错误不是在非常慢的 JTAG 时钟速度下发生的。

我们以等待引导模式打开卡。 连接到 CPU1并不表示存在任何问题。 CPU1保持暂停状态。 然后、与 CPU2的初始连接会给出错误-1015。 单击"重试"可建立与 CPU2的连接、但指示错误-1041。 CPU2也保持暂停状态。 通过使用存储器浏览器读取用户 OTP 存储器部分(假定仅包含1)、似乎随着 JTAG 时钟频率的增加、更多被读回的数据被损坏。 读取 TI OTP 存储器部分(已知包含工厂中的固定数据)也会返回与每次读取不同的损坏数据。

浏览寄存器空间也表示一些读取可能会返回损坏的数据、例如、在从 CPU2读取时、CPB_DAT 寄存器下方的图像中返回更改的值、但在从 CPU1读取时不返回。

我们使用 CCS V10.4.0.00006、所有软件包都已更新为最新的可用版本。 工作区从用于初始实现 的 CCS v7.1.0.00016移植-这样做是为了适应产品变更通知 e2e.ti.com/.../faq-product-change-notice-pcn-20180523001-1-and-pcn-20200115000-2-for-tms320f2837x-and-tms320f2807x-devices。

我们已查看以下内容、尝试缩小问题所在的范围:

 -SPRZ412L 器件勘误表:"INTOSC:在没有 VDD 的情况下由 VDDOSC 供电会导致 INTOSC 频率漂移"建议。

 - SPRZ412L 芯  片勘误表:"低功耗模式:关闭闪存或保持最小器件活动"建议、因为我们的问题似乎与 e2e.ti.com/.../tms320f28379d-delfino-tms320f28379-cpu2-not-reliably-flashed-via-jtag-interface-without-severely-slowing-down-clock-from-190mhz-to-25mhz 中讨论的问题类似、因为我们还将自己的次级引导加载程序编程到闪存中。 但是、即使在卡上编程了有效的次级引导加载程序、也需要将 JTAG 时钟设置为20kHz、以便从 RAM 调试 CPU2代码。  

 -使用 SCI 引导模式、我们能够将 Blinky_LED 测试应用程序编程到 CPU1和 CPU2。 将卡上电进入获取/闪存模式会导致两个 CPU 应用程序按预期运行。

 -我们通过 https://software-dl.ti.com/ccs/esd/documents/ccs_debugging_jtag_connectivity_issues.html 以及 前面提到的错误代码的相关问题进行了研究。

 -所有电路板均已进行 X 射线检查、以确保 BGA 上的正确连接。 已对电源和去耦合进行了双重检查、以符合数据手册规格。 已验证工作卡和非工作卡之间的组件和设备是否相同。

 -所有卡都具有板载隔离式 FTDI USB 转 XDS100v2 JTAG、这通常用于 TI controlCARD 子板。 工作卡和非工作卡的相应 JTAG 信号没有明显的区别。  

CPU1没有任何问题似乎相当奇怪、但 CPU2对于某些卡有问题。  

您能建议进一步的硬件/软件调试操作吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="497047" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1033374/tms320f28377d-c2000-microcontrollers-forum - 所有卡都具有板载隔离式 FTDI USB 转 XDS100v2 JTAG、通常用于 TI controlCARD 子板。 [/报价]

    是否有办法绕过板载 JTAG 电路并使用外部(独立) JTAG 调试探针连接到 MCU? 我想隔离 MCU 和 JTAG 电路之间的问题。  

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

    是的、断开 JTAG 电路就足够简单了。 我只需安排好获取 JTAG 连接器并将其放在卡上即可。

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

    我假设您使用了 CCS 中的"测试连接"功能来验证到 MCU 的 JTAG 链路? 除了确认 JTAG 扫描有问题外、它可能不会用于任何其他目的。

    您是否曾尝试过监测 MCU 电源轨以了解任何欠压情况? 或者您是否在电路板上配备了某种类型的电压监控器?

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

    Chris、

    您是否在 XRSn 引脚上看到任何指示发生复位的切换?

    另一件事:这可能不是问题、因为您尚未启动闪存编程。  但是、由于您提到了自己编写的自定义引导加载程序、想知道它是否会以某种方式触发-因此、您提到了这一点。  请搜索"为什么在 F2837xD CPU2上调用 Fapi_setActiveFlashBank()时会发生 NMI (由于双位错误)?" 在本常见问题解答中:  https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/951668/faq-faq-on-flash-api-usage-for-c2000-devices 

    谢谢、此致、

    Vamsi

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

    "测试连接"功能始终指示 JTAG 扫描测试成功。

    在尝试连接到 CPU2时、我们不会看到任何电压轨中的任何电压骤降或骤升。 我们有1.2V 和3.3V 电源的电压监控器、这些电源连接到 MCU 的 XRSn 引脚-在尝试连接到 CPU2时、XRSn 引脚的状态不会改变。  

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

    我们在 XRSn 引脚中看不到任何切换。

    您是否有与此问题相关的 SIBP 信函的链接、或者您能否指明受影响设备的日期范围?

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

    Chris、

             您是否能够绕过板载 JTAG 电路并使用外部 JTAG 调试探针? 有一点不同、我想知道您为什么选择放置板载 JTAG 电路。

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

    我们绕过了板载 JTAG 电路并连接了一个外部 JTAG 板(https://www.olimex.com/Products/DSP/Emulators/TMS320-XDS100-V3/)。 这对于所有电路板都很适用。 然后、我们追溯了 JTAG 通信、发现信号隔离器 IC 选择(TI ISO7420F 取代 ISO7220C)发生了变化、但原理图或 BOM 中未指示这种变化。 我们在库存中找到了一些 ISO7220C IC、并将其替换为控制卡; 板载 JTAG 开始 用于调试和刷写映像。

    我们目前处于原型设计阶段 、因此只需将 USB 电缆连接到设备即可进行调试、这使得操作变得更加轻松。 对于生产单元、可禁用板载 JTAG 电路并保持未组装状态;在这种情况下、我们使用外部 JTAG 或 SCI 引导模式对次级引导加载程序进行编程。   

    感谢您的指导。 非常感谢!