我有一个使用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 函数、正在损坏。