ATmega16是基于增强的AVR RISC结构的低功耗8 位
CMOS微控制器。由于其先进的
指令集以及单时钟周期指令执行时间,ATmega16 的
数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。
程序简介
ATmega16 AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与运算逻单元(ALU) 相连接,使得一条指令可以在一个
时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC
微控制器最高至10 倍的
数据吞吐率。
ATmega16 有如下特点:16K
字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于
边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的
定时器/ 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用
串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片内振荡器的可编程
看门狗定时器,一个SPI
串行端口,以及六个可以通过软件进行选择的省电模式。
工作于空闲模式时CPU 停止工作,而USART、两线接口、A/D
转换器、SRAM、T/C、SPI 端口以及
中断系统继续工作;掉电模式时
晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于
休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有
快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。
本芯片是以Atmel 高密度
非易失性存储器技术生产的。片内ISP Flash 允许
程序存储器通过ISP
串行接口,或者
通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内, ATmega16 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
ATmega16 具有一整套的编程与系统开发工具,包括:C 语言
编译器、宏汇编、 程序调试器/ 软件
仿真器、仿真器及评估板。
产品特性
u 高性能、低功耗的8位AVR微处理器
l 先进的RISC 结构
l 131条指令
l 大多数指令执行时间为单个时钟周期
l 32个8位通用工作寄存器
l 全静态工作
l 工作于16MHz时性能高达16MIPS
l 非易失性程序和数据存储器
l 16K 字节的系统内可编程Flash,擦写寿命: 10,000次
l 具有独立锁定位的可选Boot代码区,通过片上Boot程序实现系统内编程,真正的同时读写操作
l 512 字节的EEPROM,擦写寿命: 100,000次
l 1K字节的片内SRAM
l 可以对锁定位进行编程以实现用户程序的加密
l JTAG 接口( 与IEEE 1149.1 标准兼容)
l 符合JTAG 标准的边界扫描功能
l 支持扩展的片内调试功能
l 通过JTAG 接口实现对Flash、EEPROM、
熔丝位和锁定位的编程
外设特点
u 两个具有独立预分频器和
比较器功能的8位
定时器/计数器
l 一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器
l 具有独立振荡器的实时计数器RTC
l 四通道PWM
l 8路10位ADC,8个单端通道,2个具有可编程增益(1x, 10x, 或200x)的差分通道
l 面向字节的两线接口
l 两个可编程的串行USART
u 特殊的处理器特点
l 上电复位以及可编程的掉电检测
l 6种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby 模式以及扩展的Standby模式 u I/O和封装
l 32个可编程的I/O口
l 40引脚PDIP封装, 44引脚
TQFP封装, 与44引脚
MLF封装u 工作电压
:
l ATmega16L:2.7 - 5.5V
l ATmega16:4.5 - 5.5V
u 速度等级
l 8MHz ATmega16L
l 0-16MHz ATmega16
u ATmega16L在1MHz, 3V, 25°C时的功耗
l 正常模式: 1.1 mA
l 空闲模式: 0.35 mA
l 掉电模式: < 1 μA
引脚功能
引脚名称引脚功能说明
VCC 电源正
端口A(PA7..PA0)
端口A 做为A/D
转换器的模拟输入端。端口A 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使
系统时钟还未起振,端口A 处于
高阻状态。
端口B(PB7..PB0)
端口B 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口B 处于高阻状态。
端口B 也可以用做其他不同的特殊功能.
端口C(PC7..PC0)
端口C 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使
系统时钟还未起振,端口C 处于
高阻状态。如果
JTAG接口使能,即使复位出现引脚 PC5(TDI)、 PC3(TMS)与 PC2(TCK)的上拉电阻被激活。端口C 也可以用做其他不同的特殊功能.
端口D(PD7..PD0)
端口D 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口D 处于
高阻状态。端口D 也可以用做其他不同的特殊功能.
RESET 复位输入
引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见P36Table 15。持续时间小于门限间的脉冲不能保证可靠复位。
XTAL1
反向振荡放大器与片内时钟操作电路的输入端。
XTAL2
反向振荡放大器的输出端。
AVCC
AVCC是端口A与
A/D转换器的电源。不使用ADC时,该引脚应直接与VCC连接。使用ADC时应通过一个
低通滤波器与VCC 连接。
AREF
ATmega16 内核介绍
右边为AVR 结构的方框图
为了获得最高的性能以及
并行性, AVR 采用了Harvard 结构,具有独立的数据和程序总线。
程序存储器里的指令通过一级流水线运行。CPU 在执行一条指令的同时读取下一条指令( 在本文称为预取)。这个概念实现了指令的单
时钟周期运行。程序存储器是可以在线编程的FLASH。
快速访问
寄存器文件包括32 个8 位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU 操作。在典型的ALU 操作中,两个位于寄存器文件中的
操作数同时被访问,然后执行运算,结果再被送回到寄存器文件。整个过程仅需一个
时钟周期。
寄存器文件里有6 个寄存器可以用作3 个16 位的
间接寻址寄存器指针以寻址数据空间,实现高效的地址运算。其中一个指针还可以作为
程序存储器查询表的地址指针。这些附加的功能寄存器即为16 位的X、Y、Z 寄存器。
ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。ALU也可以执行单寄存器操作。运算完成之后
状态寄存器的内容得到更新以反映操作结果。
程序流程通过有/ 无条件的跳转指令和调用指令来控制,从而
直接寻址整个
地址空间。大多数
指令长度为16 位,亦即每个程序存储器地址都包含一条16 位或32 位的指令。
程序存储器空间分为两个区:引导程序区(Boot 区) 和应用程序区。这两个区都有专门的锁定位以实现读和读/
写保护。用于写应用程序区的SPM 指令必须位于引导程序区。
在中断和调用
子程序时返回地址的
程序计数器(PC) 保存于
堆栈之中。堆栈位于通用数据SRAM,因此其深度仅受限于SRAM 的大小。在复位例程里用户首先要初始化
堆栈指针SP。这个
指针位于I/O 空间,可以进行读写访问。数据SRAM 可以通过5 种不同的
寻址模式进行访问。
AVR有一个灵活的中断模块。
控制寄存器位于I/O空间。
状态寄存器里有全局中断使能位。每个中断在
中断向量表里都有独立的中断向量。各个中断的优先级与其在中断向量表的位置有关,
中断向量地址越低,优先级越高。 I/O 存储器空间包含64 个可以直接寻址的地址,作为CPU 外设的控制寄存器、SPI,以及其他I/O 功能。映射到数据空间即为
寄存器文件之后的地址0x20 - 0x5F。
AVR单片机的型号标识解析
1. 型号紧跟的字母,表示电压工作范围。带“L”:2.7-5.5V;若缺省,不带“L”:4.5-5.5V。
例:ATmega48-20AU,不带“L”表示工作电压为4.5-5.5V。
2. 后缀的数字部分,表示支持的最高
系统时钟。 例:ATmega48-20AU,“20”表示可支持最高为20MHZ的系统时钟。
3. 后缀第一(第二)个字母,表示封装。“P”:
DIP封装,“A”:
TQFP封装,“M”:MLF封装。 例:ATmega48-20AU,“A”表示TQFP封装。
4. 后缀最后一个字母,表示应用级别。“C”:商业级,“I”:工业级(有铅)、“U”工业级(无铅)。 例:ATmega48-20AU,“U”表示无铅工业级。ATmega48-20AI,“I”表示有铅工业级。 AVR 8-Bit MCU的最大特点
与其它8-Bit MCU相比,AVR 8-Bit MCU最大的特点是:
·
哈佛结构,具备1MIPS / MHz的高速运行处理能力;
· 超功能
精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC进行处理造成的瓶颈现象;
· 快速的存取
寄存器组、单周期
指令系统,大大优化了
目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发;
· 作输出时与PIC的HI/LOW相同,可输出40mA(单一输出),作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力;
· 片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠;
· 大部分AVR片上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
· 大部分AVR除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序。
AVR单片机的应用区域
目前,AVR已被广泛用于:
· 空调控制板
· 打印机控制板
· 智能电表
· LED控制屏
· 医疗设备
· GPS
· 性价比:AVR大部分型号的性价比较高,性价比表现突出的型号有:atmega48、atmega8、atmega16、atmega169P
· 供货方面:通用型号的AVR供货较为稳定,非常规型号的AVR样品及供货仍存在问题。
· 市场占有率:目前,AVR的市场占有率还是不如PIC与51,但,AVR的优点使得AVR的市场占有一直在扩展,AVR的年用量也一直在上涨。