ATmega32中文资料.pdf

所需积分/C币:41 2014-07-30 17:39:43 2.59MB PDF
74
收藏 收藏
举报

ATmega32中文资料.pdf
ATmega32 L) 综述 ATmega32是基于增强的 AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指 合集以及单时钟周期指合执行时间, ATmega32的数据吞吐率高达1MPS/MHz,从而可 以缓减系统在功耗和处理速度之间的矛盾。 方框图 Figure2.结构框图 -------- 个m 2503F-AVR-1203 AVR内核具有丰富的指合集和32个通用工作寄存器。所有的寄存器都直接与算逻单元 (ALU)相连接,使得一条指合可以在一个时钟周期内同时访问两个独立的寄存器。这种结 构大大提高了代码效率,并且具有比普通的cSC微控制器最高至10倍的数据吞吐率。 ATmega32有如下特点:32K字节的系统内可编程 Flash(具有同时读写的能力,即RWW) 1024字节 EEPROM,2K字节SRAM,32个通用MO口线,32个通用工作寄存器,用于 边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数 器(TC),片内/外中断,可编程串行 USART,面向字节的两线串行接口,8路10位具有 可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时 器,一个SP串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时 CPU停止工作,而∪SART、两线接口、AD转换器、SRAM、TC、SP端口以及中断 系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都 停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功 能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所 有lo模块的工作,以降低ADC转换时的开关噪声; Standby模式下只有晶体或谐振振 荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动 能力;扩展 Standby模式下则允许振荡器和异步定时器继续工作。 本芯片是以Atme高密度非易失性存储器技术生产的。片内| SP Flash允许程序存储器通 过丨SP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程 序进行编程。引导程序可以使用任意接口捋应用程序下载到应用Fash存储区( Application Flash Memory)。在更新应用 Flash存储区时引导Fash区( Boot Flash Memory)的程序继续 运行,实现了RWWN操作。通过捋8位 RISC CPU与系统内可编程的 Flash集成在一个 芯片内, ATmega32成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而 低成本的解决方案。 ATmega32具有一整套的编程与系统开发工具,包括:C语言编译器、宏汇编、程序调试 器/软件仿真器、仿真器及评估板 引脚说明 VCC 数字电路的电源 GND 地 端囗A(PA7.PA0) 端口A做为AD转换器的模拟输人端。 端口A为8位双向O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特 性,可以输岀和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉 低时捋输出电流。在复位过程中,即使系统时钟还未起振,端口A处于高阻状态。 端口B(PB7PB0 端口B为8位双向1O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特 性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉 低时捋输出电流。在复位过程中,即使系统时钟还未起振,端口B处于高阻状态。 端口B也可以用做其他不同的特殊功能,请参见P55。 端口C(PC7.PCO) 端口C为8位双向MO口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特 性,可以输岀和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉 低时将输出电流。在复位过程中,即使系统时钟还未起振,端口C处于高阻状态。如果 JTAG接口使能,即使复位出现引脚PC5(TD)、PC3(TMS)与PC2(TcK)的上拉电阻被激 除去移出数据的TAP态外,TD0引脚为高阻态 端口C也可以用做其他不同的特殊功能,请参见P58。 ATmega32(L) 2503F-AVR-12/03 ATmega32 (L) 端口D(PD7PDo) 端口D为8位双向O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特 性,可以输岀和吸收大电流。作为输入使用时,若內部上拉电阻使能,则端口被外部电路 拉低时烀输出电流。在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。 端口口也可以用做其他不同的特殊功能,请参见P60。 RESET 复位输入引脚。持续时间超过最小门限时间的低电平捋引起系统复位。门限时间见P35 Tabe15。持续时间小于门限间的脉冲不能保证可靠复位。 XTAL1 反向振荡放大器与片内时钟操作电路的输廴端。 XTAL2 反向振荡放大器的输出端。 AVCC AVcC是端口A与AD转换器的电源。不使用ADC时,该引脚应直接与Vcc连接。使用ADC 时应通过一个低通滤波器与Vcc连接。 AREF AD的模拟基准输入引脚。 代码例子 本数据手册包含了一些简单的代码例子以说明如何使用芯片各个不同的功能模块。这些 例子都假定在编译之前已经包含了正确的头文件。有些C编译器在头文件里并没有包含 位定义,而且各个C编译器对中断处理有自己不同的处理方式。请注意查阅相关文档以 获取具体的信息。 个m 5 2503F-AVR-1203 m AVR CPU内核 介绍 本节从总体上讨论AVR内核的结构。CPU的主要任务是保证程序的正确执行。因此它必 须能够访问存储器、执行运算、控制外设以及处理中断。 结构综述 Figure3.AVR结构的方框图 为了获得最高的性能以及并行性,AVR采用了 Harvard结构,具有独立的数据和程序总 线。程序存储器里的指合通过一级流水线运行。CPU在执行一条指合的同时读取下一条 指爷(在本文称为预取)。这个概念买现了指合的单时钟周期运行。程序存储器是可以在 线编程的Fash。 快速访问寄存器文件包括32个8位通用工作寄存器,访问时间为一个时钟周期。从而实 现了单时钟周期的ALU操作。在典型的ALU操作中,两个位于寄存器文件中的操作数同 时被访问,然后执行运算,结果再被送回到寄存器文件。整个过程仅需一个时钟周期。 寄存器文件里有6个寄存器可以用作3个16位的间接寻址寄存器指针以寻址数据空间, 实现高效的地址运算。其中一个指针还可以作为程序存储器查询表的地址指针。这些附加 的功能寄存器即为16位的X、Y、乙寄存器。 ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。ALU也可以执行单寄存器 操作。运算完成之后状态寄存器的内容得到更新以反映操作结果。 程序流程通过有/无条件的跳转指合和调用指合来控制,从而疸接寻址整个地址空间。大 多数指合长度为16位,亦即每个程序存储器地址都包含一条16位或32位的指合。 程序存储器空间分为两个区:引导程序区(Boot区)和应用程序区。这两个区都有专门的 锁定位以实现读和读/写保护。用于写应用程序区的SPM指合必须位于引导程序区。 在中断和调用子程序时返回地址的程序计数器(PC)保存于堆栈之中。堆栈位于通用数据 SRAM,因此其深度仅受限于SRAM的大小。在复位例程里用户首先要初始化堆栈指针 ATmega32(L) 2503F-AVR-12/03 ATmega32 L) SP。这个指针位于ⅣO空间,可以进行读写访问。数据SRAM可以通过5种不同的寻址模 式进行访问 AVR存储器空间为线性的平面结构。 AVR有一个灵活的中断模块。控制寄存器位于O空间。状态寄存器里有全局中断使能位。 每个中断在中断向量表里都有独立的中断向量。各个中断的优先级与其在中断向量表的 位置有关,中断向量地址越低,优先级越高。 JO存储器空间包含64个可以直接寻址的地址,作为CPU外设的控制寄存器、SP,以及 其他∥O功能。映射到数据空间即为寄存器文件之后的地址0x20-0×5F。 ALU算术逻辑单元 AVR ALU与32个通用工作寄存器直接相连。寄存器与寄存器之间、寄存器与立即数之间 的ALU运算只需要一个时钟周期。ALU操作分为3类:算术、逻辑和位操作。此外还提 供了支持无/有符号数和分数乘法的乘法器。具体请参见指爷集。 个m 2503F-AVR-1203 AmeL 状态寄存器 状态寄存器包含了最近执行的算术指爷的结果信息。这些信息可以用来改变程序流程以 实现条件操作。如指合集所述,所有ALU运算都将影响状态寄存器的内容。这样,在许 多情况下就不需要专门的比较指合了,从而使系统运行更快速,代码效率更高。 在进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恹复。这些工作 需要软件来处理。 AVR中断寄存器SREG定义如下 3 0 H SREG 读/写 R/ 初始值 0 Bit7-上:全局中断使能 置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果|清霁,则不 论单独中断标志置位与否,都不会产生中断。任意一个中断发生后清霁,而执行RET 指合后|饭复置位以使能中断。|也可以通过SE和CL指合来置位和清零 ·Bit6-T:位拷贝存储 位拷贝指合BLD和BST利用T作为目的或源地址。BST把寄存器的某一位拷贝到T,而 BLD把T拷贝到寄存器的某一位。 Bit5-H:半进位标志 半进位标志H表示算术操作发生了半进位。此标志对于BCD运算非常有用。详见指合集 的说明。 Bt4-S:符号位,S=NeV s为负数标志N与2的补码淦出标志V的异或。详见指合集的说明。 ·Bit3-V:2的补码湓出标志 支持2的补码运算。详见指合集的说明。 ·Bit2-N:负数标志 表明算术或逻辑操作结果为负。详见指合集的说明。 ·Bit1-z:響标志 表明算术或逻辑操作结果为霁。详见指爷集的说明。 ·Bit0-C:进位标志 表明算术或逻辑操作发生了进位。详见指爷集的说明。 通用寄存器文件 寄存器文件针对AVR增强型RsC指合集做了优化。为了获得需要的性能和灵活性,寄 存器文件支持以下的输入/输出方案 输出一个8位操作数,输入一个8位结果 输出两个8位位操作数,输人一个8位结果 ·输出两个8位位操作数,输入一个16位结果 输出一个16位位操作数,输入一个16位结果 Figure4为CPU32个通用工作寄存器的结构。 ATmega32(L) 2503F-AVR-12/03 ATmega32 (L) Figure4. AVR CPU通用工作寄存器 Addr RO R1 s02 R13 通用 R14 SOE 工作 R15 $0 寄存器 R16 10 R17 11 R26 SlA Ⅹ寄存器,低字节 R27 S1B X寄存器,高字节 R28 S1C 丫寄存器,低字节 R29 Y寄存器,高字节 R30 SlE Z寄存器,低字节 R31 $1F Z奇存器,高字节 大多数操作寄存器文件的指合都可以值接访问所有的寄存器,而且多数这样的指合的执 行时间为单个时钟周期。 如 Figure4所示,每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空间的 头32个地址。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器 方面具有极大的灵活性,因为X、Y、Z寄存器可以设匱为指向任意寄存器的指针。 个m 2503F-AVR-1203 X、Y、z寄存器 寄存器R26R31除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三 个间接寻址寄存器示于 Figure5。 Figure5.Ⅹ、Y、z寄存器 15 X寄存器 R27(51B) R26($1A) 15 丫寄存器 07 R29($1D) R28($1c 15 ZH 0 z寄存器 0 0 R31($1F) R30($1E 在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。 具体细节请参见指合集。 堆栈指针 堆栈指针主要用来保存临时数据、局部变量和中断/子程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意AVR的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值捋减小。 堆栈指针指向数据SRAM堆栈区。在此聚集了子程序堆栈和中断堆栈。调用子程序和使 能中断之前必须定义堆栈空间,且堆栈指针必须指向高于0X60的地址空间。使用PUSH 指合将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针烀减二。使 用POP指合烀数据弹出堆栈时,堆栈指针加一;而用RET或RET指合从子程序或中断 返回时堆栈指针加二。 AVR的堆栈指针由O空间中的两个8位寄存器实现。实际使用的位数与具体器件有关。请 注意某些AVR器件的数据区太小,用SPL就足够了。此时烀不给出SPH寄存器 Bit 15 14 13 12 10 9 8 SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8 SP7 SP6 SP5 SP4 SP3 SP2 SP1 SPO 读/写 R/W 初始值 wNo0 R/W 0 0 10 ATmega32( L) 2503F-AVR-12/03

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

试读结束, 可继续阅读

41积分/C币 立即下载 >