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.

[参考译文] TMS320F280037C:无法使用 XDS200探针将 f/w 刷写到 MCU (错误-1044和-1156)

Guru**** 2521300 points
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1263094/tms320f280037c-cannot-flash-f-w-to-mcu-using-xds200-probe-errors--1044-and--1156

器件型号:TMS320F280037C
主题中讨论的其他器件:SysConfigC2000WARE

JTAG IR 和 DR 完整性扫描测试均成功。

我在 尝试将 f/w 刷 写到 MCU 时不断收到两个例程错误:

C28xx_CPU1:无法读取寄存器 PC:(错误-1044 @ 0x0)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真软件包9.11.0.00128)
C28xx_CPU1:故障读取寄存器 SP:(错误-1156 @ 0x0)器件可能正在低功耗模式下运行。 是否要使其退出此模式? 选择"是"以强制唤醒器件、然后重试操作。 选择"否"可在不唤醒器件的情况下重试操作。 (仿真软件包9.11.0.00128)

使用 SysConfig GUI 时我注意到的一件事是、TCK/TMS 的引脚45/7分别是固定的、但引脚46/48被指定为"可用"。 我是否需要将引脚46/48分别设置为 TDO/TDI? (我该怎么做?) 这是引脚图的屏幕截图。

这是我用于构建设置的工具。  

最后、这里是 MCU 和附加 XDS200的引脚连接原理图:

