I need to use LPC1114/302 in Deep Power-down mode in order to conserve battery power. However, the current consumption is still about 1.5mA when Deep Power-down mode is enabled. The following is one of my test programs:
[collapse title=Deep Power-down Mode Test Program]
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;
LPC_SYSCON->PDSLEEPCFG = 0x18ff;
LPC_SYSCON->PDRUNCFG = 0xedf0;
LPC_SYSCON->PDAWAKECFG = LPC_SYSCON->PDRUNCFG;
LPC_PMU->PCON = 0x02;
SCB->SCR |= (1 << 2); // Set SLEEPDEEP bit
SCB->SCR &= ~(1 << 2); // reset SLEEPDEEP bit
for (;;) __NOP();
return 0 ;
I have also changed system_LPC11xx.c to use IRC instead of crystal
#define SYSPLLCLKSEL_Val 0x00000000
#define SYSPLL_SETUP 0
#define SYSPLLCTRL_Val 0x00000000
#define MAINCLKSEL_Val 0x00000000
During testing, the only connections to the MCU LPC1114/302 are the SWCLK, SWDIO, VDD and VSS pins. I have also tried setting all I/O pins to GPIO (except SWCLK and SWDIO) and output at low level. The result is still the same. Note that the program execution stops at __WFI(). Without the __WFI(), the current is much higher.
I have run similar program using LPCXpresso LPC11U14 board (LPC11U14/201), and the current is less than 100uA.
Can anyone tell me what can be the problem? My program or the MCU.
Thank you in advance.