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.

MSP430FR5739 LPM4.5 current consumption

Other Parts Discussed in Thread: MSP430FR5739

Hello,

I've managed to bring the MSP430FR5739 to LPM4.5 (PMMLPM5IFG is set on wakeup), but the current consumption still amounts to 1.2uA, which is double of the specified max. in the Datasheet (0.66uA). Possible, that the controller actually is in LPM3.5, but i set LPM4_bits on LPM-entry... is there any module i may have not turned off?

No additional HW attached to the MSP. What's curious: 0.4uA are drown by AVCC, the remaining 0.8uA by VCC. Measured over 100Ohm with a 6.5 Digit Multimeter, so the Measuring should be good. Following the code to enter LPM4.5:

// Stop WDT
WDTCTL = WDTPW + WDTHOLD;

// Init SMCLK = MCLk = ACLK = 1MHz
CSCTL0_H = 0xA5;
CSCTL1 |= DCOFSEL0 + DCOFSEL1; 
CSCTL2 = SELA_1 + SELS_3 + SELM_3;      
CSCTL3 = DIVA_0 + DIVS_3 + DIVM_3;      

//crystal off
CSCTL4 = XT1OFF + XT2OFF;
CSCTL5 &= ~(XT1OFFG + XT2OFFG);

//intern Temp. Sensor off
REFCTL0 |= REFTCOFF;
REFCTL0 &= ~REFON;

//configure all ports as GPIO
P1SEL0 = 0x000;
P1SEL1 = 0x000;

P2SEL0 = 0x000;
P2SEL1 = 0x000;

P3SEL0 = 0x000;
P3SEL1 = 0x000;

P4SEL0 = 0x000;
P4SEL1 = 0x000;

PJSEL0 = 0x000;
PJSEL1 = 0x000;

//configure all ports as inputs with pulldown
P1DIR = 0;
P1OUT = 0;
P1REN = 0xFF;

P2DIR = 0;
P2OUT = 0;
P2REN = 0xFF;

P3DIR = 0;
P3OUT = 0;
P3REN = 0xFF;

P4DIR = 0;
P4OUT = 0;
P4REN = 0xFF;

PJDIR = 0;
PJOUT = 0;
PJREN = 0xFF;

PMMCTL0_H = 0xA5;       //unlock PMMPW 
PMMCTL0_L |= PMMREGOFF; //LDO turned off on LPM4.5-entry

//Enter LPM4 w/ interrupts
__bis_SR_register(LPM4_bits + GIE);
  • Problem solved.

    The high-side Supply Voltage Supervisor module was still enabled in LPM4.5. It can be disabled by clearing the SVSHE bit in the PMMCTL0 Register. Doing this, i finally achieved ~0.35uA quiescent current, like in the Datasheet (0.32uA typical)

    I wish TI would mention this settings in the "1.4.2 Entering and Exiting LPMx.5" chapter of the User's Guide, or at least in subchapter "2.2.3 LPM3.5, LPM4.5" of "2 Power Managment Module and Supply Voltage Supervisor" chapter. The only hint you get is in "2.2.2 Supply Voltage Supervisor":

    The high-side supervisor (SVSH) is always active in all power modes. It can be disabled only
    in LPM4.5 with SVSHE = 0.

    well at least the LPM4.5 is working.

  • Lukas Furrer said:
    The only hint you get is in "2.2.2 Supply Voltage Supervisor":

    That's why one should read the whole users guide and not only selected chapters. Listing all cross-dependencies in all chapters would double the size of the guide.

  • Hi,

    I am using MSP430FR5739 board. I want to put the controller on low power mode 4.5. I did the necessary steps and i am getting current as 125uA. even i removed jumpers from TXD,RXD,RST and TEST points from the board.

    Below is my code can you just tell me where i went wrong.

    Thanks and regards

    Chethan Kumar

    CSCTL0_H = 0xA5;
    CSCTL1 |= DCOFSEL0 + DCOFSEL1;
    CSCTL2 = SELA_1 + SELS_3 + SELM_3;     
    CSCTL3 = DIVA_0 + DIVS_3 + DIVM_3;                               
     
    //crystal off
    CSCTL4 = XT1OFF + XT2OFF;
    CSCTL5 &= ~(XT1OFFG + XT2OFFG);
     
    //intern Temp. Sensor off
    REFCTL0 |= REFTCOFF;
    REFCTL0 &= ~REFON;
     
    //configure all ports as GPIO
    P1SEL0 = 0x000;
    P1SEL1 = 0x000;
     
    P2SEL0 = 0x000;
    P2SEL1 = 0x000;
     
    P3SEL0 = 0x000;
    P3SEL1 = 0x000;
     
    P4SEL0 = 0x000;
    P4SEL1 = 0x000;
     
    PJSEL0 = 0x000;
    PJSEL1 = 0x000;
     
    //configure all ports as inputs with pulldown
    P1DIR = 0;
    P1OUT = 0;
    P1REN = 0xFF;
     
    P2DIR = 0;
    P2OUT = 0;
    P2REN = 0xFF;
     
    P3DIR = 0;
    P3OUT = 0;
    P3REN = 0xFF;
     
    P4DIR = 0;
    P4OUT = 0;
    P4REN = 0xFF;
     
    PJDIR = 0;
    PJOUT = 0;
    PJREN = 0xFF;
     
    PMMCTL0_H = 0xA5;       //unlock PMMPW
    PMMCTL0_L |= PMMREGOFF; //LDO turned off on LPM4.5-entry
    PMMCTL0_L &= ~(SVSHE + SVSLE);

    __bis_SR_register(LPM4_bits + GIE);

  • No, by reading your code, i can not just tell you where you went wrong. Everything looks right.

    What might cause a problem: did you turn off the Watchdog, or at least make sure its interval is long enough?

    But first of all: How and where excactly did you measure 125uA? Supply of the whole Board or really only the current at VCC and AVCC of the MSP? Do you measure voltage over a resistor or directly current? Are there any peripherals connected to the Ports? You configure them as inputs with pulldown. So if there is high level at these ports you allready have higher current consumption.

    i hope that'll help you along, otherwise describe your problem with more detail.

  • I don't see you disabling the watchdog, so maybe the MSP is in a constant watchdog reset cycle, giving you an average of 125µA while switching between 2µA and 1mA or so.

**Attention** This is a public forum