Hello,
I would like to develop a wireless sensor node with the Launchpad MSP430FR5969. The node will sleep most of the time and I only need to interrupt it once an hour, while the precise timing is not important at all. I thought that using the RTC interrupt would be the way to go. According to the datasheet, I could put it into the LPM3.5 sleep mode which should consume about 0.5μA, which sounds great. However, I am not able to achieve such a low consumption.
I opened the example msp430fr59xx_lpm3-5_01.c in the CCS6.1.1.00022, ran it in the debug mode, analyzed with the Energy Trace and it measured the mean current of 3.4μA. I expected something around those 0.5μA.
(The voltage for the Energy Trace was set to 3V)
Then I tried the example msp430fr59xx_lpm4.c which runs in the LPM4 mode, but again the Energy Trace measured the very same mean current of 3.4μA. Again I expected something around 0.5μA or even lower.
Maybe I am doing something wrong, I am really new to the MSP430 world. Before I worked with the Arduino (Atmega328p).
Here is the datasheet mentioning the consumption of only 0.2 - 1.7μA:
www.ti.com/.../specifications
And here is the code of the LPM4 example (msp430fr59xx_lpm4.c):
#include <msp430.h> int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop WDT // Configure GPIO P1OUT = 0; P1DIR = 0xFF; P2OUT = 0; P2DIR = 0xFF; P3OUT = 0; P3DIR = 0xFF; P4OUT = 0; P4DIR = 0xFF; PJOUT = 0; PJDIR = 0xFFFF; // Disable the GPIO power-on default high-impedance mode to activate // previously configured port settings PM5CTL0 &= ~LOCKLPM5; // Clock System Setup CSCTL0_H = CSKEY >> 8; // Unlock CS registers CSCTL1 = DCOFSEL_6; // Set DCO to 8MHz CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK; // Set SMCLK = MCLK = DCO // ACLK = VLOCLK CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1; // set all dividers CSCTL0_H = 0; // Lock CS registers __bis_SR_register(LPM4_bits); __no_operation(); // For debugger }
I would be really grateful for any hint.
Thanks a lot,
Michal