具有16KB 系统内可编程 Flash的8 位微控制器.docx

上传人:b****6 文档编号:5373696 上传时间:2022-12-15 格式:DOCX 页数:9 大小:116.95KB
下载 相关 举报
具有16KB 系统内可编程 Flash的8 位微控制器.docx_第1页
第1页 / 共9页
具有16KB 系统内可编程 Flash的8 位微控制器.docx_第2页
第2页 / 共9页
具有16KB 系统内可编程 Flash的8 位微控制器.docx_第3页
第3页 / 共9页
具有16KB 系统内可编程 Flash的8 位微控制器.docx_第4页
第4页 / 共9页
具有16KB 系统内可编程 Flash的8 位微控制器.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

具有16KB 系统内可编程 Flash的8 位微控制器.docx

《具有16KB 系统内可编程 Flash的8 位微控制器.docx》由会员分享,可在线阅读,更多相关《具有16KB 系统内可编程 Flash的8 位微控制器.docx(9页珍藏版)》请在冰豆网上搜索。

具有16KB 系统内可编程 Flash的8 位微控制器.docx

具有16KB系统内可编程Flash的8位微控制器

具有16KB系统内可编程Flash的8位微控制器

产品特性

•高性能、低功耗的8位AVR®微处理器

•先进的RISC结构

–131条指令–大多数指令执行时间为单个时钟周期

–32个8位通用工作寄存器

–全静态工作

–工作于16MHz时性能高达16MIPS

–只需两个时钟周期的硬件乘法器

•非易失性程序和数据存储器

–16K字节的系统内可编程Flash,擦写寿命:

10,000次

–具有独立锁定位的可选Boot代码区,通过片上Boot程序实现系统内编程,真正的同时读写操作

–512字节的EEPROM,擦写寿命:

100,000次

–1K字节的片内SRAM

–可以对锁定位进行编程以实现用户程序的加密

•JTAG接口(与IEEE1149.1标准兼容)

–符合JTAG标准的边界扫描功能

–支持扩展的片内调试功能

–通过JTAG接口实现对Flash、EEPROM、熔丝位和锁定位的编程

•外设特点

–两个具有独立预分频器和比较器功能的8位定时器/计数器

–一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器

–具有独立振荡器的实时计数器RTC

–四通道PWM

–8路10位ADC,8个单端通道,TQFP封装的7个差分通道,2个具有可编程增益(1x,10x,或200x)的差分通道

–面向字节的两线接口

–可编程的串行USART

–主机/从机模式的SPI串行接口

–具有独立片内振荡器的可编程看门狗定时器

–片内模拟比较器

•特殊的处理器特点

–上电复位以及可编程的掉电检测

–片内经过标定的RC振荡器

–片内/片外中断源

–6种睡眠模式:

空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式及扩展的Standby模式

•I/O和封装

–32个可编程的I/O口

–40引脚PDIP封装,44引脚TQFP封装,与44引脚MLF封装

•工作电压:

–ATmega16L:

2.7-5.5V

–ATmega16:

4.5-5.5V

•速度等级

–0-8MHzATmega16L

–0-16MHzATmega16

引脚说明

VCC:

数字电路的电源

GND:

端口A(PA7-PA0):

端口A做为A/D转换器的模拟输入端。

端口A为8位双

向I/O口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以

输出和吸收大电流。

作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低

时将输出电流。

在复位过程中,即使系统时钟还未起振,端口A处于高阻状态。

端口B(PB7-PB0):

端口B为8位双向I/O口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若

内部上拉电阻使能,端口被外部电路拉低时将输出电流。

在复位过程中,即使系统

时钟还未起振,端口B处于高阻状态。

端口B也可以用做其他不同的特殊功能,请

参见P55。

端口C(PC7-PC0):

端口C为8位双向I/O口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若

内部上拉电阻使能,端口被外部电路拉低时将输出电流。

在复位过程中,即使系统

时钟还未起振,端口C处于高阻状态。

