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.

MSPM0L1304: Higher than expected current consumption

Part Number: MSPM0L1304


Tool/software:

Hi, 

I have a design with the MSPM0L1304 MCU that when put on standby mode it consumes 20 uA which seems higher than expected current for this mode.

I checked the following: 

  • I set all GPIOs outputs as low, used and unused ones.
  • I left ADC and configure power enable into automatic mode
  • I remove all timers for testing

The configuration is as shown in the following images:

I'm using the following code for testing:

int main(void)
{
    SYSCFG_DL_init();
    BOARD_LED_Power_Off();
    BOARD_LED_Open_Off();
    BOARD_LED_Close_Off();
    BUZZER_turn_off();
    
    DL_SYSCTL_setPowerPolicySTANDBY1();
    
    BOARD_Boost_Enable(false);
    DL_GPIO_clearPins(MOTOR_PORT, MOTOR_DIR_1_PIN);
    DL_GPIO_clearPins(MOTOR_PORT, MOTOR_DIR_2_PIN);
    DL_GPIO_clearPins(MOTOR_PORT, MOTOR_SLEEP_PIN);
    DL_GPIO_clearPins(BOOST_PORT, BOOST_BOOST_EN_PIN);
    DL_VREF_disablePower(VREF);
    DL_GPIO_disablePower(GPIOA);
    
    DL_ADC12_disablePower(ADC0);
    DL_SYSTICK_disable();

  /* Main Loop */
  while (1) 
  {
    __WFI();
  }
}

What could I be missing to lower the MCU consumption?

Thank you!!

Regards,

Sebastian

  • Hi Sebastian,

    Are you using the MSPM0L Launchpad or your own PCB?

    Let's see if we can first rule out any leakage paths on your platform.  Try the following code.  In DL_SYS_INIT only configure your IO's.  No timer, no ADC, no VREF.

    This should result in about 4uA.

    int main(void)
    {
        SYSCFG_DL_init();
    
        DL_SYSCTL_enableSleepOnExit();
    
        while (1) {
            __WFI();
        }
    }

    Let me know what you discover.