WKT wakeup from Deep Power Down

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

WKT wakeup from Deep Power Down

474 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by arpel on Sat Mar 22 10:22:11 MST 2014
I'm designing a battery powered application for which I need to use the deep power down capability.
I've gone step by step with each PM mode and got used to selecting the WKT clock source, PCON way of working and WFI()s.

I'm now struggling with the deepest sleep mode, I've achieved to program Deep Power Down, wake up by WKT and at least it wakes up on time, goes through the reset process (as expected) and I'me able to detect the reset origin thanks to the PMU_PCON_DPDFLAG.

Once in the main() after reset from DPD I can't have any interrupt or GPIO working (and of course they where working before the sleep). As the program executed is actually exactly the same (due to the reset kind of wake up) I don't understand why it's not working.

Thanks for your help on that topic ! 
Labels (1)
0 Kudos
4 Replies

376 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by nxp_apps on Sun Apr 13 22:56:00 MST 2014
Hi,

Can you please try the running the attached example? This example will put the device into deep power-down mode, wake-up using the self wake-up timer, and then upon reset due to wake-up from deep power-down mode, the GPIO pin toggles using the multi-rate timer's interrupt.

Thanks.

nxp_support

0 Kudos

376 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by MarcVonWindscooting on Sun Mar 23 08:36:47 MST 2014
I see. I don't use a debugger, so I can't say anything about that.
An interrupt loop is ruled out.

I can't help here, but I my gut feeling says, the debugging or your environment is part of the problem...
0 Kudos

376 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by arpel on Sun Mar 23 08:23:26 MST 2014

Quote: MarcVonWindscooting

How can you know, that control has reached main()? What kind of operation do you use to prove control is within main() ?



I'm writing values in GPREG all along the main() function. As debug is lost when entering sleep I read back the values in GPREGs after initiating a new debug connection.

int main(void)
{
int count = 0;
Chip_PMU_WriteGPREG(LPC_PMU, 3, 0);
SystemCoreClockUpdate();
Chip_PMU_WriteGPREG(LPC_PMU, 3, 1);
[...]
}
0 Kudos

376 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by MarcVonWindscooting on Sun Mar 23 08:18:17 MST 2014

Quote: arpel

Once in the main() after reset from DPD I can't have any interrupt or GPIO working (and of course they where working before the sleep). As the program executed is actually exactly the same (due to the reset kind of wake up) I don't understand why it's not working.



How can you know, that control has reached main()? What kind of operation do you use to prove control is within main() ?
0 Kudos