2025-03-10 9:33 AM - edited 2025-03-10 11:11 AM
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:
theoritical | measured | |
RUN 1 | 3,75 mA | 5 mA |
LPSleep FlashOff | 61,5 µA | 50 µA |
STOP 2 | 805 nA | 600 nA |
STBY + RTC | 345 nA | 600 nA |
SHUTDOWN | 7 nA | 100 nA |
and these with the U083:
theoritical | Measured | |
RUN 1 | 3,75 mA | 3,82 mA |
LPSleep FlashOff | 61,5 µA | 55 µA |
STOP 2 | 805 nA | 815 nA |
STBY + RTC | 345 nA | 360 nA |
SHUTDOWN | 7 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
2025-03-11 12:58 AM
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.
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.
2025-03-11 1:18 AM
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
2025-03-11 1:33 AM
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.
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.
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.
2025-03-11 11:43 AM
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();
}
2025-03-12 6:38 AM
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.
2025-03-12 1:10 PM
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.