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.

How to reduce supply current on MSP430F5528?

Other Parts Discussed in Thread: MSP430F5528, MSP430F5437A

Hi All,

On my MSP430F5528 I need to run now a real time clock from a small coin battery. I tried several thing but could not lower drain below 30uA. Even entering LPM4 does not help.

Intended operation is to sleep till USB is connected. Here my code:

      //Only wake up when power is present

      USBKEYPID   =     0x9628;

      USBPWRCTL   |=    VBONIE;  // enable interrupt VBUSon

      USBKEYPID   =         0x9600;

      while(!(USBPWRCTL & USBBGVBV))

      {          

            REFCTL0 = 0x0080;          // Power off external reference

            RTCPS1CTL &= ~(RT1PSIE);   // disable timer interrupt

            P5SEL |= BIT4+BIT5;        // Port select XT1

            UCSCTL6 &= ~XT1OFF;        // XT1 On

            UCSCTL6 |= XCAP_3;         // Internal and external load cap 5.5 ~ 7.5 pF

            UCSCTL4 = 0;               // set to clocks to XT1

            P1OUT = 0;

            P1DIR = 0xFF;

            P2OUT = 0;

            P2DIR = 0xff;

            P3OUT = 0;

            P3DIR = 0xff;

            P4OUT = 0;

            P4DIR = 0xFF;

            P5OUT = 0;

            P5DIR = 0xCF; // Don't touch XT1

            P6OUT = 0;

            P6DIR = 0xFF;

            P6OUT = 0;

            P6DIR = 0xFF;

 

            PJOUT = 0;

            PJDIR = 0xFF;

                       

            while (SFRIFG1 & OFIFG) {   // check OFIFG fault flag

              UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT2OFFG); // Clear OSC fault flags

              SFRIFG1 &= ~OFIFG;        // Clear OFIFG fault flag

            }

            UCSCTL6 &= ~(XT1DRIVE_3);          // XT1 is now stable, reduce drive strength

            _bis_SR_register(LPM4_bits + GIE);

            _nop();

      }

Any sugestions are appeciated.

Regards
Guenther

  • Hello,

    I did try a similar thing some time ago with the MSP430F5437A.

    I came down to under 2 µA when in LPM3 and active clock oszilator and active real time clock.

    I am not finished with it, but from my expirience i can give you some hints, perhaps they gonna help out:

    1. How did you measure your current? While Debugger still plugged in? I am using the MSP-FET430UIF Debugger, and when this device is still plugged in the total current consumed is way higher than it is when not plugged in, so always measure your LPM-current consumption with unplugged debugger!

    However, when i remeber right, the additional current by the debugger was around 500 µA.

    2. I did the same as you when setting all ports to a certain state, BUT i did set them as inputs with enables pull down, I think this is the choice which should bring the lowest power consumption, right now i am not sure anymore, but perhaps you should also try to set every possible state:

    P2SEL = 0x00;

    P1OUT = 0x00;

    P2REN = 0xFF;

    P2DIR = 0x00;

    Send some respond if this was the answer.

    Best wishes,

    Seb

  • Hello Seb,

    Thank you for your comment. I may have a double (triple) check on other components.

    1. Yes, a connected debugger does falsify the result. In my situation current with debugger connected is 80µA. It depends on MCU voltage and voltage set for FIT in debug options.
    2. Yes, I tried several port settings. My investigations showed a pull-up drains a lot current, an open input is an unstable current drain, pull-down and output show the best result.

    Regards

    Guenther

  • Guenther Klenner said:
    Yes, a connected debugger does falsify the result.

    It may even prevent some LPM features to be enabled, even if the code tries to enter LPM.

**Attention** This is a public forum