Atmega16
- Atmega16
ATmega16是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。
Atmega16介绍
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 语言 编译器、宏汇编、 程序调试器/ 软件仿真器、仿真器及评估板。
ATmega16产品特性
u 高性能、低功耗的8位AVR微处理器
l 先进的RISC 结构
l 131条指令
l 大多数指令执行时间为单个时钟周期
l 32个8位通用工作寄存器
l 全静态工作
l 工作于16MHz时性能高达16MIPS
l 只需两个时钟周期的硬件乘法器
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
l 可工作于主机/ 从机模式的SPI 串行接口
l 具有独立片内振荡器的可编程看门狗定时器
l 片内模拟比较器
u 特殊的处理器特点
l 上电复位以及可编程的掉电检测
l 片内经过标定的RC振荡器
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
ATmega16 引脚功能
引脚名称引脚功能说明
VCC 电源正
GND 电源地
端口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
A/D 的模拟基准输入引脚。
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 存储器空间为线性的平面结构。
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”表示工作电压为2.7-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单片机
· 性价比:AVR大部分型号的性价比较高,性价比表现突出的型号有:atmega48、atmega8、atmega16、atmega169P
· 供货方面:通用型号的AVR供货较为稳定,非常规型号的AVR样品及供货仍存在问题。
· 市场占有率:目前,AVR的市场占有率还是不如PIC与51,但,AVR的优点使得AVR的市场占有一直在扩展,AVR的年用量也一直在上涨。
开放分类
贡献者