AVR单片机的复位操作方法解析

采纳了在ATmega16引脚XTAL1和XTAL2上外接由石英晶体电容组成的谐振回路,并共同片内的OSC(Oscillator)振荡电路构成的振荡源作为系统时钟源的。更简单的电路是直接应用片内的4M的RC振荡源,这样就可以将C1、C2、R2和4M晶体省掉落,引脚XTAL1和XTAL2悬空,当然此时系统时钟频率精准度不如采纳外部晶体的要领,而且也易受到温度变更的影响。

AVR的复位源和复位要领:

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

AVR单片机的复位操作,其主要功能是把法度榜样计数器PC初始化为$0000(指非BOOT LOAD要领启动),使单片机从$0000单元开始履行法度榜样。同时决大年夜部分的寄存器(通用寄存器和I/O寄存器)也被复位操作清零。

ATmega16单片机共有5个复位源,它们是:

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

2、外部复位。当外部引脚RESET为低电平,且低电平持续光阴大年夜于1.5us时,MCU复位。

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

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

5、JTAG AVR复位。当应用JTAG接口时,可由JTAG口节制MCU复位。

AVR复位启动后,因为法度榜样计数器PC置为$0000,是以CPU掏出的第一条指令便是在Flash空间的$0000处,即复位后系统法度榜样从地址$0000处开始履行(指非BOOT LOAD要领启动)。平日在$0000地址中放置的指令为一条相对转移指令RJMP或JMP指令,跳到主法度榜样的开始。这样,系统复位启动后,首先履行$0000处的跳转指令,然后转到履行主法度榜样的指令。

AVR内部的MCU节制和状态寄存器MCUCSR还将引起复位的复位源进行了记录,用户法度榜样启动后,可以读取MCUCSR中的标记,查看复位是因为何种环境造成的,是正常复位照样非常复位,从而根据实际环境履行不合的法度榜样,实现不合的处置惩罚。

对AVR的编程下载:串行编程要领(ISP)。

mega16的熔丝位:

ATmega16单片机在售出时,片内的Flash 存储器和EEPROM 存储器阵列是处在擦除的状态(即内容 = $FF),且可被编程。同时其器件设置设置设备摆设摆设熔丝位的缺省值为应用内部1M的RC振荡源作为系统时钟!

1.存储器加密定位

ATmage16有2个加密锁定位LB1和LB2,用于设定对片内存储器的加密要领,用户可在编程要领下,对LB1、LB2不编程(1),或编程(0),从而得到对片内存储器不合的加密保护要领,见表2.3。

必要进一步阐明是:

在AVR的器件手册中,应用已编程(Programmed)和未编程(Unprogrammed)定义加密位和熔丝位的状态。“Unprogrammed”表示熔丝状态为“1”(禁止),“Programmed”表示熔丝状态为“0”(容许),即

1:未编程

0:编程

AVR的加密位和熔丝位可多次编程,不是OPT熔丝。

AVR芯片加密锁定后(LB2/LB1 = 1/0,0/0),在外部不能经由过程任何要领读取芯片内部Flash和EEPROM中的数据,但熔丝位的状态仍旧可以读取,不能改动设置设置设备摆设摆设。

必要从新下载法度榜样时,或芯片被加密锁定后,或发明熔丝位设置设置设备摆设摆设纰谬,都必须先在编程状态应用芯片擦除敕令,清除芯片内部存储器中的数据,同时解除加密锁定。然后从新下载运行代码和数据,改动和设置设置设备摆设摆设相关的熔丝位,着末再次设置设置设备摆设摆设芯片的加密锁定位。

编程状态的芯片擦除敕令是将Flash和EEPROM中的数据清除,并同时将两位锁定位状态设置设置设备摆设摆设成无锁定状态(LB2/LB1 = 1/1)。但芯片擦除敕令并不改变其它熔丝位的状态。

下载编程的精确的操作法度榜样是:在芯片无锁定状态下,下载运行代码和数据,设置设置设备摆设摆设相关的熔丝位,着末设置设置设备摆设摆设芯片的加密锁定位。

2.系统时钟类型的设置设置设备摆设摆设

ATmega16可以应用多种类型的系统时钟源,最常用的为2种:应用内部的RC振荡源(1M/2M/4M/8M)和外接晶体(晶体可在0-16MHz之间选择)共同内部振荡放大年夜器构成的振荡源。具系一切时钟类型的设置设置设备摆设摆设由CKOPT和CKSEL[3-0]共5个熔丝设定,表2.4、表2.5给出了详细的设置设置设备摆设摆设值。用户在应用中,首先要根据实际应用环境进行精确的设置,而且切切留意不要对这些熔丝位误操作!

在表2.5中,当CKOPT = 0时,振荡器的输出振幅较大年夜,轻易起振,得当在滋扰大年夜的场合以及应用的晶体跨越8M时的环境下应用。而CKOPT = 1时,振荡器的输出振幅较小,这样可以减小对电源的耗损,对外的电磁幅射也较小。

尤其必要阐明的是,一旦RESET脚的电平被外部拉低,当满意某些特殊前提后,芯片将进入编程状态。例如,假如芯片带有SPI接口,支持SPI串行编程,则经由过程以下要领将使芯片进入SPI编程状态:

外部将SPI口的SCK引脚拉低,然后外部在RESET引脚上施加一个至少为2个系统周期以上低电平脉冲;

延时等待20ms后,由外部经由过程AVR的SPI口向芯片下发容许SPI编程的指令;

假如外围连接在上电环境时体现为强上拉或强下拉(最极度环境为接高电平或GND),那么为了包管AVR的SPI功能的正常事情,应该如图2-20中所示,串入3个隔离电阻,阻值在2K阁下。

AVR熔丝位的设置设置设备摆设摆设:

对付刚开始进修应用AVR的读者,建议改变的熔丝位有:

系统时钟采纳内部4M的RC振荡源。其优点是速率适中,且利用于RS-232通信时,分频孕育发生的9600bps速度与标准值的偏差最小(0.2%)。

禁止片内的JTAG口功能。不应用JTAG在线仿真,将4个引脚PC2-PC5开释,作为通俗的I/O应用。

启用低电压检测复位功能。检测电平设置为4.0V。

责任编辑;zl

您可能还会对下面的文章感兴趣: