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.
我有一个使用28062来控制大型电源稳压器的项目。 部分测试会以长达5秒的间隔中断器件的输入电源。
第一期:
实时中断例程将在下电上电后不久停止运行(后台代码仍在运行)。 我似乎通过更改清除 PWM 中断并设置 PIEACK 的行来解决了这一问题。 虽然 ISR 在 RAM 中、但这些行最初在闪存之外运行。
原始代码使用我自己的驱动程序函数、当我移动 ISR 时、我忘记将这些函数移动到 RAM:
PWM_CLEAR_EVENT (PWM_3、EVENT_INT);
Interrupts_PIEACK (PI_Group3);
我用通常的方法替代了这些方法:
EPwm3Regs.ETCLR.ALL = 1;
PieCtrlRegs.PIEACK.ALL = M_INT3;
这是某种管道问题吗?
第二期:
在我似乎解决了第一个问题之后,立即出现了另一个问题。 所有中断都在运行(我可以通过切换外部引脚来看到这一点)、但一些函数停止工作。 例如、我有一个通过 CAN 获取数据的显示屏。 即使引脚信号告诉我该环路仍在运行、到显示屏的所有数据也会停止。 此函数恰好位于 RAM 中。 我将在明天测试将其移动到闪存中、并在该特定函数中看到仍然存在问题。 现在、这只是一个理论。
我意识到这些是奇怪的问题,但有人看到过这样的问题吗? BOR 电路应该处理掉电问题、但在我看来、在这些功率损耗测试中、一些代码、特别是 RAM 函数、正在损坏。
我不希望在加电时设置 RAM。 由于我正在运行的测试是断电、因此调试器显然不会保持连接以调查问题。 电源恢复后、我看到问题出现、我可以重新连接调试器、但 MCU 复位、清除所有寄存器。 由于 RAM 不受复位的影响、我尝试将其用作故障排除工具。
我的问题至少有一部分是由 RAM 位置导致的、该位置保存稳压器的反馈值已损坏。 它看起来是一个数组索引运行的典型情况、但这些存储器位置附近没有数组、这并不能解释 CAN 冻结。 CAN 更难进行故障排除、因为当我重新连接时、所有寄存器都被复位。
如果这是指针问题或某种问题、我会期望更多的随机行为、我会希望问题发生得比它发生的频率更频繁。 这是令人不安的,因为我知道,除非我找到根本原因,否则它肯定会再次出现。
您是否知道任何允许您在不引起处理器复位的情况下进行连接的调试器? 即使未选中复选框以在连接时复位、器件也会与 XDS100和 XDS510同时复位。
它听起来不像看门狗问题、但您可以在该序列期间再次检查看门狗是否被禁用或馈送。 您还可以在设置计时器之前验证计时器中断是否未启用。