cancel
Showing results for 
Search instead for 
Did you mean: 

STM32U585 - Low Power Mode and UART DMA Issue

shivss
Associate II

Dear STMicroelectronics Support Team,

I am working with the STM32U585I-IOT02A development board, and I need assistance with the following:

  • Entering and waking from low power modes (STOP2 or STANDBY) using the RTC wakeup timer
  • Configuring UART1 with DMA and ensuring it resumes correctly after waking up
  • Handling interrupts before and after sleep modes

I have tried implementing the configuration using STM32CubeIDE and HAL libraries. However, I'm encountering issues where UART DMA does not resume correctly after wake-up.

I would appreciate any official guidance or example code specific to STM32U585.

1 REPLY 1
Aime
ST Employee

Hi @shivss ,

Managing low power modes with RTC wakeup and ensuring UART with DMA resumes correctly on the STM32U585I-IOT02A requires careful configuration of the power, clock, UART, DMA, and interrupt systems.


UART DMA must be properly initialized before entering low power mode.

  • After wakeup, DMA streams and UART peripheral clocks may be off and need re-enabling.
  • Re-initialize or restart DMA reception after wakeup.
  • Use circular mode for continuous reception if applicable.

Important:

Before entering STOP2/STANDBY:

  • Ensure all interrupts you want to wake the MCU are enabled.
  • Clear any pending interrupt flags.
  • Suspend or stop peripherals if needed.

After wakeup:

  • Reconfigure system clocks (PLL, HSE, etc.).
  • Re-enable peripheral clocks (UART, DMA).
  • Re-initialize or restart peripherals (UART DMA reception).
  • Clear wakeup flags.

Here are official example and resources for STM32U5 Series to help you out.

STM32CubeU5 Firmware Package:
Contains examples for low power modes, RTC wakeup, UART with DMA, and power management.
Download from STMicroelectronics website or via STM32CubeIDE Package Manager.
 

Example Projects to Check:

  • Projects/STM32U585I-EV/Examples/PWR/PWR_STOP2_RTC_WakeUp
  • Projects/STM32U585I-EV/Examples/USART/USART_DMA

Here is a simple snippet example combining all, the sytemclock configuration and USART/DMA enabling operations can be performed outside the Callback e.g in the int_main function

 

Best regards,
Aime