首页 理论教育 AVR单片机复位源与复位方式

AVR单片机复位源与复位方式

时间:2023-11-20 理论教育 版权反馈
【摘要】:图2-14 ATmega16系统复位逻辑图ATmega16单片机共有5个复位源,如下所示:1)上电复位。表2-2 系统复位电参数当任何一个复位信号产生时,AVR单片机将进行复位操作。复位操作过程并不需要时钟源处于运行工作状态。经过一定的延时后,AVR单片机才进行系统内部真正的复位启动。由此可见,AVR单片机的复位过程考虑得非常周到,也是非常可靠的。

AVR单片机复位源与复位方式

复位是单片机芯片本身的硬件初始化操作,例如,单片机在上电开机时都需要复位,以便CPU以及其他内部功能部件都处于一个确定的初始状态,并从这个初始状态开始工作。

除了系统上电的正常复位初始化之外,当系统程序在运行中出现错误或受到电源的干扰出现错误时,也可通过外部引脚RESET进行人工复位,或由芯片内部看门狗定时器(WDT)自动复位,或由芯片内部掉电检测(BOD)来使系统自动进入复位初始化操作。

图2-14所示的电路给出了ATmega16系统的复位逻辑,表2-2给出了复位电特性的参考值。

978-7-111-36320-0-Chapter02-18.jpg

图2-14 ATmega16系统复位逻辑图

ATmega16单片机共有5个复位源,如下所示:

1)上电复位。当系统电源电压低于上电复位门限VPOT时,MCU复位。

2)外部复位。当外部引脚RESET为低电平,且低电平持续时间大于1.5μs时,MCU复位。

3)掉电检测(BOD)复位。BOD使能时,且电源电压低于掉电检测复位门限(4.0V或2.7V)时,MCU复位。

4)看门狗复位。WDT使能时,并且WDT超时溢出时,MCU复位。

5)JTAG AVR复位。当使用JTAG接口时,可由JTAG口控制MCU复位。

表2-2 系统复位电参数

978-7-111-36320-0-Chapter02-19.jpg

当任何一个复位信号产生时,AVR单片机将进行复位操作。复位操作过程并不需要时钟源处于运行工作状态(AVR单片机采用异步复位方式,提高了可靠性)。在MCU复位过程中,所有的I/O寄存器被设为初始值,程序计数器(PC)置0。当系统电压高于上电复位门限VPOT(或BOD复位门限电压)时,复位信号撤销,硬件系统Delay Counters将启动一个可设置的计数延时过程(延时时间为tTOUT,由一组熔丝位SUT、CKSEL确定)。经过一定的延时后,AVR单片机才进行系统内部真正的复位启动。采用这种形式的复位启动过程,能够保证电源电压在达到稳定后单片机才进入正常的指令操作。

AVR单片机复位启动后,由于程序计数器(PC)置为$0000,因此CPU取出的第一条指令就是在Flash存储器空间的$0000处,即复位后系统程序从地址$0000处开始执行(指非BOOT LOAD方式启动)。通常在$0000地址中放置的指令为一条相对转移指令RJMP或JMP,跳到主程序的开始。这样,系统复位启动后,首先执行$0000处的跳转指令,然后转到执行主程序的指令。

由此可见,AVR单片机的复位过程考虑得非常周到,也是非常可靠的。AVR单片机采用5个复位源,异步复位操作,以及内部可设置的延时启动,大大提高了芯片的抗干扰能力和整个系统的可靠性,这在工业控制中非常重要,同时也是AVR单片机的优点之一。与此同时,AVR单片机内部的MCU控制和状态寄存器MCUCSR还将引起复位的复位源进行了记录,用户程序启动后,可以读取MCUCSR中的标记,查看复位是由于何种情况造成的,是正常复位还是异常复位,从而根据实际情况执行不同的程序,实现不同的处理。这对于实现高可靠的系统控制、掉电保护处理、故障处理等应用非常有用,具体请参考AVR单片机的器件手册说明。

1.上电复位

AVR单片机内部含有上电复位(Power On Reset,POR)电路。POR电路确保了只有当VCC超过一个安全电平时,器件才开始工作,如图2-15、图2-16所示。(www.xing528.com)

无论何时,只要VCC低于检测电平VPOT时,器件进入复位状态。一旦当VCC超过门限电压VPOT,而RESET电压也达到VRST时,将启动芯片内部的一个可设置的延时计数器。在延时计数器溢出之前,器件一直保持复位状态(保持高电平)。经过tTOUT时间后,延时计数器溢出,将内部复位信号拉低,CPU才开始正式工作。

2.外部复位

外部复位是由外加在RESET引脚上的低电平产生的。当RESET引脚被拉低于VRST的时间大于1.5μs时即触发复位过程,如图2-17所示。当RESET引脚电平高于VRST后,将启动内部可设置的延时计数器。在延时计数器溢出之前,器件一直保持复位状态(保持高电平)。经过tTOUT时间后,延时计数器溢出,将内部复位信号拉低,CPU才开始正式工作。

978-7-111-36320-0-Chapter02-20.jpg

图2-16 MCU上电复位启动,RESET由外部控制

978-7-111-36320-0-Chapter02-21.jpg

图2-17 外部RESET复位

3.掉电检测(BOD)复位

ATmega16有一个片内的BOD(Brown Out Detection)电源检测电路,用于在系统运行时对系统电压VCC的检测,并与一个固定的阈值电压相比较。BOD检测阈值电压可以通过BODLEVEL熔丝位设定为2.7V或4.0V。BOD检测阈值电压有迟滞效应,以避免系统电源的尖峰毛刺误触发BOD检测器。阈值电平的迟滞效应可以理解为上阈值电压VBOT+=VBOT+VHYST/2,下阈值电压VBOT-=VBOT-VHYST/2。

BOD检测电路可以通过编程BODEN熔丝位来置成有效或者无效。当BOD被置成有效,并且VCC电压跌到下阈值电压VBOT-(见图2-18)以下时即触发复位过程,CPU进入复位状态。当VCC回升,而且超过上阈值电压VBOT+后,再经过设定的启动延时时间,CPU重新启动运行。注意,只有当VCC电压低于阈值电压并且持续tBOD后,BOD电路才启动延时计数器计数。

978-7-111-36320-0-Chapter02-22.jpg

图2-18 掉电检测(BOD)复位

4.看门狗复位

ATmega16片内还集成一个独立的看门狗定时器(WDT)。该WDT由片内独立的1MHz振荡器提供时钟信号,并且可用专用的熔丝位或由用户通过指令控制WDT的启动和关闭,以及设置和清零计数值。当WDT启动计数后,一旦发生计数溢出,它将触发产生一个时钟周期宽度的复位脉冲。脉冲的上升沿将使器件进入复位状态,脉冲的下降沿启动延时计数器计数,经过设定的启动延时时间,CPU重新开始运行(见图2-19)。使用WDT功能,可以防止系统受到干扰而引起的程序运行紊乱和跑飞,提高了系统的可靠性。

978-7-111-36320-0-Chapter02-23.jpg

图2-19 WDT溢出复位

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