2025-05-12 12:14 AM - last edited on 2025-05-12 1:54 AM by Andrew Neil
Hi everyone,
I'm facing a frustrating issue and would really appreciate any help or insight you could provide.
I’m trying to get the STM32WB55CGU6 into STOP2 mode, but I consistently see current consumption over 600 µA, both on my custom PCB and on the WeActStudio.STM32WB55CoreBoard. I’ve been stuck here for days and can’t make progress with my project because of this.
Here’s what I’ve done so far:
Thoroughly studied AN5071 and AN5289.
Read several community posts and blogs from users with similar problems.
Ported the official examples PWR_STOP2_RTC and PWR_EnterStopMode to my MCU.
Verified that the project builds correctly and behaves as expected, except for the power consumption.
Despite following all the steps I could find, the current remains way too high. I would expect it to be in the range of a few microamps.
Here’s a screenshot from my PPK2 measurements:
(I would expect that when LED is off, the STOP2 mode would be much more evident in terms of consumption)
To be extra sure, I followed a careful MWE (Minimal Working Example) generation process for PWR_STOP2_RTC:
Created a fresh CubeIDE project targeting STM32WB55CGU6.
Matched the .ioc settings as closely as possible, including all clock configurations.
Closed CubeIDE.
Manually transferred all relevant source files from the example project, double-checking for compile errors.
Only minor change: I increased the LED-on delay to 5000 ms to make power transitions more visible.
Here is a comparison of both project structures:
Original example:
. ├── EWARM (skip) ├── Inc │ ├── main.h │ ├── stm32wbxx_hal_conf.h │ ├── stm32wbxx_it.h │ └── stm32wbxx_nucleo_conf.h ├── MDK-ARM (skip) ├── PWR_STOP2_RTC.ioc ├── readme.txt └── Src ├── main.c ├── stm32wbxx_hal_msp.c ├── stm32wbxx_it.c └── system_stm32wbxx.c
My ported project:
. ├── Core │ ├── Inc │ │ ├── main.h │ │ ├── stm32wbxx_hal_conf.h │ │ └── stm32wbxx_it.h │ ├── Src │ │ ├── main.c │ │ ├── stm32wbxx_hal_msp.c │ │ ├── stm32wbxx_it.c │ │ ├── syscalls.c │ │ ├── sysmem.c │ │ └── system_stm32wbxx.c │ └── Startup │ └── startup_stm32wb55cgux.s ├── Drivers │ ├── CMSIS │ │ ├── Device │ │ │ └── ST │ │ │ └── STM32WBxx │ │ │ ├── Include │ │ │ │ ├── stm32wb55xx.h │ │ │ │ ├── stm32wbxx.h │ │ │ │ └── system_stm32wbxx.h │ │ │ ├── LICENSE.txt │ │ │ └── Source │ │ │ └── Templates │ │ ├── Include │ │ │ ├── cmsis_armcc.h │ │ │ ├── ... │ │ │ └── tz_context.h │ │ └── LICENSE.txt │ └── STM32WBxx_HAL_Driver │ ├── Inc │ │ ├── Legacy │ │ │ └── stm32_hal_legacy.h │ │ ├── ... │ │ └── stm32wbxx_ll_utils.h │ ├── LICENSE.txt │ └── Src │ ├── stm32wbxx_hal.c │ ├── ... │ └── stm32wbxx_ll_rcc.c ├── Makefile ├── PWR_STOP2_RTC.ioc ├── STM32WB55CGUX_FLASH.ld └── STM32WB55CGUX_RAM.ld
I've attached my full CubeIDE project in case anyone is willing to take a quick look — maybe I’m missing something obvious.
I’m really stuck here, and the power consumption is a blocker for my battery-powered application. I’d be very grateful for any tips, debugging suggestions, or guidance — even the smallest hint could help!
Thank you very much in advance