Skip to main content
Graduate
April 27, 2025
Solved

Failing to achieve <1 mA current consumption in stop mode on STM32L053

  • April 27, 2025
  • 6 replies
  • 1087 views

Hello,

I have a PCB with just an SWD connector and an STM32L053R8T6 populated.

WhatsApp Image 2025-04-27 at 17.47.21.jpeg

 

 

 

I'm running example code to measure standby and stop currents.  For standby, I'm reading 0.5 uA, which is within the limits given in the datasheet.

JCard3_0-1745768979646.png

I am not getting the expected results in STOP mode:  the current is ~14 uA instead of the expected <1 uA.

JCard3_1-1745769069898.png

The code I am using is from PWR/PWR_STOP/Src/main.c (attached), where it just enters STOP mode after a 2s delay.  I have not configured any wake up sources.

The current measurements are shown below.  One thing to notice is that some peripheral seems to be waking up every 2 minutes.  I ruled out the system tick and the watchdog.  The debugger is not attached to the connector when collecting these measurements.

JCard3_2-1745769229788.png

Below are the same measurements taken after changing the code as:

- HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFE);
+ HAL_PWR_EnterSTANDBYMode();

In standby mode the average current drops to 0.42 uA and there are no periodic wake ups.

JCard3_3-1745770039827.png

I have looked at this great post on low power modes and I think I'm addressing all the potential errors it describes.

Can anyone suggest what could be the cause for the excess consumption?  Or whether this periodic wake up is normal/expected?

Thank you!

    This topic has been closed for replies.
    Best answer by JCard.3

    I thought I'd provide an update on this, as it may help others with the same problem.

    I redesigned the PCB, this time swapping the STM32L053 with a STM32U083.  And things are better, much better.

     Measured current @ 3.3V Datasheet maxPasses Spec
    StandBy Mode0.19 uA0.205 uA:white_heavy_check_mark:
    STOP 16 uA8 uA:white_heavy_check_mark:
    STOP 20.95 uA2.5 uA:white_heavy_check_mark:

    I have not resolved this issue, but at least I can proceed with a different MCU family that behaves as documented.

    @Andrew Neil @Sarra.S 
    Thanks for your help on this.

    TLDR; If you want to get sub 1uA STOP supply currents with the STM32L053, swap it for an STM32U083 :grinning_face_with_sweat:

    6 replies

    ST Employee
    April 30, 2025

    Hello @JCard.3

    Could you try and run this example on your board and calculate the power consumption: STM32CubeL0/Projects/NUCLEO-L053R8/Examples/PWR/PWR_STANDBY 

    We need to be sure it's not PCB related at first! 

    JCard.3Author
    Graduate
    May 1, 2025

    Hi @Sarra.S ,

    Thanks for following up.  I had already tried essentially the same thing:

    - HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFE);
    + HAL_PWR_EnterSTANDBYMode();

    This time, however, instead of modifying the STOP example, I did as you suggest and run the STANDBY example:  `STM32Cube_FW_L0_V1.12.3/Projects/NUCLEO-L053R8/Examples/PWR/PWR_STANDBY`.  The current draw is the same as my previous experiment, ~0.40 uA

    JCard3_0-1746112721694.png

    It does not look like a PCB issue, given this result, and the fact that the PCB is bare except for the MCU.

    Do you have any other suggestions?

    Thanks!

    Javier

    ST Employee
    May 6, 2025

    Hello again, 

    Thank you for doing the test, when measuring, are you isolating the current of the MCU?

    Also, In your main.c I don't see any other active peripherals, could you share the zipped project to test it on my side on a Nucleo-L053.

    JCard.3Author
    Graduate
    May 6, 2025

    Hi @Sarra.S 

    Thanks for your offer to run the project on your Nucleo-L053!

    I do not have an Nucleo-L053, but I did try it on my Nucleo-L073.  Unfortunately, that board seems to have a problem with USB 5V leaking into the target MCU.  When I remove the LDD jumper, the MCU continues to operate so I cannot get valid current measurements.

    I have attached the project.  If left the two configurations that I tested in the code.  Just comment out one or the other.

    // 14 uA - avg, with spikes every 2 minutes
    HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFE);
    // 0.42 uA - avg, no spikes
    // HAL_PWR_EnterSTANDBYMode();

    Hopefully your experiment confirms that there is nothing wrong with the code, and that the problem must be with my board.  At this point I've almost convinced myself that my problem has to do with the absence of decoupling capacitors on my bare board.  Could capacitors (or their absence) have have such an impact in STOP mode consumption?

    Looking forward to seeing your numbers!

    Thank you,

    Javier

    JCard.3Author
    Graduate
    May 12, 2025

    Hi @Sarra.S 

    Was what I sent you sufficient for you to rebuild the project on your end?

    Thanks!

    Javier

    Super User
    May 13, 2025

    Did you disconnect the debugger and do a power cycle before measuring ?

    JCard.3Author
    Graduate
    May 13, 2025

    Yes I did.  I measure power at the debug connector, so disconnecting the debugger and cycling the power is required to measure power.

    Thanks!

    Javier

    JCard.3AuthorAnswer
    Graduate
    May 30, 2025

    I thought I'd provide an update on this, as it may help others with the same problem.

    I redesigned the PCB, this time swapping the STM32L053 with a STM32U083.  And things are better, much better.

     Measured current @ 3.3V Datasheet maxPasses Spec
    StandBy Mode0.19 uA0.205 uA:white_heavy_check_mark:
    STOP 16 uA8 uA:white_heavy_check_mark:
    STOP 20.95 uA2.5 uA:white_heavy_check_mark:

    I have not resolved this issue, but at least I can proceed with a different MCU family that behaves as documented.

    @Andrew Neil @Sarra.S 
    Thanks for your help on this.

    TLDR; If you want to get sub 1uA STOP supply currents with the STM32L053, swap it for an STM32U083 :grinning_face_with_sweat: