最小体系:
选用了在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。