如果JTAG接口使能,即使复位出现引脚

PC5(TDI)、PC3(TMS)与PC2(TCK)的上拉电阻被激活。

端口C也可以用做其他不同

的特殊功能,请参见P58。

端口D(PD7-PD0):

端口D为8位双向I/O口,具有可编程的内部上拉电阻。

其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。

作为输入使用时,若

内部上拉电阻使能,则端口被外部电路拉低时将输出电流。

在复位过程中,即使系

统时钟还未起振,端口D处于高阻状态。

端口D也可以用做其他不同的特殊功能,

请参见P60。

RESET:

复位输入引脚。

持续时间超过最小门限时间的低电平将引起系统复位。

门限时间见P35Table15。

持续时间小于门限间的脉冲不能保证可靠复位。

XTAL1:

反向振荡放大器与片内时钟操作电路的输入端。

XTAL2:

反向振荡放大器的输出端。

AVCC:

AVCC是端口A与A/D转换器的电源。

不使用ADC时,该引脚应直接与

VCC连接。

使用ADC时应通过一个低通滤波器与VCC连接。

AREF:

A/D的模拟基准输入引脚。

图1.ATmega16的引脚

AVRATmega16的存储器

本节讲述ATmega16的存储器。

AVR结构具有两个主要的存储器空间:

数据存储器空和程序存储器空间。

此外,ATmega16还有EEPROM存储器以保存数据。

这三个存储器空间都为线性的平面结构。

系统内可编程的Flash程序存储器

ATmega16具有16K字节的在线编程Flash,用于存放程序指令代码。

因为所有的AVR指令为16位或32位,故而Flash组织成8Kx16位的形式。

用户程序的安全性要根据Flash程序存储器的两个区:

引导程序区和应用程序区,分开来考虑。

Flash存储器至少可以擦写10,000次。

ATmega16的程序计数器(PC)为13位,因此可以寻址8K字的程序存储器空间。

引导程序区以及相关的软件安全锁定位请参P241“支持引导装入程序在写的同时可以读(RWW,Read-While-Write)的自我编程能力”,而P254“存储器编程”详述了用SPI或JTAG接口实现对Flash的串行下载。

常数可以保存于整个程序存储器地址空间(参考LPM加载程序存储器指令的说明)。

取指与执行时序图请参“指令执行时序”。

图8.程序存储器映像

SRAM数据存储器

图9给出了ATmega16SRAM空间的组织结构。

前1120个数据存储器包括了寄存器文件、I/O存储器及内部数据SRAM。

起始的96个地址为寄存器文件与I/O存储器,接着是1024字节的内部数据SRAM。

数据存储器的寻址方式分为5种:

直接寻址、带偏移量的间接寻址、间接寻址、带预减量的间接寻址和带后增量的间接寻址。

寄存器文件中的寄存器R26到R31为间接寻址的指针寄存器。

直接寻址范围可达整个数据区。

带偏移量的间接寻址模式能够寻址到由寄存器Y和Z给定的基址附近的63个地址。

在自动预减和后加的间接寻址模式中,寄存器X、Y和Z自动增加或减少。

32个通用寄存器、64个I/O寄存器及1024个字节的内部数据SRAM可以通过所有上述的寻址模式进行访问。

寄存器文件的描述见“通用寄存器文件”。

图9.数据存储器映像

数据存储器访问时间

本节说明访问内部存储器的时序。

如图10所示,内部数据SRAM访问时间为两个clkCPU时钟。

图10.片上SRAM存取周期

EEPROM数据存储器

ATmega16包含512字节的EEPROM数据存储器。

它是作为一个独立的数据空间而存在的,可以按字节读写。

EEPROM的寿命至少为100,000次擦除周期。

EEPROM的访问由地址寄存器、数据寄存器和控制寄存器决定。

通过SPI和JTAG及并行电缆下载EEPROM数据的操作请分别参见P268和P272。

EEPROM读/写访问

