ST意法半导体
直播中

小芳

14年用户 1022经验值
私信 关注
[问答]

STM32U5偶尔出现无法进入shutdown模式,为什么?

void sys_api_power_shutdown(void){    HAL_Suspendtick();    __disable_irq();    /* Enable WakeUp Pin PWR_WAKEUP_PIN2 connected to PC.13 */    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2_HIGH_1);    /* Clear wake up flag */    __HAL_PWR_CLEAR_FLAG(PWR_WAKEUP_ALL_FLAG);    /* delay */    sys_api_nop(10);    /* Enter the shut down mode */    HAL_PWREx_EnterSHUTDOWNMode();}请问,通过上述代码进入shutdown模式,偶尔会出现进入失败的情况,现象是功耗没有降下去,并且IO口没有被重置,我在进入之前进行了systick关闭和全部中断的禁用,我确认PWR->BDCR1中的PWR_BDCR1_BREN位是0,并且清除了全部的唤醒标志,还给了一定的延时。

回帖(1)

北京烤鸭

2025-3-10 16:21:40

STM32U5偶尔无法进入Shutdown模式的问题可能由多种原因引起。以下是一些可能的原因和排查建议:


1. 中断未完全禁用



  • 在进入Shutdown模式之前,代码中调用了__disable_irq()来禁用所有中断。然而,某些中断可能在禁用之前已经被触发,导致系统无法顺利进入Shutdown模式。

  • 建议:在禁用中断之前,确保所有中断标志位已被清除。可以使用__HAL_PWR_CLEAR_FLAG()清除所有可能的唤醒标志。


2. 唤醒引脚配置问题



  • 代码中启用了PWR_WAKEUP_PIN2_HIGH_1作为唤醒引脚。如果该引脚在进入Shutdown模式之前或期间被意外触发,可能会导致系统无法进入Shutdown模式。

  • 建议:检查唤醒引脚的硬件连接和配置,确保在进入Shutdown模式之前该引脚处于稳定状态。可以在进入Shutdown模式之前增加一段延时,确保引脚状态稳定。


3. 电源管理寄存器配置问题



  • 进入Shutdown模式时,电源管理寄存器的配置可能不正确,导致系统无法顺利进入Shutdown模式。

  • 建议:检查HAL_PWREx_EnterSHUTDOWNMode()函数的实现,确保所有相关寄存器配置正确。可以参考STM32U5的参考手册,确认Shutdown模式的进入条件。


4. 系统时钟或外设未正确关闭



  • 在进入Shutdown模式之前,某些系统时钟或外设可能未正确关闭,导致系统无法进入低功耗模式。

  • 建议:在进入Shutdown模式之前,确保所有不必要的外设和时钟已被关闭。可以使用__HAL_RCC_APB1_FORCE_RESET()等函数强制复位外设。


5. 硬件问题



  • 硬件问题,如电源噪声、引脚电平不稳定等,也可能导致系统无法进入Shutdown模式。

  • 建议:检查硬件电路,确保电源和引脚电平稳定。可以使用示波器观察相关引脚的电平变化。


6. 软件延时不足



  • 代码中使用了sys_api_nop(10)进行延时,但这个延时可能不足以确保所有操作完成。

  • 建议:增加延时时间,或者使用HAL_Delay()函数进行更可靠的延时。


7. 固件版本问题



  • STM32U5的固件版本可能存在已知问题,导致Shutdown模式无法正常进入。

  • 建议:检查STM32U5的固件版本,并更新到最新版本。可以参考ST的官方发布说明,确认是否存在相关问题的修复。


8. 调试工具影响



  • 如果使用调试工具(如ST-Link)进行调试,调试工具可能会影响系统的低功耗模式。

  • 建议:在测试Shutdown模式时,断开调试工具,直接运行代码。


9. 其他外设干扰



  • 其他外设(如看门狗定时器、RTC等)可能干扰Shutdown模式的进入。

  • 建议:检查并关闭所有可能干扰Shutdown模式的外设。


10. 系统复位或异常



  • 系统可能在进入Shutdown模式之前发生了复位或异常,导致无法正常进入Shutdown模式。

  • 建议:检查系统的复位源和异常处理机制,确保系统在进入Shutdown模式之前处于正常状态。


总结


通过以上排查步骤,可以逐步定位STM32U5偶尔无法进入Shutdown模式的原因。建议从软件配置、硬件连接、电源管理等方面逐一排查,确保系统能够顺利进入Shutdown模式。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分