PAGE1
PAGE1
STM32G0系列的电源管理
1.电源管理概述
电源管理是STM32G0系列单片机中一个非常重要的部分,它直接影响到系统的可靠性和功耗。STM32G0系列单片机提供了多种电源管理功能,包括不同的低功耗模式、电源电压监控、电池备份寄存器等。这些功能使得STM32G0单片机在各种应用中都能表现出色的能效比。
2.低功耗模式
STM32G0系列单片机支持多种低功耗模式,以满足不同应用场景的需求。这些模式包括睡眠模式、停止模式和待机模式。每种模式都有其特定的功耗和唤醒时间,开发者可以根据实际需求选择合适的模式。
2.1睡眠模式
睡眠模式是最轻度的低功耗模式,CPU停止工作,但系统时钟和外设继续保持运行。这种模式适用于需要快速唤醒且功耗要求不高的应用。
2.1.1进入睡眠模式
进入睡眠模式的步骤如下:
关闭不需要的外设。
确保所有DMA传输已完成。
设置合适的中断源或事件源以唤醒CPU。
调用WFI(WaitForInterrupt)或WFE(WaitForEvent)指令进入睡眠模式。
//关闭不需要的外设
__HAL_RCC_USART1_DISABLE();
//设置RTC中断作为唤醒源
HAL_RTCEx_DeactivateWakeUpTimer(hrtc);
HAL_RTCEx_SetWakeUpTimer_IT(hrtc,RTC_WAKEUPCLOCK_RTCCLK_DIV16,10);//10秒唤醒一次
//进入睡眠模式
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);//清除唤醒标志
HAL_PWR_EnterSLEEPMode(PWR_LOWPOWERREGULATOR_ON,PWR_SLEEPENTRY_WFI);
2.2停止模式
停止模式中,CPU和大部分外设停止工作,系统时钟也停止。在这种模式下,功耗显著降低,但唤醒时间比睡眠模式稍长。停止模式适用于需要长时间低功耗运行的应用。
2.2.1进入停止模式
进入停止模式的步骤如下:
关闭不需要的外设。
确保所有DMA传输已完成。
设置合适的中断源或事件源以唤醒CPU。
调用HAL_PWR_EnterSTOPMode函数进入停止模式。
//关闭不需要的外设
__HAL_RCC_USART1_DISABLE();
//设置RTC中断作为唤醒源
HAL_RTCEx_DeactivateWakeUpTimer(hrtc);
HAL_RTCEx_SetWakeUpTimer_IT(hrtc,RTC_WAKEUPCLOCK_RTCCLK_DIV16,10);//10秒唤醒一次
//进入停止模式
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);//清除唤醒标志
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);
2.3待机模式
待机模式是最深度的低功耗模式,CPU和所有外设都停止工作,系统时钟也停止。在这种模式下,功耗极低,但唤醒时间最长。待机模式适用于需要长时间低功耗运行且不频繁唤醒的应用。
2.3.1进入待机模式
进入待机模式的步骤如下:
关闭不需要的外设。
确保所有DMA传输已完成。
设置合适的中断源或事件源以唤醒CPU。
调用HAL_PWR_EnterSTANDBYMode函数进入待机模式。
//关闭不需要的外设
__HAL_RCC_USART1_DISABLE();
//设置RTC中断作为唤醒源
HAL_RTCEx_DeactivateWakeUpTimer(hrtc);
HAL_RTCEx_SetWakeUpTimer_IT(hrtc,RTC_WAKEUPCLOCK_RTCCLK_DIV16,10);//10秒唤醒一次
//进入待机模式
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);//清除唤醒标志
HAL_PWR_EnterSTANDBYMode();
3.电源电压监控
STM32G0系列单片机内置了电源电压监控功能,可以检测电源电压是否在安全范围内。如果电源电压低于或高于设定的阈值,单片机会触发相应的中断或复位,以保护系统。
3.1电源电压监控配置
电源电压监控功能可以通过PWR(PowerManagement)模块进行配置。开发者可以设置低电压检测(LVD)和高电压检测(PVD)的阈值,并选择触发方式。
3.1.1低电压检测(LVD)配置
//使能PWR时钟
__HAL_RCC_PWR_CLK_ENABLE();