2023-06-27 09:02 AM
Hello, I'm trying to use the stm32u5 585 and I'm having a bad time trying to figure out what I am doing wrong. I am getting about 1.2mA in stop mode 2 when I should be getting around 8.95+ uA.
Can someone please clarify? Please explicitly write the steps of how to achieve micro-amps in stop mode. I am using JP3 to measure current consumption to my stm32u5 chip.
2023-07-02 10:27 PM
2023-07-03 11:57 AM
Hi @MrAzn69 ,
This issue can be due to the wrong hardware connection or a something in your application that prevents your device to enter in Stop 2 mode.
For the hardware:
Please try to reproduce the datasheet consumption by using the example "PWR_LPMODE_RTC" available on STM32CubeMX.
This example will show you how to enter the system to different available low power modes (Sleep, Stop0/1/2/3, Standby, Shutdown) and wake up from these modes by using an interrupt from RTC wakeup timer.
Please let me know if you still have this overconsumption.
Best regards,
Aime
2023-10-13 10:58 AM
Hello Aime, thanks for replying. How come there is no "PWR_LPMODE_RTC" for the stm32u5 discovery kit 2? I checked the example you suggested and the example was not very helpful. It didn't elaborate on the standards needed, it simply said the example was multi-configurable by uncommenting main.h definitions? Is there a repo or example using the actual generic drivers a user would use to enable the lower power features? @Aime
2023-10-17 09:24 PM
Hello @MrAzn69 ,
The PWR_LPMODE_RTC example on U5, is not depending on the board that you are using, it is the basic steps by steps example to show how to enter in different low power modes (Sleep, Stop0/1/2/3, Standby and Shutdown) on U5. It works on both Nucleo and Discovery boards.
Yes, you have to select the low power mode in the main.h file, and in the main.c , stm32u5xx_hal_msp.c, stm32u5xx_it.c files you will find all configurations (GPIO, System Clock, Power range...) and functions used to enter in the selected low power mode.
For instance, if I want to enter in Stop 2 mode and wakes up from the RTC, the example shows that:
1 - We set the LSE drive configuration to medium high with __HAL_RCC_LSEDRIVE_CONFIG() (in main.c)
2 - We config the System Clock, and SystemPower (in main.c)
3 - We put all the GPIOs in analog input in the function MX_GPIO_Init() (main.c)
4 - We configure the Icache is needed in the function MX_ICACHE_Init() (main.c)
5 - We initialize the RTC and set the interrupt in MX_RTC_Init() (main.c and stm32u5xx_hal_msp.c)
6 - Enter in Stop 2 mode with HAL_PWREx_EnterSTOP2Mode() as we want to wake up with an interruption, we use the argument PWR_STOPENTRY_WFI
Once wake up after 10 seconds the program reset and re-enter in the Stop 2 mode.
I am sorry to hear that this example is not helpful, how can I help you?
Thanks,
Aime
2024-03-01 11:48 AM
@Aime would you be able to provide the steps required in configuring the .ioc file for using this example on the given chip/board?
2024-03-01 12:22 PM
@Aime I tried running the examples from the repository below as is and I am only seeing a standby current of ~7 mA after running the example. Do I need to modify the example?
https://github.com/STMicroelectronics/STM32CubeU5/tree/main/Projects/B-U585I-IOT02A/Examples/PWR
Thank you!
2024-03-01 09:00 PM
Dio you measure the entire board current? Is this value you see for the entire board or just for the MCU itself?
If your board has other components, chips, pull-ups/pull-downs... no wonder why the sleep current is "so high".
My suggestion:
measure the current (of entire board) when you hold MCU in reset. How large is it?
This gives you an indication how low you can potentially go with the entire board (if MCU goes to deep sleep).