1.系统时钟
ATmega16的片内含有4种频率(1MHz/2MHz/4MHz/8MHz)的RC振荡源,可直接作为系统的工作时钟使用。同时片内还设有一个由反向放大器所构成的OSC(Oscillator)振荡电路,外围引脚XTAL1和XTAL2分别为OSC振荡电路的输入端和输出端,用于外接石英晶体等,构成高精度的或其他标称频率的系统时钟系统。
系统时钟为控制器提供时钟脉冲,是控制器的“心脏”。系统时钟的频率是单片机的重要性能指标之一。系统时钟频率越高,单片机的执行节拍就越快,处理速度也越快。ATmega16最高的工作频率为16MHz(16MIPS),在8位单片机中算是佼佼者。但并不是系统时钟频率越快就越好,因为当时钟频率越高时,其耗电量也越大,也容易受到干扰(或干扰别的设备)。因此,在具体设计时,应根据实际产品的需要,尽量采用较低的系统时钟频率,这样不仅能降低功耗,同时也提高系统的可靠性和稳定性。
为ATmega16提供系统时钟源时,有3种主要的选择:①直接使用片内1MHz/2MHz/4MHz/8MHz的RC振荡源;②在引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振回路,配合片内的OSC振荡电路构成的振荡源;③直接使用外部时钟源输出的脉冲信号。方式2和方式3的电路连接如图2-6所示。
图2-6 系统时钟源的电路连接
图2-6a是比较常用的方法,由于采用了外接石英晶体作为振荡的谐振回路,因此可以提供比较灵活的频率(由使用晶体的谐振频率决定)和稳定精确的振荡。在XTAL1和XTAL2引脚上加上由石英晶体和电容组成的谐振回路,与内部振荡电路配合就能产生系统需要的时钟信号了。最常采用的晶体元件为一个石英晶体和两个电容组成谐振电路。晶体可在0~16MHz之间选择,电容值在20~30pF之间(最好与所选用的晶体相匹配)。(www.xing528.com)
当对系统时钟电路的精度要求不高的话,可以使用方式1,即使用片内可选择的1MHz/2MHz/4MHz/8MHz的RC振荡源作为系统时钟源,可以节省外接器件,此时XTAL1和XTAL2引脚悬空。
系统时钟电路产生振荡脉冲不经过分频将直接作为系统的主工作时钟,同时它还作为芯片内部的各种计数脉冲,以及各种串口定时时钟等使用(可由程序设定分频比例)。
值得注意的是,AVR单片机有一组专用的、与芯片功能、特性、参数配置相关的可编程熔丝位。其中有几个专门的熔丝位(CKSEL3..0)用于配置芯片所要使用的系统时钟源的类型。
新芯片的默认配置设定为使用内部1MHz的RC振荡源作为系统的时钟源。因此,当第一次使用前,必须先正确地配置熔丝位,使其与使用的系统时钟源类型相匹配。另外,在配置其他熔丝位时,或进行程序下载时,千万不要对CKSEL3..0这几个熔丝位误操作,否则会组成芯片表面现象上的“坏死”,因为没有系统时钟源,芯片不会工作的。
关于ATmega16重要熔丝位的配置、使用方式将在下文详细介绍。
2.内部看门狗定时器
在AVR单片机片内还集成了一个1MHz独立的时钟电路,它仅供片内的看门狗定时器(WDT)使用。因此,AVR单片机片内的WDT是独立硬件形式的看门狗,使用AVR单片机可以省掉外部的WDT芯片。使用WDT可以有效地提高系统的可靠性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。