Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: LPC2292 in Power Down Mode

2005-10-05 by philips_apps

Hi Dave,

see below one chapter of an application Note that is still in 
progress but should probably help you right now. In particular the 
paragraph about pull-ups and the Interrupt inputs / Analog inputs 
seems something that could help you to reduce your Power Down values.

Reducing Power Consumption
==========================

To reduce current consumption on the 3.3V rail in power-down mode 
(let's consider the 144-pin devices):
There are 80 pins with internal pull-ups on Ports 1,2 and 3. These 
pull-ups are always active.

Set those pins high or keep them floating before entering power down 
mode. If set low, they will consume around 50uA (typical) on each 
pin.
Port 0 does not have any internal pull-ups. These pins can be set 
low.

In LPC2114/2124/2212/2214/2119/2129/2194/2290/2292/2294 and 2210, 
there is leakage current (around 200uA) on External Interrupt/ADC 
pins if these pins are pulled higher than 1.8V. External Interrupt 
pins will contribute to the leakage irrespective of the pin 
configuration. ADC pins will contribute to the leakage only if they 
are configured as analog inputs.

Below are some hints which will reduce power consumption.
All the LPC2000 devices have two power saving modes: Idle and Power 
down. Please refer to the Power Control section in the System 
Control Block chapter in the User Manual.
Enable the MAM if the application is run from the on-chip Flash. 
Enabling the MAM will enable various buffers and reduces the number 
of Flash fetches thereby reducing power consumption.
Disable unused peripherals using the PCONP register.
The peripherals can run at a lower speed as compared to the ARM7 
core frequency. Using the VPBDIV register, the peripherals can run 
at either half or one-fourth of the system frequency.

Most embedded applications, terminate with a while(1) loop and they 
service interrupts whenever needed. In this case, code is still 
constantly fetched from the on-chip Flash and executed which adds to 
the power consumption. A better solution would be to switch to the 
Idle power saving mode and then wait for interrupts. An interrupt 
from a peripheral would then wake the device from Idle mode. 
Considerable power savings can be achieved by keeping the ARM7 core 
in Idle mode while it is waiting for interrupts.

As mentioned above, Flash fetches adds to power consumption. If the 
program is encoded using the Thumb instruction set then with each 
Flash fetch eight instructions are fetched instead of four (as 
compared to ARM). Thus, the number of Flash fetches could be reduced 
by using Thumb code.

On a side note, since the on-chip SRAM controller incorporates a 
write-back buffer which holds the last data sent by software to the 
SRAM, a dummy write needs to be done before entering idle or power 
down mode. Hence, if a variable is updated before entering either 
power saving mode, a dummy write to the same variable is necessary. 
Please refer to section On-Chip Static RAM (SRAM) in Chapter 1 of 
the respective User Manual for more detailed information.

Philips Apps team

--- In lpc2000@yahoogroups.com, "dpbevin2k" <dbevin@s...> wrote:
> Hi all,
> 
> I'm trying to use an LPC2292 in a extremely low power situtation 
(i.e.
> the whole board < 0.5mA at 3.3V).
> 
> So far, I've put the 2292 into Power Down mode (I see the 
oscillator
> stop) and the board gets down to about 0.8mA.
> 
> I've tried things like:
> 
>  - disabling the EMC and making all pins GPIO inputs (0.8mA)
>  - disabling the EMC and driving all GPIO pins high (1.6mA)
>  - not disabling the EMC with 1M pullups on D0-D15 (2.0mA)
>  - disabling the EMC and driving all GPIO pins low (2.8mA)
> 
> NOTE: There are NO peripherals on the memory bus at the minute.
> 
> Does anyone have any ideas as to what I'm doing wrong??? What's the
> best state to leave the 2292 in to acheive the best results?
> 
> Thanking you in advance
> 
> Dave Bevin

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.