本节重点介绍ATMEL公司生产的AVR单片机,该类单片机是当前市场上比较具有代表性的一款单片机。
1997年,ATMEL公司的挪威设计中心的A先生和V先生出于市场需求的考虑推出了全新配置的8位精减指令集微处理器(RISC-Reduced Instrction Sot CPU),并起名为AVR。
AVR是一种指令内核的统称,其内部又分为ATtiny、AT90S和ATmega三大系列,分别对应AVR的低、中、高档产品。ATtiny系列中常用的有ATtiny10、ATtiny1634、ATtiny25等产品。AT90S系列中常用的有AT90S2313、AT90S8535、AT90S8515等,其中AT90S2313的引脚兼容AT89C2051,而AT90S8515的引脚则兼容51单片机,因此它在设计中很容易替代51单片机。但是到目前,AT90S系列的绝大部分已停产。当某一个AT90S系列的产品停产后,ATMEL公司通常会在ATmega或ATtiny系列中推出一个新的替代产品,在引脚兼容的基础上,该替代产品的内部资源和性能也得到了加强。例如,ATtiny2313作为AT90S2313的替代产品,在AT90S2313的基础上增加了片内标定振荡器、增强型上电复位、可编程的掉电检测等多种功能。类似的,ATmega8515和ATmega8535分别作为AT90S8515和AT90S8535的替代产品继承了很多Mega系列的特性。
ATmega48/88/168、ATmega8、ATmega16/32、ATmega64和ATmega128是ATmega系列的主流产品。值得关注的是ATmega8这一款单片机,它以丰富的片内资源、低廉的价格深受广大设计人员的喜爱,并在国内得到了较好的推广。然而ATmega48/88/168作为ATmega8的兼容产品,为用户提供了更多功能的选择。ATmega16也是一个用量较多的器件,它的引脚兼容AT90S8535,因此可以在某些应用场合用于替代AT90S8535。与ATmega8相比,ATmega16除了I/O引脚多之外,内部还集成了容量是ATmega8的两倍(16K)的Flash程序存储器。
随着国内AVR用户的增多,ATMEL公司也开始了主流器件数据手册的中文翻译工作。从互联网上可以找到ATtiny25、ATmega48/88/168、ATmega8、ATmega16/32、ATmega64等器件的官方翻译的中文数据手册,这给人们学习和使用AVR器件提供了很大的帮助。
目前,AVR又推出了功能更强大的Xmega系列的单片机,它和上述AVR单片机具有同一种内核,只是功能及资源更加强大了。
前面介绍了AVR的起源、AVR系列及主流产品,相信读者对AVR单片机的总体有了一个大致的了解。接下来介绍AVR单片机的特性,并以ATmega系列中的ATmega88V/168V为例(其中以ATmega88V为主)进行介绍。
ATmega88V是一个具有高性能、低功耗的8位AVR微处理器,采用的是先进的RISC结构,拥有131条指令,并且大多数指令的执行时间为单个时钟周期。当工作时钟为16MHz时,它的指令处理速度高达16 MIPS(Million Instructions Per Second),且拥有32×8通用工作寄存器及只需两个时钟周期的硬件乘法器,使得运算更加快速。
ATmega88V拥有系统内可编程8KB的Flash空间,擦写寿命为10 000次,并且具有独立锁定位的可选Boot代码区,可实现系统内编程及真正的同时读/写操作。除了Flash位外,它还具有512B的EEPROM及1KB的片内SRAM。
ATmega88V可以设置为上电复位及可编程的掉电检测,并可设置几个参考值来应对不同工作电压下的掉电检测。它拥有经过标定的片内RC振荡器、片内/外中断源及5种不同的休眠模式(空闲模式、ADC噪声抑制模式、省电模式、掉电模式和Standby模式)。当产品要求在极低功耗下运行时,ATmega88V提供了以下工作模式来应对该要求:在正常模式下,当工作电压为1.8V、频率为1MHz时,电流只有300μA;在掉电模式下,当电压为1.8V时,电流仅有0.5μA。
ATmega88V可以工作在1.8~5.5V之间,其电压范围大,有利于硬件电路的设计。
如图1.3所示为AVR的结构方框图,从图中可以看出ATmega88V包括哪些外设资源。以下是对其中一些外设的简单概述。
ATmega88V具有两个有独立预分频器和比较器功能的8位定时器/计数器和一个有预分频器、比较功能和捕捉功能的16位定时器/计数器,并且支持PWM功能,可以实现可变PWM;它拥有独立的中断源,即比较和溢出两种中断源。有的定时器/计数器还可以实现自动加载。
A/D转换器具有10位精度,最高分辨率时的采样率高达15 kSPS,且有6路复用的单端输入通道。它有连续转换和单次转换两种转换模式。
图1.3 AVR的结构方框图
USART是一个高度灵活的串行通信设备,可以实现全双工操作,拥有高精度的波特率发生器。它有3个独立的中断:发送结束中断、发送数据寄存器空中断及接收结束中断,更方便运用。
SPI允许ATmega88V和其他AVR或其他类型的器件进行高速的同步数据传输。它可选择工作在主机模式还是从机模式,可实现全双工、3线同步数据传输。
I 2 C支持主机/从机操作模式。它拥有7位地址空间,其主机模式可支持最大128个从机地址,且数据传输率高达400kHz。
WDT由独立的128kHz片内振荡器驱动,可以触发复位芯片的操作,用来防止程序进入死区。它还可以产生不同时间间隔的中断。
本节大体讲述了AVR的一些外设,关于其具体的设置与运用,将在往后的章节中一一与读者分享。