关于单片机PDR和POR应用注意事项
在单片机相关项目的开发中很少有同行会关注到POR和PDR的问题,本人也是经过相关项目的一步步填坑才发现PDR和POR很容易被忽视,一旦出现问题也是比较致命的。为此我将展开阐述并将我开发中遇到的相关问题分享给大家。本次以STM32通用型单片机为讲解的对象。
- PDR和POR的概念
(1) POR:POR = Power On Reset 上电复位;PDR = Power Down Reset 掉电复位。 POR 的功能是在VDD电压由低向高上升越过规定的阀值之前,保持芯片复位,当越过这个阀值后的一小段时间后(图中的"滞后时间"或表中的"复位迟滞"),结束复位并取复位向量,开始执行指令。 (2)PDR:掉电复位;PDR的功能是在VDD电压由高向低下降越过规定的阀值后,将在芯片内部产生复位。
(注:上面的图片标注有误,前面的第一个PDR应为POR)
- 关于POR和PDR的应用
在单片机的应用电路设计的过程中不考虑单片机其他的情况下是必须要考虑到POR(上电复位)和PDR(掉电复位)。下面就此展开关于PDR和POR的硬件电路的设计或者程序设计上设计者需要小心考虑的问题。 (1)POR(上电复位)----应用电路设计以及软件设计注意事项 在单片机上电运行的过程中,VDD由0上升到POR规定的电压并越过这个阈值之后,单片机就会结束复位获取复位向量,开始执行指令。 如上图,当电压为VA时单片机便已经开始执行指令。容易出现的问题就是当我们外挂相应的存储IC(比如EEPROM)如若此时相应的存储IC还未达到正常工作的电压点单片机便对它进行读写操作那么此刻数据出错的概率是很大的。这个在一些使用内置振荡器作为系统时钟的单片机中是存在发生的可能性的。 解决方法: <1>在硬件电路的电源设计中 ,必须注意电源的电压爬升的速度,或者在反复上下电中采用大电容储能的方式保护相应的IC; <2>在软件设计上采用上电初始化delay的方式跳过这一段变化的电压。
(2)PDR(掉电复位)----注意事项 在此次的伺服驱动器的开发过程中,STM32的RTC时钟采用锂电池作为备用电源供电时就遇到了PDR的问题。在STM32单片机中PDR_ON 引脚电平为低时, 内部电源监视器关闭;当 PDR_ON 引脚电平为高时,内部电源监视器使能。 如若没有将PDR_ON 引脚与VDD相连则会出现当外部电源断掉之后单片机的VDD与GND引脚仍然会有0.5或者0.6V的电压,然后重新上电会出现晶振无法起振的情况。 具体来说,当监控器检测到VDD<1.7V后,便主动将MCU复位(并保持复位状态),同时将电源开关打到VBAT引脚,启动备用电源供电;当监控器检测到VDD>1.8V后,便会主动恢复VDD供电,并触发MCU复位使系统重新开始正常运行。
|