STM32PVD低电压检测
STM32PVD低电压检测
好的,我们来详细解释一下 STM32 中的 PVD (Programmable Voltage Detector - 可编程电压检测器),特别是它在低电压检测方面的应用。
一、PVD 是什么?
PVD 是 STM32 微控制器内部集成的一个硬件功能模块。它的核心作用就是实时监控微控制器的主电源电压 (VDD/VDDA)。当 VDD/VDDA 的电压下降到用户预先设定的一个阈值 (VPVD) 以下时,PVD 能立即产生相应的信号。
二、PVD 如何用于低电压检测?
- 电压比较器: PVD 内部包含一个比较器。
- 可编程阈值 (VPVD): 用户可以通过配置特定的寄存器位 (通常是
PWR_CR寄存器中的PLS[2:0]位) 来设置一个检测阈值电压 (VPVD)。这个阈值通常在芯片参考手册中给出一个范围(例如 2.0V - 2.9V,具体范围取决于芯片型号),并有多个可选的档位(如 2.0V, 2.1V, 2.3V, 2.5V, 2.7V, 2.9V)。 - 监控 VDD: 比较器会持续地将当前的实际 VDD/VDDA 电压与预设的 VPVD 阈值进行比较。
- 检测到低压: 当 VDD 的电压低于设定的 VPVD 阈值时,比较器输出状态改变。
- 产生信号:
- 中断: PVD 可以配置为产生一个中断请求。这是最常见的方式。当低压被检测到时,CPU 会跳转到对应的中断服务程序 (PVD_IRQHandler)。
- 事件: PVD 也可以配置为产生一个事件。这个事件可以直接连接到 NVIC 用于唤醒,或者(在某些型号上)连接到内部的复位发生器(PVD_RST),当电压跌落到 VPVD 以下时自动触发芯片复位(后一种用法有时也称为 POR/PDR 或 BOR 复位)。
- 状态标志: 无论是否使能中断/事件,PVD 的检测状态(VDD < VPVD?)都会反映在一个状态寄存器位(通常是
PWR_CSR或PWR_EXTSCR中的PVDO/PVD1/PVMO等位)上,软件可以随时读取查询。
三、为什么要用 PVD 做低电压检测?主要应用场景
- 安全关闭/数据保护: 这是最重要的应用。当系统供电不足(如电池耗尽、电源故障、大负载瞬变)导致 VDD 急剧下降时,正常的程序执行会变得不可靠,RAM 内容甚至寄存器都可能丢失。PVD 可以在 VDD 降至可能导致“代码乱飞”或“数据丢失”的临界点之前(即低于 CPU/存储器可靠工作的最小电压之前)提前预警。
- 怎么用? 将 VPVD 阈值设置为略高于芯片要求的最小工作电压(例如,芯片要求在 1.8V 以上工作,可将 VPVD 设为 2.0V 或 2.1V)。在 PVD 中断服务函数中:
- 立即保存关键数据到非易失性存储器(如 Flash, EEPROM, 备份寄存器)。
- 关闭外设以降低功耗,防止不确定状态。
- 可能进入低功耗停机模式等待电压恢复或彻底关闭。
- 目的: 在系统完全崩溃前保存用户设置、运行状态、测量数据等关键信息。
- 怎么用? 将 VPVD 阈值设置为略高于芯片要求的最小工作电压(例如,芯片要求在 1.8V 以上工作,可将 VPVD 设为 2.0V 或 2.1V)。在 PVD 中断服务函数中:
- 可靠复位: 如上所述,配置 PVD 事件连接到复位发生器(如果芯片支持)。当 VDD 跌落到不可靠工作的阈值 (VPVD) 以下时,芯片立即自动复位,防止代码执行出错。电压回升超过 VPVD 后,芯片会经历一个正常的复位过程重新启动。这比不可预测的系统崩溃要可靠得多。
- 电源状态监测: 在不需要数据保存的场景下,可以用它检测电源是否正常,或者电压是否低于某个警示水平。读取状态位或处理中断/事件可以触发警示灯、蜂鸣器或在软件中记录电源事件。
- 低功耗管理: 在电池供电应用中,监测电压可以评估电池电量状态(虽然不如专用电量计精准,但简单有效),并在电压偏低时提醒用户或执行降级操作。
四、配置和使用 PVD 的关键步骤(概述)
- 使能 PWR 时钟: 在 RCC 中使能 PWR 外设的时钟 (例如:
__HAL_RCC_PWR_CLK_ENABLE()in HAL)。 - 配置触发电压: 在
PWR->CR/PWR->CR2/PWR->VOSCR(取决于系列) 中设置PLS[2:0]位,选择所需的 VPVD 阈值。 - 启用 PVD: 在同一寄存器中将相应的使能位置
1(例如PVDE,PVDEN等)。 - 配置中断/事件:
- 中断: 在
PWR相关的扩展中断寄存器 (如EXTI,EXTICR,EXTSCR) 中使能 PVD 中断线,在 NVIC 中配置和使能 PVD 中断优先级。 - 事件: 将 PVD 事件连接到目标(唤醒线、复位发生器)。
- 中断: 在
- (中断模式)编写中断服务函数: 在
PVD_IRQHandler函数中:- 检查状态标志 (
PVDO) 确认是 PVD 触发(排除其他共用中断源)。 - 清除挂起标志(如果需要)。
- 执行紧急处理程序(保存数据,关闭外设等)。
- 可以读取
PVDO判断当前电压状态(是否低于 VPVD)。
- 检查状态标志 (
- (状态位模式)轮询读取: 在
PWR->CSR/PWR->EXTSCR中读取PVDO/PVD1/PVMO位来检测低压状态。
五、重要注意事项
- 阈值范围: 仔细查阅你所使用的具体 STM32 型号的参考手册 (Reference Manual)。不同系列、不同型号支持的 VPVD 阈值范围和可选档位不同。务必确保选择的阈值高于芯片保证正常工作的最低电压 (
VDDmin)。 - 启动延迟: VPVD 分频器:为了提供稳定的参考电压和进行比较,PVD 使用内部的一个带分频器的电压参考。手册会说明设置 VPVD 阈值后需要等待一段时间 (
tSTART) 才能开始有效检测。配置后需要延迟或等待状态位就绪。 - 中断与事件的选择:
- 需要立即、在 CPU 还能正常运行时保存数据 -> 用 中断。
- 追求最高可靠性,在异常低电压时立即复位系统 -> 用 连接到复位的PVD事件 (如果支持)。
- 只是作为状态监测,不需要立即响应 -> 轮询 状态位。
- 外部干扰: 非常快的电压瞬变(毛刺)可能导致 PVD 误触发。如果应用中存在大电流开关负载,要考虑电源滤波或软件添加防抖逻辑(例如在中断中延时再确认状态位)。
- 低功耗模式: 在部分低功耗模式下(如 Sleep, Stop),PVD 可能仍然工作(具体看手册说明),可以作为唤醒源(配置为事件模式时)。在更低功耗模式(如 Standby)下,PVD 通常不工作。
- 标志读取: 在中断函数中或查询时,读取
PVDO位:PVDO = 1:表示 VDD < VPVDPVDO = 0:表示 VDD > VPVD
- 电压跌落速度: 如果 VDD 跌落速度极快,即使在中断服务函数中执行操作也可能来不及,特别是在电压跌落到无法可靠操作 CPU/RAM 的临界点之后才触发中断的情况下。临界电压的设置 (
VPVD) 要足够高于VDDmin以留出处理时间。连接到硬件复位的 PVD 事件是处理极快掉电的最可靠方式。
总结:
STM32 的 PVD 是内置的可编程电压检测器,通过比较 VDD 和预设阈值 VPVD 来检测低电压状况。其主要用途是 在电源电压不足导致系统崩溃前进行安全防护(数据保存) 或 确保可靠复位。使用时需仔细配置触发电压、选择触发方式(中断/事件/状态位),并在中断函数中执行关键保护操作。务必参考具体芯片型号的参考手册进行正确配置。
在实际项目中使用 PVD,请务必参考你所用具体 STM32 芯片型号的官方参考手册和对应的外设库/框架(如 STM32CubeMX、HAL 或 LL 库)的文档及示例代码。
STM32L0 PVD监测供电电压怎么能在低于阈值的电压上也产生中断?
最近在做电池电压监控这块,发现STM32自带供电检测功能,而且不需要外围电路做配置。摸索了一翻,设置阈值3.1V,当我的
STM8L的PVD低电压检测该怎么写?
看了stm8l的资料,知道了可以通过PVD直接对低电压进行程序操作,省去了AD转换那些麻烦问题。但是我从没使用过,看了网上有人发过stm32的
MS751瑞盟,低电压、高精度推挽输出比较器 运放方案
电子发烧友网站提供《MS751瑞盟,低电压、高精度推挽输出比较器 运放方案.pdf》资料免费下载
资料下载
jf_23120647
2022-04-25 10:15:52
STM32 PVD的使用(掉电检测)
有时在一些应用中,我们需要检测系统是否掉电了,或者要在掉电的瞬间需要做一些处理。STM32就有这样的掉电检测机制——
资料下载
张伟
2021-12-07 14:06:10
1.5A高效同步低电压电源变频器芯片HM6350A
HM6350Ais是一种高效率的同步步进上变频器,可以提供高达1.5安培的固定输出高达5伏的低电压源。与大多数升压转换器不同,它包含了在关机、短路、输出电流过载或其他输出高于输入的事件中断开输入
资料下载
h1654156040.5061
2021-03-15 13:54:23
STM32单片机PVD功能操作流程解析
STM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。通过电源控制寄存器中的PLS[2:0]位可以用来设定监控
2018-12-26 15:41:36
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 传感器常见类型有哪些?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机