EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Power Down LPC11A14

Started by Shashank Maheshwari May 8, 2013
Hi

Has anybody used Power Down mode in LPC11A14. Apparently it only has a
Sleep Mode and to use the power down mode one needs to shut down the PLL.

I have set up external interrupts and then I shut down the PLL. I have
programmed in a way that the PLL turns on in the ISR.However this does not
happen and once it shuts down it does not start again.

Has anyone worked on this ? Can someone tell the procedure to do this on
LPC11A14?

Any pointer would be really helpful.

Best Regards

--
Shashank Maheshwari

An Engineer's Guide to the LPC2100 Series

LPC11A14 has power profiles in rom, you should use one of the 4 profiles
(low current mode) this is the simplest way.
Thanks for the prompt reply. I am designing a system which stays in the
lowest possible power state (preferably <100uA, which I believe
is fairly possible with this IC), and with an external interrupt wakes up
transmits UART & I2C data and again goes back to its lowest power state.
This runs on a battery hence lower the power better it is.

I havent really ever used power profiles. Can I achieve the required power
consumption (<100uA) by those Power Modes? If its possible this could be a
real life saver.

Best Regards
Shashank
Il 08/05/2013 16:45, Shashank Maheshwari ha scritto:
> Thanks for the prompt reply. I am designing a system which stays in the
> lowest possible power state (preferably <100uA, which I believe
> is fairly possible with this IC), and with an external interrupt wakes up
> transmits UART & I2C data and again goes back to its lowest power state.
> This runs on a battery hence lower the power better it is.
>
> I havent really ever used power profiles. Can I achieve the required power
> consumption (<100uA) by those Power Modes? If its possible this could be a
> real life saver.

In my experience you could obtain about 1mA current consumption in low
power mode using the power profiles it depends by your clock frequency,
you should switch to a lower frequency before entering sleep mode (may
be 12MHz or less).
There are better M0 mcu in NXP portfolio if you need lower power
consumptions, you should search for M0 providing PMU in this case NXP
added their deep sleep and power down modes that will satisfy your
requirements, I don't remember if there is a LPC11Axx having PMU, I
think no, they introduced this feature later.
Hi Manca

I have been trying Power Modes on LPC11A14 after you advised.
I am using IRC as PLL input (ie 12MHz). According to UM the PLL divider can
have a max. value of 255. (pg 284)

This means I can run my processor on 50kHz. This would yield 240 as the
divider value (12000/50) which is perfectly in the valid range.
However as soon as the processor reaches this line in code it hangs
immediately. I do not understand why. Instead of this if I change this
frequency to 48000kHz it works perfectly.

What can be the reason. I want to reach the lowest possible frequency
possible to minimise power. What is the lowest frequency I can reach?

Rgds
Shashank
Dear Shashank,

what do you mean when you say that it hangs? If you monitor the activity
through a JTAG link, the debug interface is very likely to hang because the
CPU speed drops way below the JTAG speed.

I would advise to debug your code at normal speed and disconnect the JTAG
during low-speed, low power operation and reconnect after you switched back
to normal speed.

Hope it helps
Olivier

Olivier Gautherot
o...@gautherot.net
Cel:+56 98 730 9361
www.gautherot.net
http://www.linkedin.com/in/ogautherot
Il 09/05/2013 16:59, Shashank Maheshwari ha scritto:
> Hi Manca
>
> I have been trying Power Modes on LPC11A14 after you advised.
> I am using IRC as PLL input (ie 12MHz). According to UM the PLL divider can
> have a max. value of 255. (pg 284)
>
> This means I can run my processor on 50kHz. This would yield 240 as the
> divider value (12000/50) which is perfectly in the valid range.
> However as soon as the processor reaches this line in code it hangs
> immediately. I do not understand why. Instead of this if I change this
> frequency to 48000kHz it works perfectly.
>
> What can be the reason. I want to reach the lowest possible frequency
> possible to minimise power. What is the lowest frequency I can reach?

1. The debug mode is not supported in low power modes and I don't know
what could happen with it enabled.
2. In sleep mode the MCU clk is stopped.
3. If you dynamically change the clock frequency you have to wait some
time when you change the clock frequency to stabilize the signal.
Thanks for the replies.

Have a look at this code :

command[0] = 48; //system freq
48 MHz
command[1] = PARAM_LOW_CURRENT; //specify system power for low
active current
command[2] = 48;
(*rom)->pPWRD->set_power(command,result); //set system power
if (result[0] == PARAM_CMD_SUCCESS)
*LED_HIGH();*

// set the low pll
command[0] = 12000; //PLL's input
freq 12000kHz or 12 MHz
command[1] = 50; // needed CPU freq 50kHz
command[2] = CPU_FREQ_LTE; // less than or equal to
command[3] = 0; //infinitely
wait for the PLL to lock
(*rom)->pPWRD->set_pll(command,result); //set the PLL
if (result[0] == PLL_CMD_SUCCESS)
*LED_LOW();*
*
*
__WFI();

Now after giving an external power the LED goes HIGH but it does not go LOW
ever. Moreover the system does not respond to any external interrupt.
However if set_pll was not executed or was executed with high frequency
like 48MHz everything works fine.

I am confused. If MCU clock is stopped in sleep mode then what is the point
of reducing clk speed before entering sleep mode ?

Rgds
Shashank
Perhaps you are getting some response other than PLL_CMD_SUCCESS from your
set_pll call. This would result in the LED staying on.

Mike
ok I tried all the result options of set_pll. I set one LED for each of the
five options however none of the LED glows. ie the system halts at set_pll
command. Can someone suspect any issue with this ?

Rgds
Shashank

The 2024 Embedded Online Conference