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.

[参考译文] CCS/TMS320F2.8335万:F2.8335万在引导期间冻结

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/582563/ccs-tms320f28335-f28335-freezes-during-boot

部件号:TMS320F2.8335万

工具/软件:Code Composer Studio

大家好,

我在使用F2.8335万处理器时遇到了问题。 我一直在运行我常用的程序,但每次启动时都会死机。 程序输出在UART上停止,所有外围设备都会松开各自的时钟。 我尝试与除毛刺机连接,但一旦尝试,将显示以下消息:

错误0xA0.102万/-1062错误1062错误进行中:执行,目标, 设备驱动程序:在目标CPU上检测到断电。 断开仿真器与目标的连接也可能导致此问题。 建议重置仿真器。  这将断开每个 目标与仿真器的连接。  然后,应关闭并重新打开目标或进行硬重置,然后执行emureset,并重新连接到每个目标。  
连接到目标时出错:错误0x8000.0206万/-1156致命1156致命错误,过程中:内存,寄存器,OCS, 丢失处理器时钟。 设备可能在低功耗模式下运行。  是否要使其退出此模式?  

我认为这可能是处理器从外部示波器上松开时钟,但一旦我连接完成,处理器将重新启动,PLLSTS寄存器[MCLKSTS]为0。 您是否有任何建议,如何继续调试此功能?

提前向您表示感谢,谨致问候,

尼古拉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    PS。
    抱歉,错误仅为:
    连接到目标时出错:错误0x8000.0206万/-1156致命1156致命错误,过程中:内存,寄存器,OCS,丢失处理器时钟。 设备可能在低功耗模式下运行。 是否要使其退出此模式?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尼古拉

     

    您的设计中有哪种时钟源? 它是一个外部“CAN”振荡器(具有自己的电源),输出自己的时钟,还是一个石英晶体/陶瓷谐振器,与片上振荡器一起工作?

     

    如果是后者(晶体/谐振器),您能否使用示波器检查X1或X2针脚,以在发现此问题时检查是否存在振荡?

     

    您的代码中是否有一个或多个低功耗模式(空闲,待机和暂停)? 是否有可能调用低功耗模式(特别是待机或停止)?

     

    您的电源“电流消耗”核心是否有机会? 我特别有这种怀疑,因为你说它是在启动时发生的。 如果电源阶段的结构不正确,则电源可能无法满足浪涌电流需求,并将设备置于某种未知状态。 您是否可以尝试使用备用电源(如台式实验室电源)?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外,发生这种情况的频率如何? 请提供特定数字(如100次开机尝试中的"n"次)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hareesh,您好!

    感谢您的快速响应! 这种情况发生了,每20次启动一次。 我使用“CAN”振荡器,当出现这种现象时,它保持稳定(正常的30 MHz时钟)。 我还重新检查了PLLSTS寄存器的MCLKSTS位,在调试器重置和/XRS重置之后,它仍然为零。

    关于低功耗模式,我不使用它们,也不会在应用程序运行期间使用相应的寄存器。 处理器是否可以自行降低功耗,或者由于指令解释错误或某些XINTF朗读(我使用外部静态RAM存储某些数据)而重置?

    此外,我尝试了多个不同的电源,事件以相同的频率发生。 我将检查调节器电路在事件期间是否有压降,并查看是否可以找到任何信息。

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

    否,设备无法"自行"进入LPM。 LPMCR0受EALLOW保护。 它需要具有正确的值,并且需要执行空闲指令才能将设备置于LPM中。 请检查XCLKIN输入,以验证在 出现此问题时是否存在时钟。

     

    请为特定频率配置PLL (和XCLKOUT引脚)并检查XCLKOUT频率是否继续正确。

     

    由于看门狗计数器溢出,可能会出现"不必要的"重置。 是否在您的系统中禁用? 如果不是,请尝试禁用它。

     

    同样,如果您使用代码安全,请尝试禁用它。

     

    由于噪音,也可以重置。

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您也可以尝试此操作:在闪存中编程简单的GPIO切换代码。 查看问题是否重复出现。 您甚至可以创建意外重置的陷阱。例如,在开机期间将GPIO引脚绑定到特定级别。 代码将循环,直到GPIO引脚处于翻转状态。 一旦发生这种情况,您就可以捕获意外重置。 此实验将使任何代码依赖性都从图中排除出来。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hareesh,您好!

    很抱歉长时间未与您联系。 我已经挖掘了这两个月,并得出结论,这是由于电路板上的功率顺序错误所致。 "封装"时钟源的加电时间比处理器的加电时间晚了几毫秒,所以我相信处理器可能处于某种无效状态。 此外,处理器的模拟部分在启动之前也已打开,所有模拟信号都已送至处理器。 由于简单的闪烁LED也会卡住,因此代码肯定无法显示在画面中。 (我无法设置陷阱,因为连接调试器会重置系统)

    感谢您的帮助和亲切问候,
    尼古拉