EEPROM的访问寄存器位于I/O空间。

EEPROM的写访问时间由Table1给出。

自定时功能可以让用户软件监测何时可以开始写下一字节。

用户操作EEPROM需要注意如下问题:

在电源滤波时间常数比较大的电路中,上电/下电时VCC上升/下降速度会比较慢。

此时CPU可能工作于低于晶振所要求的电源电压。

请参见P20“防止EEPROM数据丢失”以避免出现EEPROM数据丢失的问题。

为了防止无意识的EEPROM写操作,需要执行一个特定的写时序。

具体参看EEPROM控制寄存器的内容。

执行EEPROM读操作时,CPU会停止工作4个周期,然后再执行后续指令;执行EEPROM写操作时,CPU会停止工作2个周期,然后再执行后续指令。

模数转换器特点

•10位精度

•0.5LSB的非线性度

•±2LSB的绝对精度

•65-260μs的转换时间

•最高分辨率时采样率高达15kSPS

•8路复用的单端输入通道

•7路差分输入通道

•2路可选增益为10x与200x的差分输入通道

•可选的左对齐ADC读数

•0-VCC的ADC输入电压范围

•可选的2.56VADC参考电压

•连续转换或单次转换模式

•通过自动触发中断源启动ADC转换

•ADC转换结束中断

•基于睡眠模式的噪声抑制器

注意:

1.在PDIP封装下的差分输入通道器件未经测试。

只保证器件在TQFP与MLF封装下正常工作。

ATmega16有一个10位的逐次逼近型ADC。

ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。

单端电压输入以0V(GND)为基准。

器件还支持16路差分电压输入组合。

两路差分输入(ADC1、ADC0与ADC3、ADC2)有可编程增益级,在A/D转换前给差分输入电压提供0dB(1x)、20dB(10x)或46dB(200x)的放大级。

七路差分模拟输入通道共享一个通用负端(ADC1),而其他任何ADC输入可做为正输入端。

如果使用1x或10x增益,可得到8位分辨率。

如果使用200x增益,可得到7位分辨率。

ADC包括一个采样保持电路,以确保在转换过程中输入到ADC的电压保持恒定。

ADC的框图如Figure98所示。

ADC由AVCC引脚单独提供电源。

AVCC与VCC之间的偏差不能超过±0.3V。

请参考P206“ADC噪声抑制器”来了解如何连接这个引脚。

标称值为2.56V的基准电压,以及AVCC,都位于器件之内。

基准电压可以通过在AREF引脚上加一个电容进行解耦,以更好地抑制噪声。

操作

ADC通过逐次逼近的方法将输入的模拟电压转换成一个10位的数字量。

最小值代表GND,最大值代表AREF引脚上的电压再减去1LSB。

通过写ADMUX寄存器的REFSn位可以把AVCC或内部2.56V的参考电压连接到AREF引脚。

在AREF上外加电容可以对片内参考电压进行解耦以提高噪声抑制性能。

模拟输入通道与差分增益可以通过写ADMUX寄存器的MUX位来选择。

任何ADC输入引脚,像GND及固定能隙参考电压,都可以作为ADC的单端输入。

ADC输入引脚可选做差分增益放大器的正或负输入。

如果选择差分通道,通过选择被选输入信号对的增益因子得到电压差分放大级。

然后放大值成为ADC的模拟输入。

如果使用单端通道,将绕过增益放大器。

通过设置ADCSRA寄存器的ADEN即可启动ADC。

只有当ADEN置位时参考电压及输入通道选择才生效。

ADEN清零时ADC并不耗电,因此建议在进入节能睡眠模式之前关闭ADC。

ADC转换结果为10位,存放于ADC数据寄存器ADCH及ADCL中。

默认情况下转换结果为右对齐,但可通过设置ADMUX寄存器的ADLAR变为左对齐。

如果要求转换结果左对齐,且最高只需8位的转换精度,那么只要读取ADCH就足够了。

