ATmega128中文手册

所需积分/C币:50 2017-05-05 08:25:35 2.7MB PDF
191
收藏 收藏
举报

ATmega128中文手册
ATmega128 方框图 Figure2.方框图 PF0·PF7 PAO- PA7 PC0·PC7 GND PORTE DRIVERS PORTA DRIVERS PORTC DRIVERS ▲▲ DATA REGISTER DATA DIR DATA REGISTER DATA REGISTER DIR PORTF REG. PO PORTA RTA PORIC 8-BIT DATA BUS AVCC CALIB. OSG AGND ADC INTERNAL OSCILLATOR AREF OSCILLATOR JTAG TAP PROGRAM COUNTER POINTER TIMER OSCILLATOR ON-CHIPDEBUG PROGRAM SRAM MCU CONTROL TIMING AND FLASH REGISTER CONTROL BOUNDARY SCAN NS IRUC TION REG STER GENERAL PURPOSE COUNTERs F REGIS TERS PEN PROGRAMMING LOGIC NSTRUCTION NTERRUPT DECODER UNIT CONTROL LINES ALU EEPROM STATUS REGISTER USARTO USART1 TWO-WIRE SERIAL NTERFACE DATA REGISTER DATA DIR DATA REGISTER DATA DIR ATA REGIST DATA DIR DATA REG. DATA DIR PORIE REG. PORTE PORIB REG PORIB PORID PORTG G. PORIG ZYY¥ ↓y↓↓↓↓↓↓ PORTE DRIVERS PORTB DRIVERS PORTD DRⅣERs PORTG DRIVERS PEO-PE7 PB0-PB7 PDO-PD7 PG0-PG4 个m 2467L-AVR-0504 AVR内核具有丰富的指合集和32个通用工作寄存器。所有的寄存器都直接与算逻单元 (ALU)相连接,使得一条指合可以在一个时钟周期内同时访问两个独立的寄存器。这种结 构大大提高了代码效率,并且具有比普通的复杂指合集微处理器高10倍的数据吞吐率。 ATmega128具有如下特点:128K字节的系统内可编程Fash(具有在写的过程中还可以读 的能力,即RWW)、4K字节的 EEPROM、4K字节的SRAM、53个通用|o口线、32 个通用工作寄存器、实时时钟RTC、4个灵活的具有比较模式和PWM功能的定时器/计 数器(TC)、两个 USART、面向字节的两线接囗TW、8通道10位ADC(具有可选的可 编程增益)、具有片內振荡器的可编程看门狗定时器、SP|串行端口、与lEE11491规 范兼容的JTAG测试接口(此接口同时还可以用于片上调试),以及六种可以通过软件选 择的省电模式。空闲模式时CP∪停止工作,而SRAM、TC、SP端口以及中断系统绊 续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工 作,寄存器的内容则一直保持;省电模式时异步定时器继续运行,以允许用户维持时间基 准,器件的其他部分则处于睡眠状态;ADC噪声抑制模式时CPU和所有的MO模块停止 运行,而异步定时器和ADC继续工作,以减少ADC转换时的开关噪声; Standby模式 时振荡器工作而其他部分睡眠,使得器件只消耗极少的电流,同时具有快速启动能力;扩 展 Standby模式则允许振荡器和异步定时器继续工作。 器件是以 Atmel的高密度非易失性内存技术生产的。片内 SP Flash可以通过SP接口、 通用编程器,或引导程序多次编程。引导程序可以使用任何接口来下载应用程序到应用 Flash存储器。在更新应用 Flash存储器时引导Fash区的程序继续运行,实现RWW操作。 通过捋8位 RISC CP心U与系统内可编程的 Flash集成在一个芯片内, ATmega128为许 多嵌入式控制应用提供了灵活而低成本的方案。 ATmega128AVR有整套的开发工具,包括C编译器,宏汇编,程序调试器/仿真器和评估 板 ATmega103与 ATmega128是一个很复杂的微处理器,其Wo数目为AVR指合集所保留的64个O的超 ATmega128的兼容性 集。为了保持对 ATmega103的兼容性, ATmega103的MO位置在 ATmega128得到了 保留。多数添加的∥O位于扩展的O空间$60到$FF(即位于 ATmega103的内部RAM 空间)。这些地址可以通过指合 LDILDSILDD和ST/ STS/STD来访问,而不是NOUT指 合。对于 ATmega103用户而言,内部RAM可能还是个问题。此外,由于中断向量的增 加,若程序使用了绝对地址可能也是个问题。为了解决这些问题, ATmega128设置了一 个熔丝位M103C。此熔丝位编程后就可以使 ATmega128工作于 ATmega103兼容模式。 此时扩展/空间捋无法使用,而内部RAM正好与 ATmega103的一致。同时扩展的中 断向量也被取消了 ATmega128百分之百与 ATmega103引脚兼容,可以在PCB上取代 ATmega103。应用手 册“ Replacing ATmega103 by atmega128”详细告诉用户在用 ATmega128取代 ATmega103时需要注意的地方。 ATmega103兼容模式 通过编程熔丝位M103C,从RAM、O引脚和中断向量的角度 ATmega128将与 ATmega103相兼容。但是, ATmega128的一些新特点也就无法使用了。如下所示 只剩下一个 USART,而且只支持异步模式。波特率寄存器只有低8位可用。 只有一个16位的定时器/计数器,两个比较寄存器,而不是两个16位定时器/计数器, 三个比较寄存器。 不支持两线接口。 端口C只能输出。 端口G只能用做第二功能,而不能作为通用O端口。 端口F只能作为输入,而不能作为ADC的模拟输人引脚。 不支持引导程序功能。 不能够调节片内RC振荡器的频率。 ATmega 128 2467L-AVR-05/04 ATmega128 外部存储器接口无法释放任何一个地址引脚作为通用/O,也不能够为不同的外部存 储器地址区配置不同的等待周期 下面的内容则使 ATmega128更兼容 ATmega103 在 MCUCSR里只有 EXTRE和PORF。 改变看门狗溢出时间没有时序要求。 外部中断引脚3-0只能作为电平中断。 USART没有F|FO缓冲器。 在写操作中, ATmega103没有使用的MO应该写0 引脚说明 数字电路的电源。 GND 地。 端口A(PA7PAO) 端口A为8位双向O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动 特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电 路拉低时捋输出电流。复位发生时端口A为三态。 端口A也可以用做其他不同的特殊功能,请参见P68 端口B(PB7.PBO) 端口B为8位双向O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动 特性,可以输出和吸收大电流。作为输人使用时,若內部上拉电阻使能,则端口被外部电 路拉低时将输出电流。复位发生时端口B为三态。 端口B也可以用做其他不同的特殊功能,请参见P69。 端口c(PC7PCO) 端口C为8位双向/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动 特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电 路拉低时将输出电流。复位发生时端口C为三态。 端口C也可以用做其他不同的特殊功能,请参见P72。在 ATmega103兼容模式下,端 口C只能作为输出,而且在复位发生时不是三态。 端口D(PD7PDO) 端口D为8位双向l/O口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动 特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电 路拉低时将输出电流。复位发生时端口D为三态。 端口D也可以用做其他不同的特殊功能,请参见P73。 端口E(PE7PE0) 端口E为8位双向MO口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动 特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电 路拉低时将输出电流。复位发生时端口E为三态。 端口E也可以用做其他不同的特殊功能,请参见P75。 端口F(PF7.PFO) 端口F为ADC的模拟输入引脚。 如果不作为ADC的模拟输人,端口F可以作为8位双向/O口,并具有可编程的内部上 拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时 若内部上拉电阻使能,则端口被外部电路拉低时捋输出电流。复位发生时端口F为三态。 如果使能了JTAG接口,则复位发生时引脚PF7(TD|)、PF5(TMS)和PF4(TcK)的上拉 电阻使能 端口F也可以作为JTAG接口。 个m 5 2467L-AVR-0504 m 在 ATmega103兼容模式下,端口F只能作为输入引脚。 端口GPG4.PGO) 端口G为5位双向ⅣO口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动 特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电 路拉低时将输出电流。复位发生时端口G为三态。 端口G也可以用做其他不同的特殊功能。 在 ATmega103兼容模式下,端口G只能作为外部存储器的所存信号以及32kHz振荡器 的输入,并且在复位时这些引脚初始化为PG0=1,PG1=1以及PG2=0。PG3和 PG4是振荡器引脚。 RESET 复位输入引脚。超过最小门限时间的低电玊捋引起系统复位。门限时间在P47Tabe19 说明。低于此时间的脉冲不能保证可靠复位。 XTAL 1 反向振荡器放大器及片内时钟操作电路的输入。 XTAL2 反向振荡器放大器的输出。 AVCC AVCC为端口F以及ADC转换器的电源,需要与Vcc相连接,即使没有使用ADC也应该如 此。使用ADC时应该通过一个低通滤波器与Vcc连接。 AREF AREF为ADC的模拟基准输入引脚。 PEN PEN是SP|串行下载的使能引脚。在上电复位时保持PEN为低电下将使器件进入SP串行 下载模式。在正常工作过程中PEN引脚没有其他功能。 代码例子 本手册包含了一些简单的代码例子以说明如何使用芯片各个不同的功能。这些例子都假 定在编译之前已经包含了正确的头文件。有些C编译器在头文件里并没有包含位定义和 中断,而且各个C编译器对中断处理有自己不同的处理方式。请注意查阅其文档以获取 具体的信息。 ATmega 128 2467L-AVR-05/04 ATmega128 AVR CPU内核 介绍 本节从总体上讨论AVR内核的结构。CPU的主要任务是保证程序的正确执行。因此它必 须能够访问存储器,执行运算,控制外设以及处理中断。 结构综述 Figure3.AVR结构的方框图 Data bus 8-bl Flash Program Status Progr Interrupt 32X8 Unit Instruction Watchdog Decoder Timer ALU Control lines Comparato 1O Module 2 SRAM VO Module n EEPROM VO Li 为了得到最大程度的性能以及并行性,AVR采用了 Harvard结构,具有独立的数据和程 序总线。程序存储器的指合通过一级流水线运行。CPU在执行一条指合的同时读取下 条指合(在本文称为预取)这个概念实现了指合的单时钟周期运行。程序存储器为可以 在线编程的 FLASH。 快速访问寄存器文件包括32个8位通用工作寄存器,而且都可以在一个时钟周期内访问。 从而实现单时钟周期的ALU操作。在典型的ALU操作过程中,两个位于寄存器文件中的 操作数同时被访问,然后执行相应的运算,结果再被送回寄存器文件。整个过程仅需要 个时钟周期。 寄存器文件里有6个寄存器可以用作3个16位的间接地址寄存器指针以寻址数据空间 实现高效的地址运算。其中一个指针还可以作为程序存储器查询表的地址指针。这些附加 的功能寄存器即为16位的X、Y、乙寄存器 ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。ALU也可以执行单寄存器 操作。运算完成之后状态寄存器的内容捋更新以反映操作结果。 程序流程通过有/无条件的跳转指合和调用指合来控制,从而直接寻址整个地址空间。大 多数指合长度为16位,亦即每个程序存储器地址都包含一条16位或32位的指合, 程序存储器空间分为两个区:引导程序区和应用程序区。这两个区都有专门的锁定位以实 现读和读/写保护。用于写应用程序区的SPM指合必须位于引导程序区。 个m 2467L-AVR-0504 m 在中断和调用子程序时返回地址程序计数器(PC)保存于堆栈之中。堆栈位于通用数据 SRAM,故此其深度仅受限于SRAM的大小。在复位例程里用户首先要初始化堆栈指针 SP。这个指针位于ⅣO空间,可以进行读写访问。数据SRAM可以通过5种不同的寻址模 式进行访问。 AVR存储器空间为线性的卒面结构。 AVR具有一个灵活的中断模块。控制寄存器位于VO空间。状态寄存器里有全局中断使能 位。在程序存储器起始处有一个中断向量表,每一个中断在此都有独立的中断向量。各个 中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。 /○存储器空间包含64个可以直接寻址的地址。映射到数据空间即为寄存器文件之后的地 址$20-$5F。此外, ATmega128在SRAM里还有扩展的|O空间,位于地址$60-$FF。 但是只能使用ST/STs/STD和 LD/LDS/LDD指爷。 ALU-算逻单元 AVR ALU与32个通用工作寄存器直接相连。寄存器与寄存器之间、寄存器与立即数之间 的ALU运算只需要一个时钟周期。ALU操作分为3类:算术、逻辑和位操作。此外还提 供了支持无/有符号数和分数乘法的乘法器。具体请参见指爷集。 状态寄存器 状态寄存器包含了最近执行的算术指合的结果信息。这些信息可以用来改变程序流程以 实现条件操作。状态寄存器的内容只有在ALU运算结束后才会更新。这样,在多数情况 下就不需要专门的比较指合了,从而使系统运行更快速,代码效率更高。 在进入中断例程时状态寄存器不会自动保存;中断返回时也不会自动恹复。这些工作需 要软件来处理。 AVR中断寄存器SREG-定义如下 H s N SREG 读/写 R/W R/ R/ R RN R R/W R/W 初始值 ·Bit7-:全局中断使能 置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果l清雩,则不 论单独中断标志置位与否,都不会产生中断。任意一个中断发生后清響,而执行RET 指爷后置位以使能中断。|也可以通过SE|和CL指爷来置位和清帑。 ·Bit6-T:位拷贝存储 位拷贝指合BLD和BST利用T作为目的或源地址。BST把寄存器的某一位拷贝到T,而 BLD把T拷贝到寄存器的某一位。 ·Bit5-H:半进位标志 半进位标志H表示算术操作发生了半进位。此标志对于BCD运算非常有用。 ·Bit4-S:符号位,S=NeV S为负数标志N与2的补码滏出标志V的异或。 ·Bit3-V:2的补码溢出标志 支持2的补码运算。 Bit2-N:负数标志 表明算术或逻辑操作结果为负。 ·Bit1-z:霁标志 表明算术或逻辑操作结果为霁。 Bit0-C:进位标志 ATmega 128 2467L-AVR-05/04 ATmega128 表明算术或逻辑操作发生了进位。 通用寄存器文件 寄存器文件针对AVR增强型RSC指合集做了优化。为了获得需要的性能和灵活性,寄 存器文件支持以下的输入/输出方案 个8位输出操作数和一个8位结果输入 两个8位位输出操作数和一个8位结果输入 两个8位位输出操作数和一个16位结果输入。 一个16位位输出操作数和一个16位结果输入。 Figure4为cPU32个通用工作寄存器的结构。 Figure4. AVR CPU通用工作寄存器 7 R $0o R2 02 R13 诵用 R14 SOE 工作 R15 SOF 寄存器 R16 10 R17 $11 R26 Ⅹ寄存器,低字节 R27 S1B X寄存器,高字节 R28 Y寄存器,低字节 R29 S1 Y寄存器,高字节 R30 S1E Z寄存器,低字节 R31 $1F Z寄存器,高字节 大多数操作寄存器文件的指合都可以直接访问所有的寄存器,而且多数的执行时间为单 时钟周期。 如 Figure4所示,每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空间的 头32个地址。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器 方面具有极大的灵活性,因为X、Y、Z寄存器可以设置为指向任意寄存器的指针。 Ⅹ寄存器,Y寄存器和Z寄存器寄存器R26.R31除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三 个间接寻址寄存器示于 Figure5。 Figure5.X、Y、Z寄存器 15 XH 0 X寄存器 07 R27(1B) R26(51A) Y寄存器 07 R29($1D) R28⑤$1C 15 ZH 个m 2467L-AVR-0504 m Z寄存器 R31($1F) R30($1E) 在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。 10 ATmega128 2467L-AVR-05/04

...展开详情
试读 127P ATmega128中文手册
立即下载 身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚钱or赚积分
最新推荐
ATmega128中文手册 50积分/C币 立即下载
1/127
ATmega128中文手册第1页
ATmega128中文手册第2页
ATmega128中文手册第3页
ATmega128中文手册第4页
ATmega128中文手册第5页
ATmega128中文手册第6页
ATmega128中文手册第7页
ATmega128中文手册第8页
ATmega128中文手册第9页
ATmega128中文手册第10页
ATmega128中文手册第11页
ATmega128中文手册第12页
ATmega128中文手册第13页
ATmega128中文手册第14页
ATmega128中文手册第15页
ATmega128中文手册第16页
ATmega128中文手册第17页
ATmega128中文手册第18页
ATmega128中文手册第19页
ATmega128中文手册第20页

试读结束, 可继续阅读

50积分/C币 立即下载