This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430 in Low Power Mode

Other Parts Discussed in Thread: MSP430F2619S-HT

Hello,

I am new to the MSP430 family as well as working with microcontrollers that support Low Power Modes.  I am used to working with microcontrollers that are always on and don't have low power modes.  I have a question in regards to the MSP430 Low Power Mode since I am porting some code that operates in an LPM into a similar device to the one that I am working on.  Looking at the MSP430F2619S-HT Datasheet  SLAS697B March 2010 - Revised June 2011 I found the following information:

Operating Modes

The MSP430 has one active mode and five software selectable low-power modes of operation. An interrupt event can wake up the device from any of the five low-power modes, service the request and restore back to the low-power mode on return from the interrupt program.

The following six operating modes can be configured by software:

Active mode ( AM)
All clocks are active.

Low-power mode 0 (LPM0)
CPU is disabled.
ACLK and SMCLK remain active. MCLK is disabled.

Low-power mode 1 (LPM1)
CPU is disabled.
ACLK and SMCLK remain active. MCLK is disabled.
DCOs dc generator is disabled if DCO not used in active mode.


Low-power mode 2 (LPM2)
CPU is disabled.
MCLK and SMCLK are disabled.
DCO's dc-generator remains enabled.
ACLK remains active

Low-power mode 3 (LPM3)
CPU is disabled.
MCLK and SMCLK are disabled.
DCO's dc-generator is disabled.
ACLK remains active.

Low-power mode 4 (LPM4)
CPU is disabled.
ACLK is disabled.
MCLK and SMCLK are disabled.
DCO's dc-generator is disabled.

If I was to operate in an LPM mode higher than 0 and wanted to wake up my device every x amount of time using an internal timer, can this still occur if I don't have an external oscillator clock.  Or is it required to have an external oscillator if a device needs to use any low power mode?

Thank you for your help.

  • If you source a Timer from ACLK and source ACLK from an internal VLOCLK, then you can go all the way up to LPM3 and wakeup on an interrupt. Note that if MCLK/SMCLK are derived from the DCO, there is a DCO wakeup time penalty in the higher LPM modes.

    A lot depends on your particular application and what performance penalties you can trade off versus power savings.

  • It does work quite well, for example you may source the Watchdog Timer with the VLOCLK (Very Low Power Oscillator Clock) and then set up an interrupt that will turn the CPU MCLK back on ...

    You can find this example with grace :

    MSP430x26x Demo - Basic Clock, LPM3 Using WDT ISR, VLO ACLK

    Folder name : msp430x261x_lpm3_vlo

    To get an overview of the code you can import this project and then after building it for the first time go to the src folder and check out the init function :

    • /* initialize Config for the MSP430 GPIO */

    GPIO_graceInit();

    • /* initialize Config for the MSP430 2xx family clock systems (BCS) */

    BCSplus_graceInit();

    • /* initialize Interrupt vector support */

    InterruptVectors_graceInit();

    This should be enough to get you on track =)

    - Fred

  • You maintain Vcc but shutdown various modules to conserve power consumption. This include shutdown the CPU. But when you do that, you have to have a way to wake up the CPU.

    If you have an external signal to wake up the CPU, you can connect that to one of the P1 or P2 pins. You enable the edge triggered interrupt of that pin and have an ISR to wake up the CPU. Enabling the P1 or P2 interrupt takes almost no additional power.

    Next to that (in terms of power savings), you can use the VLO and WDT interrupt..

**Attention** This is a public forum