否则要先读ADCL,再读ADCH,以保证数据寄存器中的内容是同一次转换的结果。

一旦读出ADCL,ADC对数据寄存器的寻址就被阻止了。

也就是说,读取ADCL之后,即使在读ADCH之前又有一次ADC转换结束,数据寄存器的数据也不会更新,从而保证了转换结果不丢失。

ADCH被读出后,ADC即可再次访问ADCH及ADCL寄存器。

ADC转换结束可以触发中断。

即使由于转换发生在读取ADCH与ADCL之间而造成ADC无法访问数据寄存器,并因此丢失了转换数据,中断仍将触发。

启动一次转换

向ADC启动转换位ADSC位写"1”可以启动单次转换。

在转换过程中此位保持为高,直到转换结束,然后被硬件清零。

如果在转换过程中选择了另一个通道,那么ADC会在改变通道前完成这一次转换。

ADC转换有不同的触发源。

设置ADCSRA寄存器的ADC自动触发允许位ADATE可以使能自动触发。

设置ADCSRB寄存器的ADC触发选择位ADTS可以选择触发源(见触发源列表中对ADTS的描述)。

当所选的触发信号产生上跳沿时,ADC预分频器复位并开始转换。

这提供了一个在固定时间间隔下启动转换的方法。

转换结束后即使触发信号仍然存在,也不会启动一次新的转换。

如果在转换过程中触发信号中又产生了一个上跳沿,这个上跳沿将被忽略。

即使特定的中断被禁止或全局中断使能位为0,中断标志仍将置位。

这样可以在不产生中断的情况下触发一次转换。

但是为了在下次中断事件发生时触发新的转换,必须将中断标志清零。

图99.ADC自动触发逻辑

使用ADC中断标志作为触发源,可以在正在进行的转换结束后即开始下一次ADC转换。

之后ADC便工作在连续转换模式,持续地进行采样并对ADC数据寄存器进行更新。

第一次转换通过向ADCSRA寄存器的ADSC写1来启动。

在此模式下,后续的ADC转换不依赖于ADC中断标志ADIF是否置位。

如果使能了自动触发,置位ADCSRA寄存器的ADSC将启动单次转换。

ADSC标志还可用来检测转换是否在进行之中。

不论转换是如何启动的,在转换进行过程中ADSC一直为1。

预分频及ADC转换时序

图100.ADC预分频器

在默认条件下,逐次逼近电路需要一个从50kHz到200kHz的输入时钟以获得最大精度。

如果所需的转换精度低于10比特,那么输入时钟频率可以高于200kHz,以达到更高的采样率。

ADC模块包括一个预分频器,它可以由任何超过100kHz的CPU时钟来产生可接受的ADC时钟。

预分频器通过ADCSRA寄存器的ADPS进行设置。

置位ADCSRA寄存器的ADEN将使能ADC,预分频器开始计数。

只要ADEN为1,预分频器就持续计数,直到ADEN清零。

ADCSRA寄存器的ADSC置位后,单端转换在下一个ADC时钟周期的上升沿开始启动。

差分转换时序见P204“差分增益信道”。

正常转换需要13个ADC时钟周期。

为了初始化模拟电路,ADC使能(ADCSRA寄存器的ADEN置位)后的第一次转换需要25个ADC时钟周期。

在普通的ADC转换过程中,采样保持在转换启动之后的1.5个ADC时钟开始;而第一次ADC转换的采样保持则发生在转换启动之后的13.5个ADC时钟。

转换结束后,ADC结果被送入ADC数据寄存器,且ADIF标志置位。

ADSC同时清零(单次转换模式)。

之后软件可以再次置位ADSC标志,从而在ADC的第一个上升沿启动一次新的转换。

使用自动触发时,触发事件发生将复位预分频器。

这保证了触发事件和转换启动之间的延时是固定的。

在此模式下,采样保持在触发信号上升沿之后的2个ADC时钟发生。

为了实现同步逻辑需要额外的3个CPU时钟周期。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 预防医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1