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.

[参考译文] TMS320F280037:与 XDS110仿真器的编程行为不一致

Guru**** 2391325 points
Other Parts Discussed in Thread: TMS320F280037

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1256503/tms320f280037-inconsistent-programming-behavior-with-xds110-emulator

器件型号:TMS320F280037

您好!

我和我的团队正在使用 XDS110调试探针和通过 TMS320F280037开发的一些目标硬件来解决编程问题。 在 Windows 10 Enterprise 系统64位上使用 Code Composer Studio 12.2.0。 XCMIN32/XCOUT32引脚连接到一个20MHz 晶振、在每个引脚上加载16pF。 VDDA、VDAC 和 VDDIO 连接到3.3V 电压。  VDD 仅连接到一组电容器以调节内部1.2V 电源。

两个引导模式引脚由4.7K 电阻器上拉至3.3V 电源轨。

JTAG 连接通过大约1-2"长的走线暴露在10引脚接头上。 没有上拉/下拉、TMS 上拉2.2k 至3.3V。

电源稳定、复位稳定。

以下是成功编程的 TDI 示波器快照(还演示了电压和信号质量):

编程失败时、TDI 可能会保持低电平、也可能与上述相同。

其中一个 XDS110似乎总是得到错误-6311"PRSC 模块无法写入寄存器。 (仿真软件包9.10.0.00080)

其中一个 XDS110在95%的时间内正常工作、因此我暂时不打算讨论它。

其中一个 XDS110在大约40%的时间内正常工作。  一个常见错误为"IcePick_C_0:连接到目标时出错:(错误-2131 @ 0x0):无法访问器件寄存器。 复位器件、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板执行下电上电、和/或尝试更可靠的 JTAG 设置(例如、降低 TCLK)。 (仿真软件包9.10.0.00080)"此故障表现通常还伴有 ICEPICK 错误。 在某些情况下、目标配置视图中的"测试连接"功能 具有成功的 JTAG 扫描链、但无法编程。 更频繁的是、它也完全失败。

另一个常见错误是"Trouble Writing Memory Block at "错误-1156 @ 0xC000:器件可能以低功耗模式运行。 是否要使其退出此模式? 选择"是"以强制唤醒器件、然后重试操作。 选择"否"可在不唤醒器件的情况下重试操作。 (仿真软件包9.10.0.00080)。"
针对这个低功耗错误的控制台输出看起来像这样:  

C28xx_CPU1: GEL Output: 

RAM initialization done

C28xx_CPU1: GEL Output: 
Memory Map Initialization Complete
C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... 
C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
C28xx_CPU1: Trouble Writing Memory Block at 0x5fb00 on Page 0 of Length 0x2: (Error -1156 @ 0x800) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 9.10.0.00080) 
C28xx_CPU1: Error: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.10.0.00080) 
C28xx_CPU1: Error occurred during flash operation: Target failed to write 0x05FB00@Program
C28xx_CPU1: JTAG Communication Error: (Error -1135 @ 0x3FDBA4) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 9.10.0.00080) 
C28xx_CPU1: Failed to remove the debug state from the target before disconnecting.  There may still be breakpoint op-codes embedded in program memory.  It is recommended that you reset the emulator before you connect and reload your program before you continue debugging
C28xx_CPU1: Error occurred during flash operation: Could not read 0x0005F800@Data: target is not connected
C28xx_CPU1: Error occurred during flash operation: Could not write 0x0005F800@Data: target is not connected
C28xx_CPU1: Error occurred during flash operation: Could not read 0x0700B0@Program: target is not connected
C28xx_CPU1: Error occurred during flash operation: Could not write 0x05FB00@Program: target is not connected
C28xx_CPU1: Error occurred during flash operation: Could not write 0x0005F800@Data: target is not connected
C28xx_CPU1: Error initializing flash programming: Interface returned from dll, but flash is not available on this device.



过去似乎工作不一致的事情是、

a)关闭电源、等待其完全放电并拔下编程器插头。

b)删除.ccxml 文件、然后从头开始重新编译它

