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.

MSP430G2553: MSP430 - Settings for UART pins during sleep

Part Number: MSP430G2553

Hi There.

I've noticed a weird problem where the sleep current during LPM4 is much higher than it should be ....and the sleep current is rising.   I've isolated the issue to the RX pin (P1.1 - UCA0RXD).  

Before it goes to sleep, I disable the USCI  and then set RX to input pull-high with the following code

// disable UART
UCA0CTL1 |= UCSWRST; // **DEACTIVATE USCI state machine**
IE2 = 0; // disable all USCI_A0 interrupts

P1DIR &= ~BIT1; 

P1REN |= BIT1;

P1OUT |= BIT1;

P1SEL &= ~BIT1; // P1.1 = P1DIR

P1SEL2 &= ~BIT1; // P1.1 = P1DIR

Am I doing something incorrectly?  The pins all have ESD diodes on them to ground (see below)

Thanks!

  • Hey Chris,

    How have you isolated it to the RX pin?

    How high is the LPM4 current?

    What if you pull this signal low?

    Thanks,
    JD
  • Hi JD, Thanks for fast reply. Pls see my answers below
    - How have you isolated it to the RX pin? The RX and TX pins are connected to a header w/ ESD diodes. There is an external system that we plug into the header occasionally to get diagnostic data. Otherwise, they are not connected to anything except the diodes.

    - How high is the LPM4 current? Oddly, it can be as low as 3.4uA (normal for our system) or as high as 2000uA. And sometimes it rises and falls.

    - What if you pull this signal low? It helped on one unit when I did that but didn't help on another unit. I'm testing units all this week.

    Thanks again
  • Hey Chris,

    Are you measuring the power with the external diagnostic system connected? Is this a TI debugger or something else?

    The MSP430G2553 should be able to achieve <1uA in LPM4. Based on your feedback, it doesn't seem clear to me that the RX pin is the cause. Especially if adjusting it doesn't make a difference on all units.

    Are there many other components on your board and are they pulling current? Anything else hooked up to the MSP430?

    For measuring LPM current, we need to make sure that the MSP430 power only is measured with no debugger connected.

    We have a basic LPM3 example that you can change to LPM4 use for measuring low power. It wakes periodically, but you can disable this if you would like. here: dev.ti.com/.../

    Thanks,
    JD
  • Hi JD,

    No.  We aren't measuring w/ any external system. Nothing is connected to the MSP430.

    The RX and TX pins are not connected to anything except the ESD diodes and should be input, internally pulled high.  However, RX ! = VCC.   With VCC = 3.6V, I've seen the RX pin voltage all over the place (0.5, 1V, 1.2V, etc).    

    The system may have multiple issues unrelated to the RX pin; however, the fact that the voltage isn't VCC when it is set to input pull high   is a red flag for me.   Do you know if there is some UART disable that needs to happen beyond what I showed before.

    Thanks for the code.  I will review it a.s.a.p.  :-)

    -C

  • Hey Chris,

    That is interesting, I'm not sure what would cause that. It shouldn't, but maybe the ESD is sinking some current?

    The lowest power state for the I/Os is actually to be set as outputs and driven low. You will see that in the example code I linked.

    Thanks,
    JD

**Attention** This is a public forum