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.

LP-MSPM0L2228: The current consumption in STANDBY1 mode becomes too high.

Genius 3215 points

Part Number: LP-MSPM0L2228
Other Parts Discussed in Thread: ENERGYTRACE, SYSCONFIG, MSP430F4152

Hi All,

I am using TIMG0 on the LP-MSPM0L2228 to count 500 ms.
During this 500 ms period, approximately 40 ms is spent in RUN mode or STOP1 mode, and the remaining 460 ms is in STANDBY1 mode.
When measured with EnergyTrace (CCSv12), the minimum current was 9.6 µA, which is higher than the value specified for STANDBY1 in the datasheet.
Do you have any advice on what might be causing this?
Our target is mean 50 µA.

The reason we are using EnergyTrace (CCSv12) for measurement is that we believe it provides higher accuracy compared to v20.
Software development is being done with CCSv20.
EnergyTrace++ (CCSv20) confirms that the device correctly enters RUN, STOP1, and STANDBY1 modes.
Additionally, all jumpers on the EVM except for the 3.3 V and GND pins on J101 have been removed, and unused pins are configured as Output Low in SysConfig.

image.png

image.png

image.png

Best Regards,

Ito

  • Hi Ito,

    As the standby power consumption has been low to 9.6uA, I believe you have correctly disabled peripherals.

    I think the remaining consumption may be caused by the floating power consumption in pheripheral IOs. Before going to standby, try to configure used peripheral IOs (such as UART pins, SPI pins) as analogfunction by using DL_GPIO_initPeripheralAnalogFunction() API. 

    Do not forget to configure those pins as their original peripheral function after exiting standby mode.

    Best Regards,

    Pengfei

  • Hi Pengfei,

    Thank you for your reply.

    I’ve omitted a lot of details, but I ended up with code like the one below.
    The only peripheral in use is GPIO.
    Before entering WFI, I call DL_GPIO_initPeripheralAnalogFunction(), and then reconfigure with SYSCFG_DL_GPIO_init().
    The program runs correctly, but the current consumption does not change.
    Do you have any other advice?

    Is a mean current of 50 µA realistically achievable?
    I need to reduce the current consumption to one-fourth of the current level.
    I believe it’s necessary to lower the consumption not only in standby mode but also in RUN mode.
    Do you have any good ideas?

    In RUN mode, SYSOSC is set to 4 MHz and LFOSC to 32 kHz, and I’m using three GPIOs and a comparator input.
    The comparator is operating in ULP mode.
    I immediately disable any peripherals after use, so the time they remain active is minimized.
    I can’t think of any other ideas…

    SYSCFG_DL_init();
    while (1) {

    DL_GPIO_initPeripheralAnalogFunction(IOMUX_PINCM41); // PA15
    DL_GPIO_initPeripheralAnalogFunction(IOMUX_PINCM69); // PA25
    DL_GPIO_initPeripheralAnalogFunction(IOMUX_PINCM73); // PA26

    DL_SYSCTL_setPowerPolicySTANDBY1();
    __WFI();
      SYSCFG_DL_GPIO_init();
    }



    Best Regards,

    Ito

  • Hi Ito,

    Do you need to keep the comparator running in standby mode?

    And do you use VREF module as comparator DAC reference or use VCC as DAC reference? If you are using VREF module, please try to change to VCC reference to see whether the active power consumption could be lower. And before entering standby mode, please also disable comparator and the VREF module in advance. 

  • Hi Pengfei,

    The comparator already uses VCC.
    VREF is not being used.

    And before entering standby mode, please also disable comparator and the VREF module in advance. 

    This has also already been programmed.
        DL_COMP_disable(COMP0);
        DL_COMP_disablePower(COMP0);
    With the MSP430F4152 I used previously, the average current consumption was 50μA for a similar program.
    I had expected the new MSPM0 to easily fall below this value, but...
    Best Regards,
    Ito

**Attention** This is a public forum