stm32-pvd编程及exti_line16中断设置 附图

stm32-pvd编程及exti_line16中断设置 附图

ID:14313305

大小:93.65 KB

页数:6页

时间:2018-07-27

stm32-pvd编程及exti_line16中断设置 附图_第1页
stm32-pvd编程及exti_line16中断设置 附图_第2页
stm32-pvd编程及exti_line16中断设置 附图_第3页
stm32-pvd编程及exti_line16中断设置 附图_第4页
stm32-pvd编程及exti_line16中断设置 附图_第5页
资源描述:

《stm32-pvd编程及exti_line16中断设置 附图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、先看一下这2张截自STM32参考手册的图片:下面这张表截自STM32F103x8/B的数据手册,对上图的参数给出了具体数值:下面对上面2张图和表格中的数据做一个简要的解释:1)PVD=ProgrammableVotageDetector可编程电压监测器 它的作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。在给出表格的上半部分就是可编程的监视阀值数据。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。供电下降的阀值与供电上升的PVD阀值有一个固定的差值,这就是表中的VPVDhyst(PVD迟滞)这个参数,通过列出的PVD阀值数

2、据可以看到这个差别。引入这个差值的目的是为了防止电压在阀值上下小幅抖动,而频繁地产生中断。2)POR=PowerOnReset上电复位;PDR=PowerDownReset掉电复位。 POR的功能是在VDD电压由低向高上升越过规定的阀值之前,保持芯片复位,当越过这个阀值后的一小段时间后(图中的"滞后时间"或表中的"复位迟滞"),结束复位并取复位向量,开始执行指令。这个阀值就是表中倒数第4行(min=1.8V,typ=1.88V,max=1.96V)。 POR的功能是在VDD电压由高向低下降越过规定的阀值后,将在芯片内部产生复位,这个阀值就是表中倒数第3行(min=1.84V,typ=1

3、.92V,max=2.0V)。 3)可以看到POR比PDR大了0.04V,这就是表中倒数第2行,VPDRhyst(PDR迟滞)=40mV。4)从上面的第2张图可以看到,当VDD上升越过POR阀值时,内部并不马上结束复位,而是等待一小段时间(Resettemporization),这就是表中的最后一行TRSTTEMPO,它的典型数值是2.5ms。这个滞后时间是为了等待供电电压能够升高到最低可靠工作电压以上,我们看到POR阀值最小只有1.8V,最大也只有1.96V,都低于数据手册中给出的最低可靠工作电压2.0V,所以这个滞后时间是十分必要的,如果供电电压上升缓慢,尤其是从1.8V升到2.0

4、V以上超过1~2.5ms,则很可能造成上电复位后MCU不能正常工作的情况。手册中的VPOR(上升沿)电压范围为1.84~2.0V,其最大值刚好就是手册中说的“最低可靠工作电压2.0V”。我认为“最低可靠工作电压2.0V”意思是:保证每一颗芯片完成都能能正常完成复位的电压。注意,是“每一颗”。只有达到2.0V电压才能保证每一颗芯片都能完成复位。如果用户提供的电压达不到2.0V,则个别VPOR为2.0V的芯片就不能完成复位过程。不用担心1.84V到2.0V的这段时间过长会导致芯片异常,这段时间过长的结果是,某些VPOR电压较高的芯片(例如2.0V)完成复位的时刻会很晚,只要达到了2.0V,

5、必定会完成复位。手册中提供的“最低可靠工作电压2.0V”是包括了“复位电路完成复位”这个要求在内的电压,如果去掉了复位电路,芯片的可工作电压会低于此电压。如果某颗芯片的VPOR为1.84V,则电压到了1.84V该芯片就已经能正常工作了,即使电压一直都维持在1.84V也能正常工作。但考虑到芯片个体差异,为了保证每一颗芯片都能正常完成复位,所以手册中才说“最低可靠工作电压2.0V”。STM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。通过电源控制寄存器中的PLS[2:0]位可以用来设定监控电压的阀值,通过对外部电压进行比较来监控电源。当条件触发,需要系统进入特别保护状态,执行

6、紧急关闭任务:对系统的一些数据保存起来,同时对外设进行相应的保护操作。操作流程:1)、系统启动后启动PVD,并开启相应的中断。PWR_PVDLevelConfig(PWR_PVDLevel_2V8);//设定监控阀值PWR_PVDCmd(ENABLE);//使能PVDEXTI_StructInit(&EXTI_InitStructure);EXTI_InitStructure.EXTI_Line=EXTI_Line16;//PVD连接到中断线16上EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//使用中断模式EXTI_InitStru

7、cture.EXTI_Trigger=EXTI_Trigger_Raising;//电压低于阀值时产生中断EXTI_InitStructure.EXTI_LineCmd=ENABLE;//使能中断线EXTI_Init(&EXTI_InitStructure);//初始EXTI_InitStructure.EXTI_Trigger的赋值可选项:EXTI_Trigger_Rising---表示电压从高下降到低于设定阀值时产生中断;EXTI_Trig

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。