Skip to main content
Associate III
April 4, 2024
Question

STM32WB55 - Achieve lowest possible power mode

  • April 4, 2024
  • 1 reply
  • 5115 views

Hi,

I've been searching for information on how to achieve a shutdown on both the MCU cores. The goal is to periodically wake the system with an RTC, read sensor data and emit a report. I have found some information on the need to set the correct flags to enable different power modes calling 

 

LL_C2_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN);
 LL_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN);
 
But when i call HAL_PWREx_EnterSHITDOWNMode() the system still consumes about 2mA which is way over the spec.
 
Is there any required "manual shutdowns" to achieve the lowest power level?
 
I am using several peripherics apart from RF: I2c1, adc

1 reply

Lubos KOUDELKA
ST Employee
April 5, 2024

Hi Jorge,

which board do you use?
On STM32WB55 nucleo board you can try to run following example:
https://github.com/STMicroelectronics/STM32CubeWB/tree/master/Projects/P-NUCLEO-WB55.Nucleo/Examples/PWR/PWR_STANDBY_RTC

With this example you should reach expected power consumption and then follow steps done in this project also in your project/target board. Additionally please check also following example to disable RF (and set CPU2 to enter standby) prior set MCU into standby
https://github.com/stm32-hotspot/STM32WB-BLE-standby

For I2C and ADC peripheral you don't need to do make any additional setting as those peripherals are not available standby, it will be turned off automatically. You should just manage all GPIO pins - where possible set GPIO to analog and disable its clock source.

Best regards,
Lubos

Associate III
April 9, 2024

Hi Lubos,

I'm using the Nucleo Board WB55RG and developing my own board with an STM32WB55CGU6TR microcontroller.

Thank you for your reply, I already did the standby mode. However, I tried to do the shutdown mode but I have some difficulties. In the shutdown mode, I can't use the Internal interrupt (LSI) and I need to use the external interrupt (LSE), correct? I do this and it is working, but it is consuming more than in Standby Mode.  Do you know why, is it normal? I test it in Nucleo Board WB55RG.

Best Regards,

Jorge

 

 

Andrew Neil
Super User
April 9, 2024

@Jorge Alves wrote:

 Internal interrupt (LSI) and I need to use the external interrupt (LSE)


Those are oscillators (clock sources) - not interrupts.

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.