I have a project using the 28062 to control a large power regulator. Part of the testing is interrupting the input power to the device at intervals as long as 5 seconds.
1st issue:
The real-time interrupt routine would stop running shortly after a power cycle (with the background code still running). I seemed to have fixed this by changing the lines that cleared the PWM interrupt and set PIEACK. These lines were originally running out of flash even though the ISR was in RAM.
the original code uses my own driver functions that I forgot to move to RAM when I moved the ISR:
pwm_clear_event(PWM_3, EVENT_INT);
interrupts_pieack(PIE_GROUP3);
I replaced these with the usual:
EPwm3Regs.ETCLR.all = 1;
PieCtrlRegs.PIEACK.all = M_INT3;
Is this some sort of pipeline issue?
2nd issue:
Immediately after I seemed to fix the fist problem, another problem appeared. All interrupts were running (i can see this by toggling external pins) but some functions stopped working. For example, I have a display that gets data over CAN. All data to the display stops even thought the pin signal tells me this loop is still running. This function happens to be in RAM. I will test moving it to flash tomorrow and see in this particular function still has a problem. Right now this is only a theory.
I realize these are strange issues but has anyone seen problems like these? The BOR circuit should be taking care of any brown-out problems, but it looks to me like some code, especially RAM functions, are getting corrupted during these power loss tests.