EmbeddedRelated.com
Forums
Memfault Beyond the Launch

[LPC2378] Wake up from power down mode with GPIO interrupt

Started by Zbig...@s3group.com November 17, 2007
Hi,

I'm using the LPC2378 on a design where low power consumption is very important. We put the MCU (LPC2378) into power down mode and we expect it will wake up from power down if RTC, USB or GPIO interrupt occurs.
The RTC and USB interrupts work fine. I also tested that the EXT interrupts (EINT0) work ok.
I can't however configure the device to wake up from power down when a GPIO interrupt occurs.
I'm using the following configuration (example for P0.2):
/* P0.2 */
PINSEL0 &= ~(0x3 << 4); /* Pin function: GPIO */
PINMODE0 &= ~(0x3 << 4); /* Pin mode: on-chip pull-up resistor. */
IO0DIR &= ~(0x1 << 2); /* Pin direction: input. */
IO0_INT_EN_F |= (0x1 << 2); /* Enable falling edge IRQ. */
IO0_INT_EN_R |= (0x1 << 2); /* Enable rising edge IRQ. */

INTWAKE = 0x0080; /* Bit 7, Activity on GPIO pins wakes up MCU. */
PCON = 0x1C | 0x02; /* Disable BOD and enter power down mode. */

I configured a pin in port 2 in a similar way but it didn't work either.

I'll appreciate your help.

Thanks in advance,
Zbigniew

An Engineer's Guide to the LPC2100 Series

Z...@s3group.com napisa:
>Hi,
>
>I'm using the LPC2378 on a design where low power consumption is very important. We put the MCU (LPC2378) into power down mode and we expect it will wake up from power down if RTC, USB or GPIO interrupt occurs.
>The RTC and USB interrupts work fine. I also tested that the EXT interrupts (EINT0) work ok.
>I can't however configure the device to wake up from power down when a GPIO interrupt occurs.
>I'm using the following configuration (example for P0.2):
>/* P0.2 */
>PINSEL0 &= ~(0x3 << 4); /* Pin function: GPIO */
>PINMODE0 &= ~(0x3 << 4); /* Pin mode: on-chip pull-up resistor. */
>IO0DIR &= ~(0x1 << 2); /* Pin direction: input. */
>IO0_INT_EN_F |= (0x1 << 2); /* Enable falling edge IRQ. */
>IO0_INT_EN_R |= (0x1 << 2); /* Enable rising edge IRQ. */
>
>INTWAKE = 0x0080; /* Bit 7, Activity on GPIO pins wakes up MCU. */
>PCON = 0x1C | 0x02; /* Disable BOD and enter power down mode. */
>
>I configured a pin in port 2 in a similar way but it didn't work either.
>
>I'll appreciate your help.

As I understanding UM it is not passible.
See:

UM10211
page 4:
• Processor wakeup from Power Down mode via any interrupt able to operate during
Power Down mode (includes external interrupts, RTC interrupt, and Ethernet wakeup
interrupt).

No GPIO ;-(

And see chapter 3 page 23 Fig. 8

Albert





> a...@vp.pl napisa:
> >Z...@s3group.com napisa:
> >>Hi,
> >>
> >>I'm using the LPC2378 on a design where low power consumption is very
> important. We put the MCU (LPC2378) into power down mode and we expect it
> will wake up from power down if RTC, USB or GPIO interrupt occurs.
> >>The RTC and USB interrupts work fine. I also tested that the EXT
> interrupts (EINT0) work ok.
> >>I can't however configure the device to wake up from power down when a
> GPIO interrupt occurs.
> >>I'm using the following configuration (example for P0.2):
> >>/* P0.2 */
> >>PINSEL0 &= ~(0x3 << 4); /* Pin function: GPIO */
> >>PINMODE0 &= ~(0x3 << 4); /* Pin mode: on-chip pull-up resistor. */
> >>IO0DIR &= ~(0x1 << 2); /* Pin direction: input. */
> >>IO0_INT_EN_F |= (0x1 << 2); /* Enable falling edge IRQ. */
> >>IO0_INT_EN_R |= (0x1 << 2); /* Enable rising edge IRQ. */
> >>
> >>INTWAKE = 0x0080; /* Bit 7, Activity on GPIO pins wakes up MCU.
> */
> >>PCON = 0x1C | 0x02; /* Disable BOD and enter power down mode. */
> >>
> >>I configured a pin in port 2 in a similar way but it didn't work either.
> >>
> >>I'll appreciate your help.
> >
> >As I understanding UM it is not passible.
>
> I was blind ;-)
> You must use EINT3 to configure GPIO wakeup.
>
> See :
> http://www.standardics.nxp.com/support/documents/microcontrollers/zip/code
> .bundle.lpc23xx.lpc24xx.uvision.zip
> File pwrman.c
>
> Albert Bartoszko
>
Hi Albert,

Thanks for referencing me to the sample code. It turned out that the UM specifies the bit 8 in the INTWAKE register as reserve while in fact it should be set so a GPIO interrupt could wake up the MCU from power down.
Again, thanks a lot,
Zbigniew

The information contained in this e-mail and in any attachments is confidential and is designated solely for the attention of the intended recipient(s). If you are not an intended recipient, you must not use, disclose, copy, distribute or retain this e-mail or any part thereof. If you have received this e-mail in error, please notify the sender by return e-mail and delete all copies of this e-mail from your computer system(s).
Please direct any additional queries to: c...@s3group.com.
Thank You.



Memfault Beyond the Launch