WKT wakeup from Deep Power Down

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

WKT wakeup from Deep Power Down

1,263 次查看
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 ! 
标签 (1)
0 项奖励
回复
4 回复数

1,165 次查看
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 项奖励
回复

1,165 次查看
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 项奖励
回复

1,165 次查看
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 项奖励
回复

1,165 次查看
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 项奖励
回复