11477E–AVR–12/03产品特性•高性能、低功耗的8位AVR®微处理器•RISC结构–118条指令–大多数指令执行时间为单个时钟周期–32个8位通用工作寄存器–全静态工作–工作于16MHz时性能高达16MIPS•非易失性程序和数据存储器–2K字节的系统内可编程Flash擦写寿命:10,000次–128字节的系统内可编程EEPROM擦写寿命:10,000次–128字节的片内SRAM–可以对锁定位进行编程以及实现EEPROM数据的加密•外设特点–具有独立预分频器的8位定时器/计数器–具有独立预分频器的高速8位定时器2个具有独立输出比较寄存器的高频率PWM非重叠的反相PWM输出引脚–具有开始状态检测器的通用串行接口–10位ADC11个单端通道8个差分ADC通道7对具有可编程增益(1x,20x)的差分通道–片内模拟比较器–外部中断–11个引脚电平变化可以触发中断–具有独立片内振荡器的可编程看门狗定时器•特殊的处理器特点–低功耗空闲模式、噪声抑制模式、省电模式–上电复位以及可编程的掉电检测–片内/片外中断源–通过SPI端口在系统内可编程–经过标定的片内RC振荡器•I/O和封装–20引脚PDIP/SOIC:16个可编程I/O线–32引脚MLF:16个可编程I/O线•工作电压–ATtiny26L:2.7V-5.5V–ATtiny26:4.5V-5.5V•速度等级–ATtiny26L:0-8MHz–ATtiny26:0-16MHz•ATtiny26L的功耗–16MHz,5V,25°C:15mA–1MHz,3V,25°C:0.70mA–1MHz,3V,25°C,空闲模式:0.18mA–掉电模式:1µA具有2KB系统内可编程Flash的8位微控制器ATtiny26ATtiny26L本文是英文数据手册的中文翻译,其目的是方便中国用户的阅读。它无法自动跟随原稿的更新,同时也可能存在翻译上的错误。读者应该以英文原稿为参考以获得更准确的信息。Rev.1477E–AVR–12/032ATtiny26(L)1477E–AVR–12/03引脚配置1234567891020191817161514131211(MOSI/DI/SDA/OC1A)PB0(MISO/DO/OC1A)PB1(SCK/SCL/OC1B)PB2(OC1B)PB3VCCGND(ADC7/XTAL1)PB4(ADC8/XTAL2)PB5(ADC9/INT0/T0)PB6(ADC10/RESET)PB7PA0(ADC0)PA1(ADC1)PA2(ADC2)PA3(AREF)GNDAVCCPA4(ADC3)PA5(ADC4)PA6(ADC5/AIN0)PA7(ADC6/AIN1)PDIP/SOIC1234567824232221201918173231302928272625910111213141516MLFTopViewNC(OC1B)PB3NCVCCGNDNC(ADC7/XTAL1)PB4(ADC8/XTAL2)PB5NCPA2(ADC2)PA3(AREF)GNDNCNCAVCCPA4(ADC3)NC(ADC9/INT0/T0)PB6(ADC10/RESET)PB7NC(ADC6/AIN1)PA7(ADC5/AIN0)PA6(ADC4)PA5NCPB2(SCK/SCL/OC1B)PB1(MISO/DO/OC1A)PB0(MOSI/DI/SDA/OC1A)NCNCNCPA0(ADC0)PA1(ADC1)3ATtiny26(L)1477E–AVR–12/03综述ATtiny26(L)是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATtiny26(L)的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器昀高至10倍的数据吞吐率。ATtiny26(L)有包含11个单端通道与8个差分通道的高精度ADC。七个具有可选增益为20x的差分通道。其中四个具有可选增益的差分通道可同时使用。ATtiny26(L)还有含两个独立输出的高频8位PWM模块。两个PWM输出有用来同步整流的反向非重叠输出引脚。ATtiny26(L)的通用串行接口允许通过TWI或SM总线接口的软件的执行。根据其特点,它适用于高集成度的电池充电器、镇流器、低端调温器、火警探测器等。ATtiny26(L)有2K字节Flash,128字节EEPROM,128字节SRAM,16个通用I/O口线,32个通用工作寄存器,两个8定时器/计数器,其中一个有PWM输出,片内/外振荡器,片内/外中断,可编程看门狗定时器,含两个差分输入电压增益级的11通道10位模数转换器,以及四个可以通过软件进行选择的省电模式。工作于空闲模式时CPU停止工作,而T/C以及中断系统继续工作;ATtiny26(L)还有专门的ADC噪声抑制模式降低ADC转换噪声,ADC噪声抑制模式时终止ADC以外所有I/O模块的工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;Standby模式下只有外部晶体振荡器运行,其余与掉电模式相同。ATtiny26(L)中引脚触发唤醒与中断使能的特性,使得器件只消耗极少的电流,同时具有快速启动能力。本芯片是以Atmel高密度非易失性存储器技术生产的。通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATtiny26(L)成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。ATtiny26(L)具有一整套的编程与系统开发工具,包括:宏汇编、程序调试器/软件仿真器、仿真器及评估板。4ATtiny26(L)1477E–AVR–12/03方框图Figure1.ATtiny26(L)结构框图WATCHDOGTIMERMCUCONTROLREGISTERUNIVERSALSERIALINTERFACETIMER/COUNTER0DATADIR.REG.PORTADATAREGISTERPORTAPROGRAMMINGLOGICTIMINGANDCONTROLTIMER/COUNTER1MCUSTATUSREGISTERPORTADRIVERSPA0-PA7VCCGND+-ANALOGCOMPARATOR8-BITDATABUSADCISPINTERFACEINTERRUPTUNITEEPROMINTERNALOSCILLATOROSCILLATORSCALIBRATEDOSCILLATORINTERNALDATADIR.REG.PORTBDATAREGISTERPORTBPORTBDRIVERSPB0-PB7PROGRAMCOUNTERSTACKPOINTERPROGRAMFLASHSRAMGENERALPURPOSEREGISTERSINSTRUCTIONREGISTERINSTRUCTIONDECODERSTATUSREGISTERZYXALUCONTROLLINESAVCC5ATtiny26(L)1477E–AVR–12/03引脚说明VCC数字电路的电源GND地AVCCAVCC是端口A与A/D转换器的电源。不使用ADC时该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC连接,详见P75。端口A(PA7..PA0)端口A为8位通用I/O口,每个管脚都具有独立可控制的内部上拉电阻。端口A还做为ADC与模拟比较器的模拟输入端及引脚触发中断端口,详见P92“端口的第二功能”。端口B(PB7..PB0)端口B为8位通用I/O口,PB6..0具有独立可控制的内部上拉电阻。没有作为复位引脚使用时,PB7可以用作I/O口。编程RSTDISBL熔丝位(“0”)后,PB7作为I/O口使用,取代其作为RESET引脚的功能。端口B在ADC、时钟、T/C、USI、SPI编程与引脚触发中断中的功能描述,详见P92“端口的第二功能”。外部复位通过在PB7/RESET引脚上施加低电平实现。即使时钟不运行,只要复位脉冲大于50ns时就会产生复位,更短的脉冲不保证产生复位。XTAL1反向振荡放大器与片内时钟操作电路的输入端。XTAL2反向振荡放大器的输出端。6ATtiny26(L)1477E–AVR–12/03结构综述快速访问寄存器文件包括32个8位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU操作。在典型的ALU操作中,两个位于寄存器文件中的操作数同时被访问,然后执行运算,结果再被送回到寄存器文件。整个过程仅需一个时钟周期。寄存器文件里有6个寄存器可以用作3个16位的间接寻址寄存器指针以寻址数据空间,实现高效的地址运算。其中一个指针还可以作为程序存储器查询表的地址指针。这些附加的功能寄存器即为16位的X、Y、Z寄存器。Figure2.ATtiny26(L)AVR增强RISC结构ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。ALU也可以执行单寄存器操作。Figure2给出ATtiny26(L)AVR增强RISC微控制器结构。除寄存器操作模式外,当寄存器文件位于数据空间的昀低的32个地址($00-$1F),可使用常规内存寻址方式,就象对普通存储器地址一样访问它们。I/O存储器空间包含64个可以直接寻址的地址,作为CPU外设的控制寄存器、T/C、ADC,以及其他I/O功能。映射到数据空间即为寄存器文件之后的地址$20-$5F。为了获得昀高的性能以及并行性,AVR采用了Harvard结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。CPU在执行一条指令的同时读取下一条指令(在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器是可以在线编程的Flash。程序流程通过跳转指令和调用指令来控制,从而直接寻址整个地址空间。所有指令长度为16位,亦即每个程序存储器地址都包含一条16位的指令。在中断和调用子程序时返回地址的程序计数器(PC)保存于堆栈之中。堆栈位于通用数据SRAM,因此其深度仅受限于SRAM的大小。在复位例程里用户首先要初始化堆栈指针1024x16ProgramFLASHInstructionRegisterInstructionDecoderProgramCounterControlLines32x8GeneralPurposeRegistersALUDirectAddressingIndirectAddressingStatusandTestControlRegistersInterruptUnit2x8-bitTimer/CounterUniversalSerialInterfaceWatchdogTimerAnalogComparatorI/OLines8-bitDataBusISPUnitADC128x8SRAM128byteEEPROM7ATtiny26(L)1477E–AVR–12/03SP。这个指针位于I/O空间,可以进行读写访问。对于用C语言编写的程序,在链接程序中必须给出堆栈深度,详见C程序用户指南。128字节数据SRAM可以通过5种不同的寻址模式进行访问。AVR存储器空间为线性的平面结构。I/O存储器空间包含64个可以直接寻址的地址,作为CPU外设的控制寄存器、T/C,以及其他I/O功能。AVR存储器空间为线性的平面结构。AVR有一个灵活的中断模块。控制寄存器位于I/O空间。状态寄存器里有全局中断使能位。每个中断在中断向量表里都有独立的中断向量。各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。通用寄存器文件Figure3为CPU32个通用工作寄存器的结构。Figure3.AVRCPU通用工作寄存器大多数操作寄存器文件的指令都可以直接访问所有的寄存器,而且多数这样的指令的执行时间为单