AVR单片机的基本结构
ATmega128 MCU 内核
1. 外部引脚与封装
64脚方形的TQFP形式(贴片形式)。
2. ATmega128内部结构
1.AVR CPU部分 ALU运算逻辑单元、32个 8位快速访问通用寄存器 组(寄存器文件)、程 序计数器PC、指令寄存 器、指令译码器。 2.程序存储器Flash128K 3.数据存储器RAM(4K)和 EEPROM(4K)。 4.各种功能的外围接口、 I/O,以及与它们相关的 数据、控制、状态寄存 器等。
(1) 系统内可编程的Flash 程序存储器 ATmega128具有128K字节的在线编程Flash。因 为所有的AVR指令为16位或32位,故尔FLASH 组 织成64K×16 的形式。考虑到软件安全性, Flash 程序存储器分为两个区:引 导程序区和应用程序区。
(2)SRAM 数据存储器 ATmega128 支持两种不同的SRAM 配置, 即普通模式和ATmega103 兼容模式。
1.上电复位
AVR内部含有上电复位 POR(Power_on Reset)电路 无论何时,只要Vcc低于检 测电平Vpot时,器件进入 复位状态。 2.外部复位 外部复位是由外加在RESET引脚上的低电平将产生的。当 RESET引脚被拉低于Vrst的时间大于1.5µ s时既触发复位过程
3.掉电检测(BOD)复位 ATmega16有一个片内的BOD( Brown-out Detection)电源检测 电路,用于在系统运行时对系统电压VCC的检测,并同一个固定 的阈值电压相比较。BOD检测阈值电压可以通过BODLEVEL熔 丝位设定为2.7V或4.0V。BOD检测阈值电压有迟滞效应,以避免 系统电源的尖峰毛刺误触发BOD检测器。阈值电平的迟滞效应可 以理解为:上阈值电压VBOT+ = VBOT + VHYST/2,下阈值电 压VBOT- = VBOT - VHYST/2。
Flash 时钟 clkFLASH Flash 时钟控制Flash 接
口的操作。此时钟通常与CPU 时钟是同步的。 异步定时器时钟 clkASY 异步定时器时钟允许异 步定时器/ 计数器直接由外部32 kHz 时钟晶体驱 动,使得此定时器/ 计数器即使在睡眠模式下仍 然可以为系统提供一个实时时钟。 ADC 时钟 clkADC ADC具有专门的时钟。这样可 以在ADC工作的时候停止CPU和I/O时钟以降低数字 电路产生的噪声,从而提高ADC 转换精度。
与AVR 连接的外部SRAM
5. I/O端口 ATmega128有6个8位的双向I/O端口PA、PB、 PC、PD、PE、PF和1个5位双向I/O端口PG,它 们对外对应53个I/O引脚,每一位都可以独立 地用于逻辑信号的输入和输出。
输出时,每个引脚可供出达20mA的驱动电流。 输入时,每个引脚可吸纳最大为40mA的电流。 可直接驱动发光二极管LED(一般LED的驱动电流为10mA左右) 和小型继电器。 AVR大部分的I/O端口都具备双重功能,分别同片内的各种 不同功能的外围接口电路组合成一些可以完成特殊功能的I/O 口,如定时器、计数器、串行接口、模拟比较器、捕捉器等。
(3) EEPROM 数据存储 ATmega128包含4K字节的EEPROM。它是 作为一个独立的数据空间而存在的,可 以按字节读写。EEPROM 的寿命至少为 100,000 次(擦除)。EEPROM 的访问 由地址寄存器,数据寄存器和控制寄存 器决定。 EEPROM 地址寄存器-EEARH和EEARL EEPROM 数据寄存器- EEDR EEPROM 控制寄存器- EECR
单片机的基本组成结构
集成了构成一个计算机系统的最基本的单元
操作管理寄存器功能是管理、协调、控制和操作单片机芯片中的各功能单 元的使用和运行。(状态寄存器、控制寄存器、方式寄存器、数据寄存器)
二.
ATmega128单片机的组成
AVR单片机是一种基于增强RISC结构的、低功耗、CMOS技 术、8位微控制器(Enhanced RISC Microcontroller),目前有 Tiny、Mega两个系列50多种型号。它们的功能和外部的引脚各 有不同,小到8-12个引脚,多到100个引脚,但它们内核的基 本结构是一样的,指令系统相容。
时钟源
128有如下几种通过熔丝位选择的时钟源。时钟 输入到AVR 时钟发生器,并通往其他合适模块。
默认时钟源
器件出厂时CKSEL = “0001”, SUT = “10”。该默 认时钟源为最长启动时间的内部RC 振荡器。该默认设 置保证所有的用户通过系统内或并行编程得到其需要的 时钟源。
晶体振荡器 XTAL1 和XTAL2 分别为 用作片内振荡器的反向 放大器的输入和输出, 如图所示。
3. ATmega128 主时钟系统
为ATmega128提供系统时钟源时,有三种主要的 选择: (1)直接使用片内的1/2/4/8M的RC振荡源; (2)在引脚XTAL1和XTAL2上外接由石英晶体 和电容组成的谐振回路,配合片内的OSC (Oscillator)振荡电路构成的振荡源; (3)直接使用外部的时钟源输出的脉冲信号
1. AVR单片机最小系统
简单的电路是直接使用片内的4M的RC振荡源,这样就可以将C1、C2、R2 和4M晶体省掉,引脚XTAL1和XTAL2悬空,(精准度、温度变化的影响)。
四. AVR的复位源和复位方式 ATmega128单片机共有5个复位源,它们是: 1. 上电复位。当系统电源电压低于上电复位 门限Vpot时,MCU复位。 2. 外部复位。当外部引脚RESET为低电平, 且低电平持续时间大于1.5us时,MCU复位。 3. 掉电检测(BOD)复位。BOD使能时,且 电源电压低于掉电检测复位门限(4.0v或2.7v) 时,MCU复位。 4. 看门狗复位。WDT使能时,并且WDT超时 溢出时,MCU复位。 5. JTAG AVR复位。当使用JTAG接口时,可 由JTAG口控制MCU复位。
7. 状态寄存器和堆栈指针寄存器
1.状态寄存器—SREG
2.堆栈指针寄存器—SP
通常初始化时将SP的指针设在SRAM最高处
三.
ATmega128单片机的工作状态
AVR单片机的工作状态通常包括: 复位状态 正常程序执行工作状态 休眠节电工作状态 程序运行代码下载的编程 熔丝位的配置。
采用了在 ATmega16引脚 XTAL1和XTAL2 上外接由石英 晶体和电容组 成的谐振回路, 并配合片内的 OSC (Oscillator) 振荡电路构成 的振荡源作为 系统时钟源的
(4)外部存储器接口
由于外部存储器接口所提供的特性,此接口非常 适合于与存储器器件互连,如外部SRAM和Flash, LCD, A/D, D/A,等等。其主要特点为: • 四个不同的等待状态设置( 包括无等待状态)。 • 不同的外部存储器可以设置不同的等待状态。 • 地址高字节的位数可以有选择地确定。 • 数据线具有总线保持功能以降低功耗。 使能外部存储器(XMEM) 时,可以使用专门的 外部存储器引脚
ATmega128 还可以访问直到64K的外部数 据SRAM。其起始紧跟在内部SRAM之后。 在普通模式下,寄存器文件、I/O 存储 器、扩展的I/O 存储器以及内部数据 SRAM 占据了低4352字节;而在 ATmega103兼容模式下占据了4096字节 (没有扩展I/O)。因此,在使用外部存储 器时普通模式只能有61184 字节, ATmega103 兼容模式只能有61440 字节。
6.
通用寄存器组与I/O寄存器
1. 通用寄存器组
AVR寄存器组最后的6个寄存器R26~R31具有特殊的功能, 这些寄存器每两个合并成一个16位的寄存器,作为对数据存储器 空间(使用X、Y、Z)以及程序存储器空间(仅使用Z寄存器) 间接寻址的地址指针寄存器。
2. I/O寄存器
AVR系列单片机所有I/O口及外围接口的功能和配置均通过I/O寄存器的进 行设置和使用。CPU访问I/O寄存器用两种不同的方法, 1.对I/O寄存器访问的IN、OUT专用指令 2.用对SRAM访问的指令。
低频晶体振荡器
使用32.768 kHz 钟表晶体作为器件的时钟源, 须将熔丝位CKSEL 设置为“1001”以选择低频 晶体振荡器,通过对熔丝位CKOPT 的编程,用 户可以使能XTAL1 和XTAL2 的内部电容,从而 去除外部电容。内部电容的标称数值为36 pF。 选择了这个振荡器之后,启动时间由熔丝位 SUT 确定,如表所示。
外部时钟 为了从外部时钟源驱动芯片, XTAL1 必须 如图所示的进行连接。同时,熔丝位 CKSEL必须编程为“0000”。若熔丝位 CKOPT也被编程,用户就可以使用内部的 XTAL1和GND 之间的36 pF 电容。
4. AVR ATmega128 存储器
AVR单片机在片内集成了Flash程序存储器、SRAM数据存 储器和EEPROM数据存储器。三个存储器空间互相独立,物理 结构也不同。
当ATmega128 工作于ATmega103 兼容模 式时,扩展的I/O 将无法访问。
在普通模式下,前4352 个数据地址包含 寄存器文件, I/O 存储器,扩展的I/O 存储器以及内部数据SRAM。起始的32 个 地址为寄存器文件,然后是64 个I/O 存 储器,接着是160 个扩展的I/O 存储器, 最后是4096 字节的内部数据SRAM。 在ATmega103 兼容模式下,前4096 个数 据地址包含寄存器文件, I/O 存储器以 及内部数据SRAM。起始的32 个地址为寄 存器文件,然后是64 个I/O 存储器,最 后是4000 字节的内部数据SRAM。
一.
AVR单片机的基本结构
介绍单片机的基本结构和组成,使大家对单片机芯片的 内部硬件有基本了解和认识。掌握了单片机的基本结构和组 成,对学习、了解任何一种类型单片机的工作原理,编写单 片机的系统软件以及和设计外围电路都是非常重要的。 以ATmega128为主线,介绍和讲述AVR单片机内核的基 本结构、引脚功能、工作方式等。