cancel
Showing results for 
Search instead for 
Did you mean: 

Current error measurement on nucleo U031

Seth1er
Associate II

Hello all, 

 

I made a custom board with a STM32U031 and measure the standby and standby+RTC current. The value was very high (µA), so I tried with 2 nucleo board, U031 and U083 with the PWR selection exemple code from ST.

 

And I also check this video with the measurements:

ST Ultra-Low Power MCU STM32U0 in Action: Exploring Run Modes & Measuring Currentyoutube.com

 

And I have these results with the U031:

 theoriticalmeasured
RUN 13,75 mA5 mA
LPSleep FlashOff61,5 µA50 µA
STOP 2805 nA600 nA
STBY + RTC345 nA600 nA
SHUTDOWN7 nA100 nA

 

and these with the U083:

 theoriticalMeasured
RUN 13,75 mA3,82 mA
LPSleep FlashOff61,5 µA55 µA
STOP 2805 nA815 nA
STBY + RTC345 nA360 nA
SHUTDOWN7 nA(<100nA)

 

So I don't understand why I can't reach the value with the U031. 

can someone help me to understand my mistake and find the issue?

 

Thanks for your help

6 REPLIES 6
KDJEM.1
ST Employee

Hello @Seth1er,

Could you please refer to the STM32U031 datasheet and check the maximum current consumption precisely table 41. Current consumption in Shutdown mode. The current consumption in shutdown mode may exceed 100 nA for certain conditions and temperatures.

KDJEM1_1-1741679794176.png

Thank you.

Kaouthar

 

 

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.

Seth1er
Associate II

hello, 

thank you for your reply.

The test is done with 3.3V at ambient temperature, (below 30°C).

 

but the issue here is more about the standby current than the shutdown that is not in the expected value.

maybe I miss something, if you have an idea on it please tell me.

 


BR

KDJEM.1
ST Employee

Hello @Seth1er,

 

Thank you for updating post.

I noted that the standby current consumption with RTC may exceeds 600 nA for STM32U031 as shown in DS14581 - Rev 2 (STM32U031) table 40. Current consumption in Standby mode.

KDJEM1_1-1741681879512.png

 

For STM32U083 also the standby current consumption with RTC may exceeds 360 nA. Please take a look at  Table 41. Current consumption in Standby mode DS14463 - Rev 2.

KDJEM1_0-1741681835447.png

 

I made a custom board with a STM32U031 and measure the standby and standby+RTC current. The value was very high (µA)

--> what value did you find? and under what conditions (the RTC clock source)?

May be these FAQs can help you:

How to minimize the power consumption in low power... - STMicroelectronics Community

Tips for using STM32 low-power modes - STMicroelectronics Community

I hope this help you.

Thank you.

Kaouthar

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.

Seth1er
Associate II

thank you. for the moment I let My own board and try with Nucleo U031 and 83.

with the exemple PWR_modeselection, in mode 02 standby+RTC, at 3.3V, I can have 600nA with the 031 and 345nA with the 083.

 

so I try with the nucleoU083 my own code to enter in standby mode +RTC in order to reach 300nA at 3.3V, with ENULP and LPCAL = 1, but I only have 600nA. I can't found yet what I'm missing. I try to understand all the code of the exemple to found my issue on the U083, and then try it on the U031.

Thx if you can see something wrong with my code.

BR

void Enter_standby(void)
{



    // Clear Standby and Wake-up flags
    PWR->SCR |= PWR_SCR_CSBF | PWR_SCR_CWUF;

    PWR->CR3 &= ~PWR_CR3_RRS;  // Disable SRAM2 retention
    PWR->CR3 |= PWR_CR3_ENULP; // Enable Ultra Low Power mode
    // Disable RTC write protection
   	RTC->WPR = 0xCA;
   	RTC->WPR = 0x53;
    // Enable Low Power Calibration for RTC
    RTC->CALR |= RTC_CALR_LPCAL;



    // Set LPMS bits to '011' for Standby Mode (PWR_CR1_LPMS_1 | PWR_CR1_LPMS_0)
    PWR->CR1 = (PWR->CR1 & ~PWR_CR1_LPMS_Msk) | (PWR_CR1_LPMS_1 | PWR_CR1_LPMS_0);

    // Ensure Flash is powered down during Standby (saves more power)
    PWR->CR1 |= PWR_CR1_FPD_LPSLP;

    // Disable unused peripherals (make sure you use correct register names)
    RCC->AHBENR &= ~RCC_AHBENR_DMA1EN; // Disable DMA1
    RCC->APBENR1 &= ~(RCC_APBENR1_USART2EN | RCC_APBENR1_I2C1EN); // Disable USART2, I2C1
    RCC->APBENR2 &= ~RCC_APBENR2_ADCEN; // Disable ADC

    // Disable debug interface to save power (SWD)
    DBGMCU->CR &= ~DBGMCU_CR_DBG_STOP;  // Disable Debug Stop mode

    // Set SLEEPDEEP bit to enter deep sleep mode
    SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
    __HAL_RCC_GPIOA_CLK_DISABLE();
    __HAL_RCC_GPIOB_CLK_DISABLE();
    __HAL_RCC_GPIOC_CLK_DISABLE();

    //RCC->CR &= ~RCC_CR_HSEON;
    //RCC->BDCR &= ~RCC_BDCR_LSEON;

    // Enter Standby mode with WFI
    __WFI();
}

 

KDJEM.1
ST Employee

Hello @Seth1er;

 

Make sure that all unused GPIOs are set to analog mode to minimize the current consumption.

In addition, check that no peripherals are left activated by mistake, which could increase power consumption.

Thank you.

Kaouthar

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.

Seth1er
Associate II

ok thanks for your reply. I will check it asap.

 

But one question:

Why, with the st code example PWR_modeselection, in mode 02, Standby+RTC, powered at 3.3V, 

the nucleo U031 and U083 have respectively 600nA and 360nA?

 

In the data sheet, both consumption are similare.

for exemple,

with ENULP and LPCAL = 1, 285nA for U083 and 300 for U031

with ENULP and LPCAL = 0, 690nA for both

For me, with the same code, on both board, I must have very similar results, not double.