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.

[参考译文] TMS320F28386D:分配给 CPU2的 CMPSS 和 CLB 导致了 NMWI 复位

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1467813/tms320f28386d-cmpss-and-clb-assigned-to-cpu2-causing-nmwi-reset

器件型号:TMS320F28386D

工具与软件:

大家好、

我目前正面临一个使用 F28386D 的电路板的问题、该电路板上没有开始代码。
在 DemoBoard 上使用相同代码时、一切都顺利。
我还尝试了一个 LED 示例代码、还有这个无法在我的板上引导。

通过查看 XRSTn 信号、我可以看到每15ms 发生一次接地下降、持续时间为25us (我们在使用200MHz 时钟)、这表明我进行了看门狗干预。
WD 从.asm 文件中禁用

Fullscreen
1
WD_DISABLE .set 1 ;set to 1 to disable WD, else set to 0
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

这让我认为是 NMWI 重置了。

通过在代码中添加一些 while (1)循环、我识别出代码正在运行、直到这2行代码结束
Fullscreen
1
2
DevCfgRegs.CPUSEL15.all = 0x000000FFU;
DevCfgRegs.CPUSEL12.all = 0x000000FFU;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

这些是由 Matlab/Simulink 生成的代码、该代码应将 CMPSS 和 CLB 与 CPU2关联。

我的代码仅在 CPU1上运行、不使用此类外设、因此与 CPU1无关很有意义。
如果我对这两行进行注释、一切都很顺利、并且我的代码能够在我的板上完美地启动和运行。

我不清楚的是为什么我必须对此类行进行评论、以及为什么我从演示板获得不同的行为。
对此有什么想法吗? 我对硬件和软件/配置问题都提出疑问。

此外、对于不使用 CPU2和 CM 的代码、最佳做法是做什么? 是否擦除此类 CPU 的闪存并将其保持未编程状态?  

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

    为了了解相关信息、通过在 CPUSEL 命令之前添加20us 的延迟、我能够使这两行保持未注释状态而不必进行复位。
    而如果我使用10us 的延迟、它仍然进行复位



    实际上、这个文件(Matlab 生成的)看起来与 Tech reference 中建议的顺序相反

    但如果我反转 PCLKR 和 CPUSEL 调用、即使保持延迟、它也会 复位。

    这可能会 为您提供有关该问题的更多信息。

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

    通过调整一些电感值、我们减少了3.3V 线路的上升时间。 这种变化足以使微处理器在不进入无限循环的情况下正常运行、从而可能产生与20µs 延迟类似的影响。

    仍不清楚的是、如果没有此修复程序、系统就会不断重新引导。 我本来希望在首次看门狗干预后、上升电路会发现3.3V 和1.2V 线路都已稳定并继续正常运行。