c)使用 cJTAG 2引脚、而不是禁用 SWD 和 cJTAG。

我已经尝试在其他 JTAG 线路上添加上拉电阻、但似乎没有任何帮助。 使用 XDS200能否提供更高的信号容差和更高的成功率? 修改引导模式引脚是否会使其更可靠? 还有其他值得尝试或调查的东西吗?

提前表示感谢。

[更新:今天下午、我在关闭2引脚 cJTAG 后无法让任何编程人员失败。 我遇到的一个重复性故障是通过切断电源和将电源接地短路来释放电压而结束的。 当我重新启用2引脚 cJTAG 时、其中一个 XDS100出现一致的 PRSC 故障、如上所述、一个一直出现故障、另一个出现间歇性故障、出现错误-2131。 我将切换到禁用2引脚 cJTAG (昨天好像是这样使它们都可以使用)、现在我继续测试、只需在10引脚连接器上使用完全标准的 JTAG。]

[更新2:我自(禁用 cJTAG)以来一直能够使 XDS110失败并显示错误-2131。 微控制器似乎处于复位状态、因为输出 GPIO 处于高阻态、从而使 LED 保持开启状态。 对电路板进行下电上电、重新启动计算机、交换 XDS 未修复。 只有当我将受电的3.3V 轨短暂地短接至地时、上述的 LED 才会熄灭(MCU 恢复到控制该输出)、并且 MCU 可以成功编程(多次、任何 XDS 都可以无限期地编程)。 好像我让 cJTAG 保持禁用状态、如果我进入这种奇怪的状态、我就会使电源短路、那么我应该能够恢复... 如果我再次遇到这个问题、会更新这个帖子。]

[更新3:最新故障周期还 显示一个同时出现的症状:从调试 UART 端口发出的 hello world 消息数不清、这些消息在命令响应完成后传输。 那么、是否存在可能导致其中一些问题的固件组件?  将微控制器 RESET 拉至接地后、它将微控制器从该环路中取下、但仍然无法进行编程。 当我短暂地将3.3V 电源短接至地时、MCU 进入其胎儿位置(GPIO 高阻抗、如 LED 亮起所示)、我能够对 MCU 进行编程。]

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

    您好!

    感谢对这个问题的详细解释。 我们提供了有关调试 JTAG 连接问题的应用手册。 我建议把这一问题作为第一步,看看这是否有助于解决这些问题。

    https://www.ti.com/lit/pdf/spracf0

    此致、

    维维克·辛格

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

    您好!

    希望您能够使用应用手册调试这个问题。 如果您对此有任何进一步的疑问、请告知我们。

    维维克·辛格

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

    谢谢 Vivek。 我已经在验证电路板的其他方面被拉下、没有机会深入探究这一点。 我之前查看过 TI JTAG 故障排除文档、但未发现任何问题。 (我正在等待回复、直到我有机会尝试每个项目并记录结果。) 在此期间、我发现唯一能够在微型器件碰巧处于怪异状态时进行编程的方法是立即将我的电源轨短接到地。 总体而言、它最近的编程非常一致。

    对于引导模式配置、我尝试将引导模式更改为"等待"、它只是有效地保持复位状态。 因此、我想这不是我的解决方案。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于引导模式配置,我尝试将引导模式更改为"等待",但它只是有效地保持复位状态。 所以我想这不是我的解决方案。[/报价]

    我不明白这句话。 您能解释一下"它只是有效地保持在复位状态"是什么意思吗?  

    此致、

    维维克·辛格

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

    我有两个 LED、一个仅在器件引导后亮起(main.c 中的第一条命令是打开 GPIO)、一个仅在器件引导后关闭(在硬件中将逻辑反转为不同的 GPIO)。  

     编程后重新启动电路板时、两个 LED 均不会切换。

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

    这是预期情况、因为在等待引导中、CPU 执行不会跳转到应用、这意味着不会执行 main.c。 编程后、需要在重新启动之前将引导模式更改为引导至闪存。

    此致、

    维维克·辛格