cancel
Showing results for 
Search instead for 
Did you mean: 

NUCLEO-G491RE Standby mode power consumption test

LPetr.1
Senior II

I have ordered NUCLEO-G491R to test STANDBY mode power consumption. The power consumption measurements are taken via the PPK2 from Nordic.

https://www.nordicsemi.com/Products/Development-hardware/Power-Profiler-Kit-2
The steps:

1. Take STM32CubeMX example project PWR_SHUTDOWN that is available for the Nucleo board.

LPetr1_0-1768826358525.png



2. Program the board (ensure the JP5 jumper is at the 5V_STLK position)

3. Remove the JP5 jumper because we will be powering the board via the external 3V3 (PPK2)

LPetr1_2-1768826475933.png

 

4. Connect the PPK2 to 3V3 and GND on the board.

LPetr1_0-1768827059286.png

 

5. Start sampling




See the results below:

LPetr1_3-1768826508611.png

When the device enters STANDBY, the current consumption is measured at about 1.5mA which is way above what is declared on the datasheet.

What could be the reason that I cant achieve the declared current consumption for the STANDBY mode via the official example project? I am convinced that measurements of the PPK2 are valid as I have used this board in the past to measure very low currents and it was showing reasonable results.

Thanks in advance for any tips/suggestions.

19 REPLIES 19

@LPetr.1 wrote:

my hardware knowledge is somewhat limited 


unfortunately, hardware is critical here - it's not just a software issue.

When the microcontroller's consumption is only a few uA, then it only takes a few uA of leakage elsewhere in the circuit to "swamp" that...

 


@LPetr.1 wrote:

regarding the

  • Target VDD measurement by the ST-Link.

It is not fully clear what you mean, perhaps you could clarify?


When you connect to, say, CubeProgrammer, you'll see that it reports the Target voltage.

To do this, the ST-Link needs a connection to the MCU supply in order to measure it.

In this case, it looks like you're OK:

AndrewNeil_0-1768910223675.png

The "3V3" there is isolated by removing JP6.

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

I have read the articles and tried a blank project where I have configured:

1. Set all pins as analog 
2. Suspend SysTick before entering shutdown mode (thats probably not relevant for Shutdown mode but I did it anyways).

No luck, still about 260 uA current consumption

Understood, thanks.

I know that Hardware is critical here. We have our own custom STM32G4 based board that we eventually want to make low power, but we have decided to test current consumption on the Nucleo board as we hoped this would be more reliable and we would have a good reference for our custom board. We were hoping it would work right out of the box since its an official ST example board. Sadly thats not the case :( 

LPetr.1
Senior II

What is also concerning that when measuring the total board power consumption when powering the board via external 3V3, its about 1.4mA (even with all the SB's opened and disconnected) 

And when measuring via JP6 is around 260uA

So despite the fact that the current consumption of the MCU is way above what it should be, I also cannot wrap my head around why the total board power consumption is 1.4 mA, even with all pins configured as analog. What could be drawing so much current ?

The total board power includes the ST-Link, LEDs, etc ...

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

Sure, but when I power via the external 3V3 ST-Link is not being powered (its using seperate 3V3_STLK).
I have configured all pins as analog, so any existing LED's should not really matter, furthermore, I have opened the SB6 and SB16 which disabled the user the only user LED and user button.

There is pretty much nothing else that could be consuming power on 3V3 line, but there is somehow 1mA which confuses me.

LPetr.1
Senior II

I continue my experimentation:

I have opened all solder bridges apart the two:
SB11 and SB38

At this point I feel like I have removed almost everything what's possible.

When powering the board via the external 3V3, the board current consumption is 600-700uA, the MCU itself current consumption is around 260uA

I am not sure what else I could try/measure to understanding what is happening and what causing the current to be higher than expected. I am considering removing (desoldering) the components one by one from the board that could have such affect but not sure if that makes any sense.

Also, I have not managed to find any information online (articles/tutorials or youtube videos) that would show proof and examples of STM32G series low power results. All STM low power information online is related to STM32L or STM32F series which is unfortunate

Gyessine
ST Employee

Hello @LPetr.1 

Can you please try to run the attached project and measure the current consumption on your Nucleo board? Also, compare the results with your custom PCB to evaluate the current hardware against the Nucleo board.

I tested standby mode with the Nucleo G491 and measured several tenths of microamperes. I could not reach 1.4 mA.

The board already consumes 1 mA in run mode.
Also try to measure it using a calibrated ammeter
BR
Gyessine

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Gyessine
ST Employee

Hello @LPetr.1 

After further investigation, higher power consumption results from two main causes:

  • PB8-BOOT0 pin: Based on the product datasheet  it's not recommended to leave this pin unconnected, because it does not support analog input mode. If the pin is configured as BOOT0, set a defined logic level to ensure proper entry into the bootloader. If the pin is configured as PB8 by reprogramming the nSWBOOT0 option bit, it operates as a standard GPIO; however, analog input mode is not available. You likely removed jumper JP7 (BOOT0 jumper) on the Nucleo board, so pin PB8-BOOT0 is floating and causes power consumption depending on noise on this pin. Touching this pin changes the power consumption.

    Gyessine_0-1770024512347.png
  • Debug registers: You probably tried to debug the project, which activated the debug registers and caused the 1.4 mA consumption. You must clear the debug registers manually after each debug session when you want to run the project again. Try to insert the appropriate code to clear the debug registers.
    You can use this code sequence :

  • DBGMCU->CR &= ~(DBGMCU_CR_DBG_SLEEP    |
                          DBGMCU_CR_DBG_STOP     |
                          DBGMCU_CR_DBG_STANDBY);
    
          // If your device has APB1/APB2 freeze bits and you want timers to run
          // while debugger is attached, clear those as well.
          DBGMCU->APB1FZR1 = 0x00000000U;
          DBGMCU->APB1FZR2 = 0x00000000U;
          DBGMCU->APB2FZ   = 0x00000000U;  /* USER CODE END Init */

Here is a screenshot where I managed to get nA consumption with these tips.

Gyessine_1-1770024670112.png

 

If your issue still persists, please do not hesitate to provide feedback.

If this information solves your issue, mark it as a solution so that other ST community users can reference it.

Gyessine



 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.


@Gyessine wrote:
  • Debug registers: You probably tried to debug the project, which activated the debug registers and caused the 1.4 mA consumption. You must clear the debug registers manually after each debug session when you want to run the project again. Try to insert the appropriate code to clear the debug registers.

@LPetr.1  Also note that clearing this can require a full power-cycle - not just a reset - as I mentioned earlier.

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.