当前位置:文档之家› 单片机上电复位延时

单片机上电复位延时

80C51单片机的上电复位POR(Pmver On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。

为什么在每次单片机接通电源时,都需要加入一定的延迟时间呢?分析如下。

1 上电复位时序在单片机及其应用电路每次上电的过程中,由于电源同路中通常存在一些容量大小不等的滤波电容,使得单片机芯片在其电源引脚VCC和VSS之间所感受到的电源电压值VDD,是从低到高逐渐上升的。

该过程所持续的时间一般为1~100ms(记作tsddrise)。

上电延时taddrise的定义是电源电压从lO%VDD上升到90%VDD所需的时间,如图1所示。

在单片机电源电压上升到适合内部振荡电路运行的范围并且稳定下来之后,时钟振荡器开始了启动过程(具体包括偏置、起振、锁定和稳定几个过程)。

该过程所持续的时间一般为1~50 ms(记作tOSC)。

起振延时tOSC的定义是时钟振荡器输出信号的高电平达到Vih1所需的时间。

从图1所示的实际测量图中也可以看得很清楚。

这里的Vih1是单片机电气特性中的一个普通参数,代表XTALl和RST引脚上的输入逻辑高电平。

例如,对于常见的单片机型号AT89C5l和AT89S5l,厂家给出的Vih1值为0.7VDD~VDD+0.5V。

从理论上讲,单片机每次上电复位所需的最短延时应该不小于treset。

这里,treset等于上电延时taddrise与起振延时tOSC之和,如图1所示。

从实际上讲,延迟一个treset 往往还不够,不能够保障单片机有--一个良好的工作开端。

在单片机每次初始加电时,首先投入工作的功能部件是复位电路。

复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时,如图2所示。

2 上电复位电路3款上述一系列的延时,都是利用在单片机RST引脚上外接一个RC支路的充电时间而形成的。

典型复位电路如图3(a)所示,其中的阻容值是原始手册中提供的。

在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。

从图2所示的实测曲线中可以同时看到4条曲线:VDD、Vrst、XTAL2和ALE。

在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放RST信号,使得CPU脱离复位锁定状态;而RST信号一旦被释放,立刻在ALE引脚上就可检测到持续的脉冲信号。

由于标准80C51的复位逻辑相对简单,复位源只有RST一个(相对新型单片机来说,复位源比较单一),因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚RST上施加一定时间宽度的高电平信号来实现。

标准80C5l不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图3(a)所示。

其实,外接电阻R还是可以省略的,理由是一些CMOS单片机芯片内部存在一个现成的下拉电阻Rrst。

例如,AT89系列的Rrst阻值约为50~200kΩ;P89V51Rx2系列的Rrst阻值约为40~225 kΩ,如图4所示。

因此,在图3(a)基础上,上电复位延时电路还可以精简为图3(b)所示的简化电路(其中电容C的容量也相应减小了)。

在每次单片机断电之后,须使延时电容C上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。

否则,在断电后C还没有充分放电的情况下,如果很快又加电,那么RC支路就失去了它应有的延迟功能。

因此,在图3(a)的基础上添加一个放电二极管D,上电复位延时电路就变成了如图3(c)所示的改进电路。

也就是说,只有RC 支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。

于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。

二极管D只有在单片机断电的瞬间(即VCC趋近于0V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。

3 上电复位失败的2种案例分析假如上电复位延迟时间不够或者根本没有延时过程,则单片机可能面临以下2种危险,从而导致CPU开始执行程序时没有一个良好的初始化,甚至陷入错乱状态。

①在时钟振荡器输出的时钟脉冲还没有稳定,甚至还没有起振之前,就因释放RST信号的锁定状态而放纵CPU开始执行程序。

这将会导致程序计数器PC中首次抓取的地址码很可能是0000H之外的随机值,进而引导CPU陷入混乱状态。

参考图5所示的实测信号曲线。

②在电源电压还没有上升到合适范围之前(自然也是时钟尚未稳定之前),就释放RST 信号的锁定状态,将会使单片机永远感受不到复位信号、经历不到复位过程、包含PC在内的各个SFR内容没有被初始化而保留了随机值,从而导致CPU从一个随机地址开始执行程序,进而也陷入混乱状态。

参考图6所示的实测信号曲线。

4 外接监控器MAX810x为了提高单片机应用系统的稳定性,以及保障单片机应用系统的可靠复位,许多世界著名的半导体公司,陆续推出了种类繁多、功能各异、封装微小的专用集成电路。

本文仅以带有电源电压跌落复位和上电延迟复位功能的3脚芯片MAX810x为例,简单说明。

MAX810x(x=L、M、J、T、S或R)是美国Maxim公司研制的一组CMOS电源监控电路,能够为低功耗微控制器MCU(或μC)、微处理器MPU(或μP)或数字系统监视3~5V的电源电压。

在电源上电、断电和跌落期间产生脉宽不低于140ms的复位脉冲。

与采用分立元件或通用芯片构成的欠压检测电路相比,将电压检测和复位延时等功能集成到一片3引脚封装的小芯片内,大大降低了系统电路的复杂性,减少了元器件的数量,显著提高了系统可靠性和精确度。

应用电路如图7所示。

MAX810x系列产品提供高电平复位信号,并且还能提供6种固定的检测门限(4.63V、4.38V、4.OOV、3.08V、2.93V和2.63V)。

例如,MAX810M的检测门限电压就是4.38V,回差电压约为O.16V。

对于MAX810,在电源上电、断电或跌落期间,只要VCC还高于1.1V,就能保证RESET引脚输出高电压。

在VCC上升期问RESET维持高电平,直到电源电压升至复位门限以上。

在超过此门限后,内部定时器大约再维持240 ms后释放RESET,使其返回低电平。

无论何时只要电源电压降低到复位门限以下(即电源跌落),RESET引脚就会立刻变高。

关于MAX8lO芯片的更多信息,可以参考该器件的产品手册。

在和一人聊天时,遇到了一个问题,单片机复位的问题,实在是很高深啊,因为一般书里是不说的,所以上网看看,转载于下://///////////////////////////问题////////////////////////////1、单片机要完成复位,为什么复位信号必须至少持续2个机器周期啊。

2、复位期间单片机在做什么?主要是这2个机器周期内在做什么。

3、单片机上电之后复位之前,单片机在做什么?////////////////////////////////////////////////////答案////////////////////////////////////////1.复位信号要持续一定的时期,因为检测复位信号状态首先需要一定的时间,其次是为了单片机状态的稳定。

2.主要做的就是初始化每个寄存器,包括最重要的PC指针,不包括RAM,然后单片机从复位地址开始执行程序。

3.单片机上电后,上电复位信号使单片机被锁定在复位状态直到复位信号撤销。

复位信号一上电就有,但是这时单片机并不执行复位操作,首先要等Vcc稳定、然后晶振开始起振、振荡稳定后才执行两周期的复位操作(晶振没起振CPU怎么操作啊)。

因此单片机上电之后复位之前单片机不操作,状态稳定。

开始复位操作时(振荡稳定后,也就是2周期开始)RESET信号仍然使单片机锁定在复位状态,但CPU执行PC指针、SFR 等的复位操作。

所以从上电到复位信号撤销前,单片机的状态一直是稳定的,单片机程序跑飞是由于复位信号的保持时间小于这个过程所需的时间,也就是PC指针、SFR等还没复位,复位信号就撤销了而放任CPU执行,从而导致程序跑飞、单片机混乱等现象。

复位信号的保持时间跟复位电路的设计有关。

//////////////////////////////////////////////////////////////∙在电路中,使用电阻给电容充电,使电容的电压缓慢上升一直到VCC,在还没有到VCC 时,芯片复位脚近似低电平,但是芯片复位,接近VCC时,芯片复位脚近高电平,导致芯片停止复位,此时复位完成,整个电路循环运行.这个电路就叫做复位电路。

它主要为了能保证微型机系统得到稳定可靠的工作。

目录∙复位电路的分类∙复位电路的Multisim仿真∙电源和复位电路设计∙利用自动复位电路保护辅助输出复位电路的分类单片机复位电路主要有四种类型:(1)微分型复位电路:(2)积分型复位电路:(3)比较器型复位电路:比较器型复位电路的基本原理。

上电复位时,由于组成了一个RC低通网络,所以比较器的正相输入端的电压比负相端输入电压延迟一定时间.而比较器的负相端网络的时间常数远远小于正相端RC网络的时间常数,因此在正端电压还没有超过负端电压时,比较器输出低电平,经反相器后产生高电平.复位脉冲的宽度主要取决于正常电压上升的速度.由于负端电压放电回路时间常数较大,因此对电源电压的波动不敏感.但是容易产生以下二种不利现象:(1)电源二次开关间隔太短时,复位不可靠:(2)当电源电压中有浪涌现象时,可能在浪涌消失后不能产生复位脉冲。

为此,将改进比较器重定电路,如图9所示.这个改进电路可以消除第一种现象,并减少第二种现象的产生.为了彻底消除这二种现象,可以利用数字逻辑的方法和比较器配合,设计的比较器重定电路。

此电路稍加改进即可作为上电复位和看门狗复位电路共同复位的电路,大大提高了复位的可靠性。

(4)看门狗型复位电路.看门狗型复位电路主要利用CPU正常工作时,定时复位计数器,使得计数器的值不超过某一值;当CPU不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得CPU恢复正常工作状态.此复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处.一般设计,将此段程序放在定时器中断服务子程序中.然而,有时这种设计仍然会引起程序走飞或工作不正常.原因主要是:当程序"走飞"发生时定时器初始化以及开中断之后的话,这种"走飞"情况就有可能不能由Watchdog复位电路校正回来.因为定时器中断一真在产生,即使程序不正常,Watchdog也能被正常复位.为此提出定时器加预设的设计方法.即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句.在所有不被程序代码占用的地址尽可能地用子程序返回指令RET 代替.这样,当程序走飞后,其进入陷阱的可能性将大大增加.而一旦进入陷阱,定时器停止工作并且关闭中断,从而使Watchdog复位电路会产生一个复位脉冲将CPU复位.当然这种技术用于实时性较强的控制或处理软件中有一定的困难。

相关主题