Reply by "M. Manca" May 10, 20132013-05-10
Il 10/05/2013 19:59, Shashank Maheshwari ha scritto:
> Hey
>
> So finally after setting up the GPIO pins right, turning off the
> peripherals as explained in the earlier threads (including flash), turning
> on the LFO while I turn off the IRC and PLL, I get the power down current
> of *700uA. *
> *
> *
> This is still too much for a battery operated system. Is it possible to go
> below this on LPC11A14 ?
>
> I might be wrong but I think given the fact that this IC does not have a
> PMU neither Power Modes this wasn't really meant for an ultra low power
> applications. Its on chip EEPROM and temperature sensors were a big
> attraction for the selection of this uC. This eventually resulted in a huge
> trade off for power.
>
> I would still be delighted if this could go lower. I am expecting something
> around 100uA which at max might stretch to 200mA.
>
> Should I change the uC and go for a LPC1114(33 pin, XL) or shall I do more
> head banging on the same system (if the goal is achievable)?
> Even if I change the IC I will still have to run it on Deep Sleep mode as
> Deep Power Down mode wont be possible for the application !

Technically having an EEPROM you should design your application to
switch totally off the microcontroller.

An Engineer's Guide to the LPC2100 Series

Reply by Shashank Maheshwari May 10, 20132013-05-10
Hey

So finally after setting up the GPIO pins right, turning off the
peripherals as explained in the earlier threads (including flash), turning
on the LFO while I turn off the IRC and PLL, I get the power down current
of *700uA. *
*
*
This is still too much for a battery operated system. Is it possible to go
below this on LPC11A14 ?

I might be wrong but I think given the fact that this IC does not have a
PMU neither Power Modes this wasn't really meant for an ultra low power
applications. Its on chip EEPROM and temperature sensors were a big
attraction for the selection of this uC. This eventually resulted in a huge
trade off for power.

I would still be delighted if this could go lower. I am expecting something
around 100uA which at max might stretch to 200mA.

Should I change the uC and go for a LPC1114(33 pin, XL) or shall I do more
head banging on the same system (if the goal is achievable)?
Even if I change the IC I will still have to run it on Deep Sleep mode as
Deep Power Down mode wont be possible for the application !

Best Regards
Shashank
Reply by Bernardo Marques May 10, 20132013-05-10
Isn't it possible to place the code that enters sleep mode in RAM,
interrupt vectors in RAM, interrupt routines in RAM and disable flash power?
When you wake up just enable flash before jumping to any code section in
flash.

I have no experience with sleep modes or power consumption management but
I'd try to disable flash. It's quite easy to place code in RAM.

Regards,
Bernardo Marques.
Reply by "M. Manca" May 10, 20132013-05-10
Il 10/05/2013 10:19, Shashank Maheshwari ha scritto:
> Thanks for that input Manca. This group is a real saver! So I was just
> trying out all the alternatives and following is the result :
>
> Before going into sleep mode WFI(), I turn on the LF Oscillator at its
> lowest frequency (600/64 = 9.575kHz). I turn down the IRC oscillator output
> power, IRC power, ADC, XTAL, Watchdog, DAC and analog comparator. However I
> have not turned down the Flash Power (I guess if I turn this down, this
> will hang the system as how would the processor fetch code ?)

yes it should. I think you could turn down everything except flash, ram
and something to awake the microcontroller.

>
> Now I get a sleep current of 1.48mA which is still pretty high. I have
> turned all the GPIOs as outputs and driven low.
>
> What else can I do?

Not so much. I have no data to say how changes the current consumptio
for frequency less then 12 MHz. And 1.48 mA is not so bad for an ARM
sleep state. The problem is that on microcontrollers there are 2 real
data: dynamic current consumption and static current consumption. The
total current consumption will be always higher or equal then the static
current consumption. Don't having these 2 data I should suppose that the
trip point is that you will notice no sensible current reduction
reducing the clock frequency. I could think it should be around 1 MHz
considering the silicon technology of the LPC11Axx.
Reply by Shashank Maheshwari May 10, 20132013-05-10
Thanks for that input Manca. This group is a real saver! So I was just
trying out all the alternatives and following is the result :

Before going into sleep mode WFI(), I turn on the LF Oscillator at its
lowest frequency (600/64 = 9.575kHz). I turn down the IRC oscillator output
power, IRC power, ADC, XTAL, Watchdog, DAC and analog comparator. However I
have not turned down the Flash Power (I guess if I turn this down, this
will hang the system as how would the processor fetch code ?)

Now I get a sleep current of 1.48mA which is still pretty high. I have
turned all the GPIOs as outputs and driven low.

What else can I do?

Best Regards
Shashank
Reply by "M. Manca" May 10, 20132013-05-10
Il 10/05/2013 09:10, Shashank Maheshwari ha scritto:
> According to the convention, a low frequency should reduce the power
> consumption. However when I use LF Oscillator at its lowest frequency and
> shut down the IRC, IRC Output and PLL the current consumption does not seem
> to change. The IC still consumes around 8-9mA.

There are many things that you aren't considering or you are doing wrong
because at 12MHz with PLL and SYSOSC disabled in power down you should
have a power consumption around 2 mA. Check also if internal pull up and
pull down resistors are disabled or not.
From your data I suppose that PLL isn't power down properly. The PLL
current consumption is about 2 - 2.5 mA so you should see clearly when
it is up or down.
If you don't need the EEPROM inside the LPC11Axx series you should check
the LPC11xxLV family that provides more power down modes and that could
reach about 1.6-2.0 uA current consumption in deep sleep mode.
Reply by Shashank Maheshwari May 10, 20132013-05-10
According to the convention, a low frequency should reduce the power
consumption. However when I use LF Oscillator at its lowest frequency and
shut down the IRC, IRC Output and PLL the current consumption does not seem
to change. The IC still consumes around 8-9mA.
What can be the other issues here ? Any other thing needs to be configured
to reduce power consumption while using the LFO?
On Fri, May 10, 2013 at 12:17 PM, M. Manca wrote:
Reply by "M. Manca" May 10, 20132013-05-10
Il 10/05/2013 07:43, Shashank Maheshwari ha scritto:
> @Michael... Yes thats what has been bothering me. According to that set_pll
> must work. However the system hangs !

Technically there is no reason to use the PLL if you need a FCLK less
then the crystal or IRC frequency, it is better to power down the PLL.
Then, to change the post and feedback dividers of the PLL you have to
power down the PLL instead there is no guarantee that the PLL locks to
the new frequency. And remember that there is the low frequency
oscillator (LFOSC) that should be used instead the PLL to produce lower
frequencies.
Reply by Shashank Maheshwari May 10, 20132013-05-10
@Michael... Yes thats what has been bothering me. According to that set_pll
must work. However the system hangs !
Reply by Shashank Maheshwari May 10, 20132013-05-10
How about System clock divider register (SYSAHBCLKDIV) ? The UM says :

This register controls how the main clock is divided to provide the system
clock to the core, memories, and the peripherals. The system clock can be
shut down completely by setting the DIV field to zero. (Page 21)

I tried this register
LPC_SYSCON->SYSAHBCLKDIV = value; // 1...255

However there was no change in the power consumption. Does that mean we
have to update clock or something, because the UM does not say anything
like that and neither it is done in any example codes.

Rgds
Shashank