初学stm32 --- 电源监控
目录
STM32 电源监控介绍
上电/掉电复位POR/PDR(F1)
可编程电压检测器(PVD)(F1)
PVD相关寄存器介绍(F1)
电源控制寄存器 PWR_CR
电源控制/状态寄存器 PWR_CSR
PVD相关HAL库驱动介绍
PVD的使用步骤
STM32 电源监控介绍
电源监控即对某些电源电压(VDD / VDDA / VBAT)进行监控。
POR/PDR监控器、PVD监控器、 BOR监控器、AVD监控器、VBAT阈值、温度阈值
POR/PDR(power on/down reset):上电/掉电复位
PVD(programmable voltage detector):监控VDD 电压
BOR(brown out reset):欠压复位
AVD(analog voltage detector):监控VDDA电压
VBAT阈值(battery voltage thresholds):监控VBAT电池电压
温度阈值(temperature thresholds):监控结温
注意:不同芯片包括的电源监控功能不同,都有POR/PDR,PVD。
上电/掉电复位POR/PDR(F1)
外部供电电压低于电压阈值,就会直接进入复位状态,防止电压不足导致的误操作。
上电时,当VDD < VPOR阈值时,系统无需外部复位电路便会保持复位状态。
当VDD > VPOR阈值时,系统便退出复位状态,正常工作。
掉电时,当VDD < VPDR阈值时,系统就会保持复位状态。
参考相应数据手册电气特性部分5.3.3
VPOR阈值(典型值)为1.92V 、 VPDR阈值(典型值)为1.88V
可编程电压检测器(PVD)(F1)
作用:
监视供电电压VDD。
当电压下降到设定阈值以下时产生中断,通知软件做紧急处理;
当电压恢复到设定阈值以上时产生中断,通知软件供电恢复。
供电下降的阈值和上升的阈值有固定差值,是为了防止电压在阈值上下小幅度抖动,而频繁产生中断。
PVD阈值有8个等级,有上升沿和下降沿区别。
PVD相关寄存器介绍(F1)
中断相关的寄存器:EXTI_IMR、EXTI_RTSR、EXTI_FTSR、EXTI_PR
电源控制寄存器 PWR_CR
电源控制/状态寄存器 PWR_CSR
通过位2判断此时电压与设定的电压阈值关系
PVD相关HAL库驱动介绍
PVD HAL库相关结构体
typedef struct {
uint32_t PVDLevel; /* PVD检测级别 */
uint32_t Mode; /* PVD的EXTI检测模式 */
} PWR_PVDTypeDef;
PVD的使用步骤
1、使能电源时钟: __HAL_RCC_PWR_CLK_ENABLE
2、配置PVD: 通过HAL_PWR_ConfigPVD配置电压级别、中断线边沿触发
3、使能PVD检测: HAL_PWR_EnablePVD
4、设置PVD中断优先级: HAL_NVIC_SetPriority HAL_NVIC_EnableIRQ
5、编写中断服务函数:
PVD_IRQHandler
HAL_PWR_PVD_IRQHandler
HAL _PWR_PVDCallback