cancel
Showing results for 
Search instead for 
Did you mean: 

B-U585I-IOT02A StopMode power consumption issue

MrAzn69
Associate II

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.

  1. I've disabled all SRAM and everything else in the PWR section in CubeMX
  2. I have my voltage scale at range 4
  3. My clock is at 16MHz
  4. I set all my pins to analogue
  5. I suspended and resumed tick in case stopmode was leaving early.
  6. I've tried following the workshops and examples from other similiar stm32u5 products, no luck.

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.

 

7 REPLIES 7
RBENF.1
ST Employee

Hello @MrAzn69,

Can you please provide your full project?

Regards, Ryan

Aime
ST Employee

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:

  • Just to confirm, are you using the STM32U5 discovery kit? If yes, did you make any change  (disconnect or connect something) on it?
    For the software:

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.

Aime_2-1688410646373.png

Please let me know if you still have this overconsumption.

Best regards,

Aime

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 

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

maxwellfite
Associate III

@Aime would you be able to provide the steps required in configuring the .ioc file for using this example on the given chip/board?

maxwellfite
Associate III

@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!

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).