Post Go back to editing

Power-on Reset on Hibernation Wakeup

Category: Hardware
Product Number: ADuCM4050

Hello,

I have written a simple program for the ADuCM4050 processor that enters hibernation and wakes up after 40 seconds by utilizing an alarm on the RTC1.The problem is that when the RTC interrupt triggers to exit, the processor resets, causing the program to start from the beginning.

The strange thing is that the problem is not consistent. Sometimes the programs runs perfectly for 2-3 cycles, and then resets on the fourth cycle. There is no pattern as to how many cycles it completes before it resets. I should mention that the issue is NOT present when using an Atmel ICE debugger with the processor. The problem only occurs when flashing the program with a .hex file. I am guessing that the debugger is keeping something alive in the processor, preventing it from really going into hibernation mode.

To discover the reset cause, I modified the program to read the "reset status" register on startup and display the contents on some pins that I could read. This revealed that the reset occuring is a "power-on" reset (POR) and by reading the power-on reset source (PORSRC) bits I can see that "POR triggered because VREG drops below fail safe". I am assuming that VREG is an internal voltage regulator in the processor, but i could not find much information on it. I have measured the processors power supply during the reset, and observed that it is completely stable. I have also added some 10 and 100 microF capacitors between VCC and GND to ensure that it can handle potential power spikes.

Another observation I made is that the program runs completely fine when hibernating for only 30 seconds, meaning that the problem is time dependent. I have also ensured that all SRAM banks are retained in hibernation to avoid memory loss.

To enter hibernation mode I use the adi_pwr_EnterLowPowerMode(ADI_PWR_MODE_HIBERNATE, &iHibernateExitFlag, 0) function with these parameters. To exit hibernation mode, the RTC1 alarm ISR sets the iHibernateExitFlag to 1.

Has anyone experienced this problem, has an idea of what can cause it and maybe how to solve it? I would greatly appreciate any thoughts on it! Please also post a comment if any more information is needed.

Thanks and regards,

Lucas