2025-07-01 4:03 AM - edited 2025-07-01 5:33 AM
Hi everyone,
I’m working with the NUCLEO - WB15CC board and I’m trying to enter STOP1 mode to minimize current consumption. However, despite disabling all unnecessary peripherals, the power consumption remains unexpectedly high (much higher than in the PWR_STOP1 example provided by STM32Cube, which works fine on the same board).
Called HAL_SuspendTick() before entering STOP mode and HAL_ResumeTick() after wakeup
Called hci_reset() to reset the BLE stack
Configured all GPIOs as analog with no pull (using GPIO_AllAnalog())
Disabled clocks for all unused peripherals:
Despite all of this, I’m still seeing much higher current than expected. Strangely, if I flash the official PWR_STOP1 example from STM32Cube, it works perfectly and the consumption is very low (100 uA).
Also if I set LL_PWR_MODE_STANDBY the consuption is low indeed, but it is ok for me stop mode that should be around 100-200 uA. However using an amperometer I reach 3mA...
What could be preventing STOP1 mode from reducing the current properly in my application, even though all peripherals and interrupts seem to be handled correctly? Are there hidden wake-up sources or configuration steps I might be missing?
Any insights would be highly appreciated!
Solved! Go to Solution.
2025-07-02 1:02 AM
Hello,
it's not necessary to implement entering stop mode since the BLE examples include low power manager. The MCU enters low power mode automatically when there is no pending task in the sequencer.
Best regards,
Filip Kremen
2025-07-02 3:40 AM
Thanks to everyone for the support. I finally managed to significantly reduce the power consumption in STOP1 mode.
The issue was that, even though I thought all unused peripherals were disabled, some GPIO ports and timers were still consuming current. After manually disabling specific GPIO ports and turning off timers like TIM1 and TIM2 (usingHAL_TIM_Base_DeInit and HAL_GPIO_DeInit) , the current dropped to about 18 µA, which is in line with expectations for STOP1 mode