|
所谓低电压检测LVD(LowVoltage Detect)的过程,大概可以概括为: 当芯片的供电电压VDD发生波动,并低于寄存器配置的电压阈值时,会产生一个检测信号;这个信号在中断使能的情况下,会触发LVD中断,通知CPU电压已处于异常状态。 GD32F470内部集成了一个硬件LVD模块,其核心是一个电压比较器: 一端输入:芯片的供电电压VDD(经过内部电路分压后)。
另一端输入:一个内部精密参考电压,这个参考电压对应着通过寄存器配置的LVD阈值,如下图所示是支持的可配置电压阈值: 常见的中断触发模式一般是下降沿触发: 初始状态:VDD电压正常,高于设置的LVD阈值(例如,你设置为2.8V,当前VDD=3.3V)。此时LVD输出为“高”或“无标志”状态。 电压跌落:由于某种原因(如电池电量耗尽、负载突然加重),VDD开始下降。 等于或低于阈值:当VDD从高处下降到等于或低于2.8V这个阈值时,电压比较器的输出状态会发生翻转。 标志位设置:这个翻转会使状态寄存器中的LVD标志位 被自动置1,这个标志位表示“已经发生了低电压事件”: 中断产生:如果此时你已经使能了LVD中断(通常通过扩展中断EXTI的相关寄存器配置),那么这个标志位的置1就会向NVIC(嵌套向量中断控制器)发出一个中断请求: CPU响应:CPU接收到中断请求,如果全局中断是开启的,就会跳转到对应的LVD中断服务函数中执行你预设的紧急任务(如保存关键数据、切换备用电源、进入安全模式等):
|