我已经阅读了推荐的线程(下面)为-1044错误,我可以说,我已经做了他们建议,但没有任何效果。  

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

    您好!

    Unknown 说:
    使用 SysConfig GUI 时、我注意到的一件事是、TCK/TMS 的引脚45/7分别是固定的、但引脚46/48被指定为"可用"。 我是否需要将引脚46/48分别设置为 TDO/TDI? (我该怎么做?) 下面是 pinmap 的屏幕截图。

    我们有4引脚常规 JTAG 和2引脚 cJTAG、具体取决于您在使用什么。 默认情况下、这些引脚仅为 TDI/TDO、除非您选择其他方式。

    您是否已检查 XRSn 引脚状态以确保其稳定?

    此致、

    维维克·辛格

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

    我使用的扫描测试适用于4引脚 JTAG。 但根据我读的、你说它应该无关紧要、因为 TDI/TDO 是默认功能、除非另有说明。 因此、即使它们看起来是"可用的"、但实际上它们是 TDI/TDO、对吗?

    我今天将对 XRSn 引脚进行示波。 我假设您的意思是、在调试构建完成后、按下 CCS 中的"Play"按钮进行操作、对吗?  

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

    您好、Vivek、

    以下是我的 XRSn 信号的图像...使用2.2k Ω 电阻器(引脚5和3V3之间)和.1uF 电容器(引脚5和 GND 之间)周期性地实现 H->L->H 转换时间~1ms。   

    此信号从我为 MCU 供电的那一刻起就产生、然后借助 INTOSC 功能、按下按钮进行调试构建/闪存。 XRSn 此时处于高电平、我在 CCS 中按下"Play"、然后 XRSn 再次进入周期、如图所示。 然后我得到这个错误:

    谢谢!

    詹姆斯

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

    这就是问题所在。 看起来在应用程序代码中会有一些问题。 最好逐步浏览代码、看看是什么导致了此问题。 还要检查 NMISHDFLG 寄存器、查看是否有任何错误导致了此问题。  

    此致、

    维维克·辛格

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

    问题是什么?  

    我无法检查寄存器值、因为调试探针从不能实现预期的连接

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

    我还注意到、当我没有将调试器连接到 XRSn 引脚时、它分别具有0V 和3V3的最小/最大值、而当我将调试仓体连接到引脚5 (XRSn)时、最小/最大值分别为1V 和3V3。   

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

    更多信息... 我在 此处的第334行将 ENABLE 替换为 BYPASS、从而绕过了 PLL

    我以前看到的误差已经消失、XRSn 线现在处于高电平(YAY)。 但是、我现在将重写它

    我想说它与内部振荡器有关、这给我带来了问题、但我无法 肯定、因为 MCLKSTS 位为低电平(表示根据 SPRUIW9B、OSCCLK 正常)  

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

    断言的错误为  

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

    作者:Vivek、

    我刚刚与 James 打过电话、他解决了 TRST 连接到 XRSn 的问题。  

    该器件在执行此函数时会复位、并转至 else 语句。  

    James:

    当您到达导致器件复位的行时、是否能够获得如下所示的调试菜单屏幕截图? 了解函数的调用来源将会有所帮助。  

    另外、器件复位后、请尝试重新连接并查看 NMISHDFLG 寄存器、它应该有助于确定复位原因、因为此寄存器仅在上电复位时清除。

    此致、

    本·科利尔

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

    我将尽我所能、今天就向大家介绍这一点。 目前、 设置不允许我将任何内容刷写到 MCU 中。 我按下你提到的"ghost"按钮,然后它运行它的路由(下面),并自动失败(不给我使用 step into/over 的选项)

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

    James:  

    您无需刷写新代码。 连接到 CCS 后、在 CCS 中打开寄存器视图并检查 RESC/NMISHDFLG 寄存器的值。  

    维维克·辛格

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

    好的。 在我做任何关于开始运行代码的事情之前,RESC 寄存器值为0xC0000004 , NMISHDFLG 值为0x0000。

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

    这是发生故障前的调试窗口的屏幕截图

    当行指针位于 sysctl.h 的第2879行时、单击"开始进入"后便会失败

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

    谢谢 James。 失败后、是否可以重新连接并查看  NMISHDFLG 值? 执行此步骤时、您不需要向器件加载任何内容、只需确保不对器件进行下电上电。

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

     失败后(红色)、然后重新连接 (黑色)。

    NMISHDFLG 的值保持为0x0000。  此外、fww、RESC 寄存器也保持为0xC0000004。  

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

    只是我拾取的其他内容...如前所述、在 SysCtl_setPLLSysClk (divSel)内第二次调用 SysCtl_setClock 后、程序会失败。 然后、我 在该 fcn 调用内将其完全写入 HWREGH (CLKCFG_BASE + SYSCTL_O_SYSCLKDIVSEL)= 0u;  

    然后、ClkCfgRegs 内的 SYSCLKDIVSEL 寄存器从0x00000101变为0x0BAD0BAD

    查看下面的数据表、我认为这不是一件好事:

    底部 一行显示000000 =/1、这就是 HWREGH (CLKCFG_BASE + SYSCTL_O_SYSCLKDIVSEL)= 0U; 调制器架构。

    此外、其表述为000001 =/2000010 =/4等、但之后我们得到111111 =/126。

    但我们不能使126只具有6位。 那么、是我遗漏了某种类型的映射、还是某种将0附加到每次转换结束的函数? 因为我觉得它应该是:

    0000001 =/1

    0000010 =/2

    0000100 =/4

    0000110 =/6

    ...

    1111110 =/126

    我很确定位8在做什么。 因此、对于分频器1、我们需要位8变为高电平、而位0到5为低电平。 您知道如何设置   HWREGH (CLKCFG_BASE + SYSCTL_O_SYSCLKDIVSEL)= 100000000  因为位6/7是保留的?

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

    它不像您提到的那样。 请查看以下来自 TRM 的快照-

    下面的代码是 driverlib 的一部分,或者你在写它?

    HWREGH (CLKCFG_BASE + SYSCTL_O_SYSCLKDIVSEL)= 0U;

    通常、这个分频器不应在 PLL 锁定时被设定为0x0。  

    此致、

    维维克·辛格

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

    早上好、 Vivek、

    是的、这是 sysctl.h  文件中的 Veritly、fcn 调用 SysCtl_setPLLSysClk ()

    如您所见、它正在尝试将分频器设置为0、我认为这 就是错误的原因。 尽管 TRM 说将位0-5设置为000000、但我个人认为这是正确的。 但是、我们还需要将位8设置为高电平、以实现/1分频器。   

    例如、可能的建议(均说明相同的内容):

    HWREGH (CLKCFG_BASE + SYSCTL_O_SYSCLKDIVSEL)= 256U;

    HWREGH (CLKCFG_BASE + SYSCTL_O_SYSCLKDIVSEL)= 0b100000000U;

    HWREGH (CLKCFG_BASE + SYSCTL_O_SYSCLKDIVSEL)= 0x100U;

    但我在这里担心的是、位6和位7 (根据 TRM)是保留的、我认为仍然  会抛出错误、因为这些建议会写入位字段6和7 b/c、它们只有读取权限。

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

    Jemes、您好!

    但我在这里的担忧是位6和位7 (根据 TRM)是保留的,我认为它仍然抛出错误,因为 这些建议 写入位字段6和7 b/c,它们只有读取权限。

    写入保留位不会导致任何问题。 如果它是 driverlib 函数的一部分、那么我们还有很多其他客户在使用相同的函数、因此我现在不会怀疑函数有问题。  

    您之前发送的 RESC 寄存器值表示复位是由看门狗复位引起的。 是否在代码中启用了 WD。 如果是,您是否定期维护看门狗?如果不是,则可能是看门狗超时并导致复位。 您能检查一下吗?

    此致、

    维维克·辛格

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

    链接器中 TI 提供的代码执行 IM  C:\ti\c2000\c2000Ware_4_03_00\driverlib\f28003x\driverlib   文件夹。 我不知道我是否定期对看门狗进行维修、但正如您所说的、很多其他客户正在使用此代码、所以我怀疑是否定期进行维修  

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

    James:

    您是否能够导出项目并按如下方式发送给我们? 我们想看看我们是否能让该项目使用您的修改。 此外、您能否在您拥有的 F280039C Launchpad 上尝试您的项目? 您能向我们发送更多有关您的电路板原理图的详细信息吗?  

    首先右键单击您的项目并导出。  

    接下来、选择 Archive File (存档文件)并单击 Next (下一步)。  

    最后、浏览到要保存 zip 文件的位置。 确保选择选项以压缩文件并解析和导出链接的资源。  

    此致、

    本·科利尔

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

    通过 DM 发送

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

    如今天的电话讨论所述、请尝试将 XCLKOUT 放在其中一个 GPIO 上并检查时钟范围。

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

    Good morningVivek

    下面是 XCLKOUT 信号的屏幕截图、

    总之、XCLKOUT 引脚位于0V、直到我单击 Play、然后使用示波器上的触发器 fcn、我捕获以下图像。 信号持续时间仅为14.48ms、因此必须进行触发。 在信号末尾、最小值和最大值逐渐下降至~3.5V 的最大值之前、最小值和最大值为-0.9V、3.9V。  

    它似乎不是典型的时钟。 使用 FFT fcn 时、信号具有以下频率分量:370kHz、1.473MHz 和2.574 MHz。 我不知道采样频率、但经过一番挖掘、我相信 f_s 在 GHz 范围内、因此 可能不会发生混叠。

       

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

    这不是 XCLKOUT 上的预期结果。 您是否在 TI 硬件上检查了相同的东西?

    奇怪的是、同样的代码在 TI 提供的硬件上按预期工作、但在您的定制电路板上不工作。   

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

    我是否正确实施了它?  

    我不知道如何验证我是否已成功将 XCLKOUT 路由到 GPIO16

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

    在 LaunchPad 上实现了完全相同的文件(除了更改 syscfg 文件中的 p/n 和 targetConfig 文件以匹配110调试探针之外)、我 在 XCLKOUT 引脚上获得了15Mhz 时钟信号。  

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

    我认为您在两个板上运行的设置不同。 提到您正在对#define 进行一些更改以运行此代码。 该更改看起来没有生效。 您能仔细检查一下吗?

    维维克·辛格

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

    它位于哪个文件中?

    同样、我将在 CCS 文件中指定 p/n 确切位置、以便确定目标器件是否正确? 我想知道该 项目是否在 Launchpad 上工作、因为它会将项目与 Launchpad 上的 F280039C MCU 相关联 、而不是定制电路板上的 F280037C  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想知道该 项目是否在 LaunchPad 上工作,因为它是将项目与 LaunchPad 上的 F280039C MCU 相关联,而 不是自定义电路板上的 F280037C

    不同的器件型号不应导致此问题。 此处的时钟配置导致定制板出现问题。 您在两个电路板上运行相同的.out 文件、而另一个电路板在其他电路板上运行正常。 定制板出现问题。  

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

    James 确认是导致此问题的电路板问题(与电源有关)。 解决电路板问题后、其设置正常。