Presentation is loading. Please wait.

Presentation is loading. Please wait.

ATmega128单片机 概述、系统结构 夏洁 2009年3月.

Similar presentations


Presentation on theme: "ATmega128单片机 概述、系统结构 夏洁 2009年3月."— Presentation transcript:

1 ATmega128单片机 概述、系统结构 夏洁 2009年3月

2 内容 一、 ATmega128单片机概述系统结构 二、 ATmega128单片机系统结构 1、AVR单片机简介(主要特性、选型)
导航、制导与控制

3 1、AVR单片机简介 ATMEL公司介绍 是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体制造公司。 1997年,ATMEL公司出于市场需求,推出了全新配置的精简指令集RISC单片机高速8位单片机,简称为AVR。 广泛应用于计算机外设、工业实时控制,仪器仪表、通信设备、家用电器等各个领域。 导航、制导与控制

4 1.1 AVR单片机主要特性 衡量单片机性能的重要指标
2017/9/9 1.1 AVR单片机主要特性 衡量单片机性能的重要指标 高可靠性、功能强、高速度、低功耗、低价位 1)AVR单片机废除机器周期,采用RISC,以字为指令长度单位,取指周期短,可预取指令,实现流水作业,可高速执行指令。有高可靠性为后盾。 2)AVR单片机在软/硬件开销、速度、性能和成本多方面取得优化平衡,是高性价比的单片机。 3)内嵌高质量的 Flash程序存储器,擦写方便,支持ISP和IAP,便于产品 的调试、开发、生产、更新。 前期单片机由于工艺及设计水平低、功耗高、抗干扰性能差等,故采用稳妥方案: 用较高的分频系数对时钟分频——指令周期长,执行速度慢。 导航、制导与控制

5 1.1 AVR单片机主要特性 4)I/O端口资源灵活、功能强大 5)单片机内具备多种独立的时钟分频器 6)高波特率的可靠通信
2017/9/9 1.1 AVR单片机主要特性 4)I/O端口资源灵活、功能强大 5)单片机内具备多种独立的时钟分频器 6)高波特率的可靠通信 7)包括多种电路,可增强嵌入式系统的可靠性 电路:自动上电复位、看门狗、掉电检测, 多个复位源等 8)具有多种省电休眠模式、宽电压运行(2.7~5V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计的工作量和硬件的使用量。 9)集成多种器件和多种功能,充分体现了单片机技术向片上系统SOC的发展方向过渡。 ISP的英文是Internet Service Provider,翻译为互联网服务提供商,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商。 串行在线下载(ISP) IAP (Internet Access Provider, Internet 接入提供商) 内嵌长寿命的EEPROM可长期保持关键数据,避免断电丢失。 片内大容量RAM能满足一般场合的使用,同时也可更有效地支持使用高级语言靠法系统程序。 导航、制导与控制

6 1.2 AVR系列单片机的选型 AVR单片机有3个档次: 低档Tiny系列单片机, 20脚 中档(标准) AT90S系列单片机,40脚
AT89C1051,AT89C1052 中档(标准) AT90S系列单片机,40脚 AT90S1200/2313/8515/8535 AT89C51 高档ATmega系列单片机 脚 ATmega8/16/32/64/128 存储容量为8/16/32/64/128KB ATmega8515/8535 导航、制导与控制

7 内容 1、AVR单片机简介 2、 ATmega128单片机简介 AVR单片机主要特性 AVR系列单片机的选型 ATmega128单片机概述
导航、制导与控制

8 2.1 ATmega128单片机概述 基于AVR低功耗CMOS 8位微控制器,近1MIPS/MHz。 6种省电模式:
空闲模式Idle:CPU 停止工作,其他子系统继续工作; ADC 噪声抑制模式:CPU 和所有的I/O 模块停止运行,而异步定时器和ADC 继续工作; 省电模式Power-save:异步定时器继续运行,器件的其他部分则处于睡眠状态; 掉电模式Power-down:除了中断和硬件复位之外都停止工作 Standby 模式:振荡器工作而其他部分睡眠; 扩展Standby 模式:允许振荡器和异步定时器继续工作。 导航、制导与控制

9 ATmega128单片机结构框图 导航、制导与控制

10 ATmega128产品特点 1)RICS结构 2)非易失存储器 3)JITAG接口
指令条数 133条指令 – 大多数可以在一个时钟周期内完成 存储器 x 8位 通用工作寄存器 + 外设控制寄存器 工作频率 工作于16 MHz 时性能高达16 MIPS 片内乘法器 2个 只需两个时钟周期的硬件乘法器 2)非易失存储器 片上Flash K Bytes,104次擦写 EEPROM 4K Bytes,105次擦写 内部SRAM 4K 可选外部存储器 64K 可编程安全锁、片内可编程SPI接口 3)JITAG接口 边界扫描特性,扩展芯片调试支持,通过其进行可编程Flash、EEPROM 导航、制导与控制

11 ATmega128产品特点 4)外设特性 定时器/计数器 (2个8位) 扩展定时器/计数器 (2个16位) 实时时钟计数器 (1个)
定时器/计数器 (2个8位) 扩展定时器/计数器 (2个16位) 实时时钟计数器 (1个) PWM通道 个8位,6个(分辨率)可编程2~16位 输出比较调制器 8通道10位ADC: 8个单端通道、7个差分通道、2个可调增益的差分通道 面向字节的双线接口 可编程的连续串口UART 2个 主/从SPI串口、可编程看门狗、片内模拟比较器 导航、制导与控制

12 ATmega128产品特点 5)特殊微控制器特性 6)I/O和封装 7)工作电压 8)速度级别 复位、中断源、省电模式等
64引脚TQFP与64引脚MLF封装 7)工作电压 2.7~5.5V(ATmega128L) 4.5~5.5V(ATmega128) 8)速度级别 0~8MHZ(ATmega128L) 0~16MHZ(ATmega128) 导航、制导与控制

13 2.2 ATmega128单片机引脚功能 导航、制导与控制

14 ATmega128单片机结构框图 导航、制导与控制

15 各引脚说明1: 1)VCC:数字电路的电源 2)GND:地 3)RESET:复位输入引脚
4)XTAL1:反向振荡放大器及片内时钟操作电路的输入 5)XTAL2:反向振荡放大器的输出 6)AVCC:AVCC为端口F及ADC的电源 7)AREF:为ADC的模拟基准输入引脚 8)PEN:为SPI串行下载的使能引脚 导航、制导与控制

16 9)端口A(PA7~PA0): 为8位双向I/O端口,并具有可编程的内部上拉电阻。 输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。 复位发生时该端口为三态。 10)端口B(PB7~PB0)、 C(PC7~PC0)、D(PD7~PD0)、 E(PE7~PE0) :与端口A具有相同的I/O性能。 导航、制导与控制

17 11)端口F(PF7~PF0): 为ADC的模拟输入引脚或作为8位双向I/O端口,并具有可编程的内部上拉电阻。
输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。 复位发生时该端口为三态。 可以作为JTAG接口 导航、制导与控制

18 12)端口G(PG4~PG0): 13)端口A、B、C、D、E、F、G:都可以作为第二功能引脚使用。
为5位双向I/O端口,并具有可编程的内部上拉电阻。 输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。 作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。 复位发生时该端口为三态。 13)端口A、B、C、D、E、F、G:都可以作为第二功能引脚使用。 导航、制导与控制

19 二、ATmega128单片机的系统结构

20 1、ATmega128的CPU内核 ATmega128单片机的系统结构主要内容 2、ATmega128 存储器 3、系统时钟及其选项
4、系统控制和复位 5、ATmega128 的中断向量 6、I/O端口 7、定时器/ 计数器(T/C) 8、模数转换器 A/D 导航、制导与控制

21 1、ATmega128的CPU内核 1.1 AVR CPU内核的结构 1.2 状态寄存器 1.3 通用寄存器结构 1.4 X、Y、Z寄存器
1.5 堆栈指针 1.6 复位和中断处理 导航、制导与控制

22 1.1 AVR CPU内核的结构图 AVR 采用了Harvard 结构,具有独立的数据和程序总线。 程序存储器的指令通过一级流水线运行。
导航、制导与控制

23 1.2 状态寄存器 AVR 中断寄存器 – SREG Bit 7 – I: 全局中断使能 Bit 6 – T: 位拷贝存储
Bit 5 – H: 半进位标志,表示算术操作发生了半进位 Bit 4 – S: 符号位, S=N⊕V,S 为负数标志N与2 的补码溢出标志V的异或 Bit 3 – V: 2 的补码溢出标志,支持2 的补码运算。 Bit 2 – N: 负数标志 Bit 1 – Z: 零标志 Bit 0 – C: 进位标志 导航、制导与控制

24 1.3 通用寄存器结构 AVR CPU 32个通用工作寄存器的结构图
每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空间的头32 个地址。 虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活,因为X、Y、Z 寄存器可以设置为指向任意寄存器的指针。 导航、制导与控制

25 1.4 X、Y、Z寄存器 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。
在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。 导航、制导与控制

26 1.5 堆栈指针 堆栈指针主要用来保存临时数据,局部变量和中断/ 自程序的返回地址。堆栈指针总是指向堆栈的顶部。要注意AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数值将减小。 堆栈指针指向位于SRAM 的函数及中断堆栈。堆栈空间必须在调用函数或中断使能之前定义。指针必须指向高于$60 的地址。 用PUSH 指令推数据入栈时,堆栈指针将减一; 当调用函数或中断时,指针将减二。 使用POP 指令时,堆栈指针将加一; 而用RET 或RETI 返回时,指针将加二。 导航、制导与控制

27 1.6 复位和中断处理 1.6.1 ATmega128的中断处理 1.6.2 ATmega128的中断响应时间 两种类型的中断:
事件触发并置位中断标志。 只要中断条件满足,就会一直触发。 AVR 退出中断后总是回到主程序并执行一条指令才可以去执行其他被挂起的中断。 程序存储器空间的最低地址缺省定义为复位和中断向量。中断向量所在的地址越低,优先级越高。 1.6.2 ATmega128的中断响应时间 AVR 中断响应时间最少为4个时钟周期。 若中断发生时MCU 处于睡眠模式,中断响应时间增加到8个时钟周期。 中断返回亦需4个时钟。 导航、制导与控制

28 内容 2、ATmega128 存储器 1、ATmega128的CPU内核 3、系统时钟及其选项 4、系统控制和复位
6、I/O端口 7、定时器/ 计数器(T/C) 8、模数转换器 A/D 导航、制导与控制

29 2、ATmega128 存储器 2.1 系统内可编程的Flash 程序存储器 2.2 SRAM数据存储器 2.3 EEPROM数据存储器
2.4 I/O存储器 2.5 外部存储器接口 导航、制导与控制

30 2、ATmega128 存储器 AVR 结构具有三个线性存储空间: 主存储器空间 2.1 系统内可编程的Flash 程序存储器 程序寄存器
数据寄存器 EEPROM 存储器 2.1 系统内可编程的Flash 程序存储器 ATmega128具有128K字节的在线编程Flash。因为所有的AVR指令为16位或32位,故FLASH 组织成64K x 16 的形式。 Flash 程序存储器分为:(软件安全性) 引导程序区 应用程序区 主存储器空间 导航、制导与控制

31 2.2 SRAM数据存储器 ATmega128 还可以访问直到64K的外部数据SRAM。其起始紧跟在内部SRAM之后。
数据寻址模式分为5种:直接寻址,带偏移量的间接寻址,间接寻址,预减的间接寻址,以及后加的间接寻址。 1)直接寻址访问整个数据空间。 2)带偏移量的间接寻址模式寻址到Y、Z 指针给定地址附近的63个地址。 3)带预减和后加的间接寻址模式要用到X、Y、Z 指针。 32个通用寄存器,64个I/O寄存器,4096字节的SRAM可以被所有的寻址模式所访问。 导航、制导与控制

32 2.3 EEPROM数据存储器 ATmega128包含4K字节的EEPROM。它是作为一个独立的数据空间而存在的,可以按字节读写。EEPROM 的寿命至少为100,000 次(擦除)。 EEPROM 的访问由地址寄存器,数据寄存器和控制寄存器决定。 导航、制导与控制

33 2.4 I/O存储器 ATmega128 的所有I/O 和外设都被放置在I/O 空间。在32个通用工作寄存器和I/O之间传输数据。
其支持的外设要比预留的64 个I/O( 通过IN/OUT 指令访问) 所能支持的要多。 对于扩展的I/O 空间$60 - $FF,只能使用ST/STS/STD 和LD/LDS/LDD指令。 导航、制导与控制

34 2.5 外部存储器接口 此接口非常适合于与存储器器件互连,如外部SRAM和Flash, LCD, A/D, D/A,等等。其主要特点为:
四个不同的等待状态设置( 包括无等待状态)。 不同的外部存储器可以设置不同的等待状态。 地址高字节的位数可以有选择地确定。 数据线具有总线保持功能以降低功耗。 外部存储器接口包括: AD7:0:多工的地址总线和数据总线。 A15:8:高位地址总线 ( 位数可配置)。 ALE:地址锁存使能。 RD:读锁存信号。 WR:写使能信号。 外部存储器接口控制位于以下3个寄存器: MCU 控制寄存器–MCUCR 外部存储器控制寄存器A – XMCRA 外部存储器控制寄存器B – XMCRB 导航、制导与控制

35 内容 3、系统时钟及其选项 1、ATmega128的CPU内核 2、ATmega128 存储器 4、系统控制和复位
6、I/O端口 7、定时器/ 计数器(T/C) 8、模数转换器 A/D 导航、制导与控制

36 AVR的主要时钟系统及其分布图 clkCPU clkI/O clkFLASH clkADC clkASY :异步定时器时钟 导航、制导与控制

37 内容 4、系统控制和复位 1、ATmega128的CPU内核 2、ATmega128 存储器 3、系统时钟及其选项
6、I/O端口 7、定时器/ 计数器(T/C) 8、模数转换器 A/D 导航、制导与控制

38 4、系统控制和复位 复位时所有的I/O 寄存器都被设置为初始值,程序从复位向量处开始执行。
ATmega128 有5个复位源: 上电复位 当电源电压低于上电复位门限 (VPOT) 时, MCU 复位。 外部复位 当引脚 RESET 上的低电平持续时间大于最小脉冲宽度时MCU 复位。 看门狗复位 当看门狗使能并且看门狗定时器超时时复位发生。 掉电检测复位 当掉电检测复位功能使能,且电源电压低于掉电检测复位门限(VBOT) 时MCU 即复位。 JTAG AVR复位 当复位寄存器为1 时MCU即复位。 导航、制导与控制

39 内容 5、ATmega128 的中断向量 1、ATmega128的CPU内核 2、ATmega128 存储器 3、系统时钟及其选项
4、系统控制和复位 5、ATmega128 的中断向量 6、I/O端口 7、定时器/ 计数器(T/C) 8、模数转换器 A/D 导航、制导与控制

40 5、ATmega128 的中断向量1 向量号 程序地址 中断源 中断定义 1 $0000 RESET 复位 2 $0002 INT0
外部中断请求0 3 $0004 INT1 外部中断请求1 4 $0006 INT2 外部中断请求2 5 $0008 INT3 外部中断请求3 6 $000A INT4 外部中断请求4 7 $000C INT5 外部中断请求5 8 $000E INT6 外部中断请求6 9 $0010 INT7 外部中断请求7 10 $0012 TIMER2 COMP T/C 2 比较匹配 11 $0014 TIMER2 OVF T/C 2 溢出 导航、制导与控制

41 ATmega128 的中断向量2 向量号 程序地址 中断源 中断定义 12 $0016 TIMER1 CAPT T/C 1 捕捉事件 13
$0018 TIMER1 COMPA T/C 1 比较匹配 A 14 $001A TIMER1 COMPB T/C 1 比较匹配B 15 $001C TIMER1 OVF T/C 1 溢出 16 $001E TIMER0 COMP T/C 0 比较匹配 17 $0020 TIMER0 OVF T/C 0 溢出 18 $0022 SPI, STC SPI 串行传输结束 19 $0024 USART0, RX USART0, Rx 结束 20 $0026 USART0, UDRE USART0 数据寄存器空 21 $0028 USART0, TX USART0, Tx 结束 22 $002A ADC ADC 转换结束 23 $002C EE READY EEPROM 就绪 导航、制导与控制

42 ATmega128 的中断向量3 向量号 程序地址 中断源 中断定义 24 $002E ANALOG COMP 模拟比较器 25
$0030(3) TIMER1 COMPC T/C 1 比较匹配C 26 $0032(3) TIMER3 CAPT T/C 3 捕捉事件 27 $0034(3) TIMER3 COMPA T/C 3 比较匹配 A 28 $0036(3) TIMER3 COMPB T/C 3 比较匹配B 29 $0038(3) TIMER3 COMPC T/C 3 比较匹配C 30 $003A(3) TIMER3 OVF T/C 3 溢出 31 $003C(3) USART1, RX USART1, Rx 结束 32 $003E(3) USART1, UDRE USART1 数据寄存器空 33 $0040(3) USART1, TX USART1, Tx 结束 34 $0042(3) TWI 两线串行接口 35 $0044(3) SPM READY 保存程序存储器内容就绪 导航、制导与控制

43 内容 6、I/O端口 1、ATmega128的CPU内核 2、ATmega128 存储器 3、系统时钟及其选项 4、系统控制和复位
7、定时器/ 计数器(T/C) 8、模数转换器 A/D 导航、制导与控制

44 6、I/O端口 所有AVR I/O端口都具有真正的读-修改-写功能。 3个8位寄存器用于控制I/O端口 端口方向控制寄存器DDRx
数据寄存器PORTx 输入引脚寄存器PINx 读/写 读/写 只读 所有的寄存器和位以通用格式表示:小写的“x” 表示端口序号,小写的“n” 代表位的序号。 PORTB3 表示端口B的第3位 I/O引脚等效原理图 当DDxn 为“1“时,Pxn 配置为输出。 导航、制导与控制

45 I/O端口寄存器的说明 3个8位寄存器用于控制I/O端口 端口方向控制寄存器DDRx 数据寄存器PORTx
输入引脚寄存器PINx 端口B、C、D、E、F的类似于端口A 导航、制导与控制

46 I/O端口寄存器G的说明 3个8位寄存器用于控制I/O端口 端口方向控制寄存器DDRG 数据寄存器PORTG 输入引脚寄存器PING
导航、制导与控制

47 内容 7、定时器/ 计数器(T/C) 1、ATmega128的CPU内核 2、ATmega128 存储器 3、系统时钟及其选项
4、系统控制和复位 5、ATmega128 的中断向量 6、I/O端口 7、定时器/ 计数器(T/C) 8、模数转换器 A/D 导航、制导与控制

48 7、定时器/ 计数器(T/C) 7.1 8位T/ C0 7.2 8位T/ C2 7.3 16位 T/ C1和T/ C3
7.4 定时器/ 计数器的预分频器 导航、制导与控制

49 7.1 8位T/ C0 T/C0 是一个通用的,单通道8 位定时器/ 计数器模块。其主要特点如下: 单通道计数器
比较匹配发生时,清除定时器( 自动加载) 无毛刺的相位修正PWM 频率发生器 10 位时钟预分频器 溢出和比较匹配中断源(TOV0 和OCF0) 允许外部32kHz 晶振作为时钟 双缓冲的输出比较寄存器OCR0一直与T/C 的数值进行比较。比较结果可用来产生PWM波,或在输出比较引脚OC0上产生变化频率的输出。 导航、制导与控制

50 7.1.1 T/ C0的工作模式 (1)普通模式 (2)CTC模式(比较匹配时清除定时器) (WGM01:0= 0)为最简单的工作模式。
在此模式下计数器不停地累加。计到最大值后(TOP=0xFF),计数器简单地返回到最小值0x00重新开始。 (2)CTC模式(比较匹配时清除定时器) (WGM01:0 = 2) TCNT0=OCR0时计数器清零 波形发生器的频率 变量N代表分频因子(1、8、32、64、128、256 或1024) 导航、制导与控制

51 7.1.1 T/ C0的工作模式 (3)快速PWM模式 (4)相位修正PWM模式
(WGM01:0 = 3) 可用来产生高频的PWM 波形。快速PWM 模式与其他PWM模式的不同之处是其三角波工作方式(其他PWM方式为等腰三角形方式) 输出的PWM 频率 (4)相位修正PWM模式 (WGM01:0 = 1) 为用户提供了一个获得高精度相位修正PWM波形的方法。此模式基于双斜线操作。 变量N代表分频因子(1、8、32、64、128、256 或1024) 导航、制导与控制

52 7.1.2 与T/C0相关的8位寄存器说明 8位控制寄存器(TCCR0) 8位计数寄存器(TCNT0) 8位输出比较寄存器(OCR0)
工作模式、匹配输出模式 、时钟选择 8位计数寄存器(TCNT0) 8位输出比较寄存器(OCR0) 8位中断屏蔽寄存器(TIMSK) Bit 1 – OCIE0: T/C0 输出比较匹配中断使能 Bit 0 – TOIE0: T/C0 溢出中断使能 8位中断标志寄存器(TIFR) Bit 1 – OCF0: 输出比较标志0(T/C0与OCR0的值匹配时,OCF0置位) Bit 0 – TOV0:T/C0 溢出标志 导航、制导与控制

53 7.2 8位T/ C2 T/C2 是一个通用单通道8 位定时/ 计数器,其主要特点如下: 单通道计数器
比较匹配时,清零定时器 ( 自动重载) 无干扰脉冲, 相位正确的脉宽调制器 (PWM) 频率发生器 10 位时钟预分频器 溢出与比较匹配中断源(TOV2 与OCF2) 外部事件计数器 导航、制导与控制

54 7.2.1 T/ C2的工作模式 (1)普通模式 (2)CTC模式(比较匹配时清除定时器) (WGM21:0= 0)为最简单的工作模式。
在此模式下计数器不停地累加。计到最大值后(TOP=0xFF),计数器简单地返回到最小值0x00重新开始。 (2)CTC模式(比较匹配时清除定时器) (WGM21:0 = 2) TCNT2=OCR2时计数器清零 波形发生器的频率 变量N代表分频因子(1、8、64、256 或1024) 导航、制导与控制

55 7.2.1 T/ C2的工作模式 (3)快速PWM模式 (4)相位修正PWM模式
(WGM21:0 = 3) 可用来产生高频的PWM 波形。快速PWM 模式与其他PWM模式的不同之处是其三角波工作方式(其他PWM方式为等腰三角形方式) 输出的PWM 频率 (4)相位修正PWM模式 (WGM21:0 = 1) 为用户提供了一个获得高精度相位修正PWM波形的方法。此模式基于双斜线操作。 变量N代表分频因子(1、8、64、256 或1024) 导航、制导与控制

56 7.2.2 与T/C2相关的8位寄存器说明 8位控制寄存器(TCCR2) 8位计数寄存器(TCNT2) 8位输出比较寄存器(OCR2)
工作模式、匹配输出模式 、时钟选择 8位计数寄存器(TCNT2) 8位输出比较寄存器(OCR2) 8位中断屏蔽寄存器(TIMSK) Bit 7 – OCIE2: T/C2 输出比较匹配中断使能 Bit 6 – TOIE2: T/C2 溢出中断使能 8位中断标志寄存器(TIFR) Bit 7 – OCF2: 输出比较标志0(T/C2与OCR2的值匹配时,OCF2置位) Bit 6 – TOV2:T/C2 溢出标志 导航、制导与控制

57 7.3 16位 T/ C1和T/ C3 16位的T/C 可以实现精确的程序定时(事件管理)、波形产生和信号测量。其主要特点如下
真正的16 位设计( 即允许16 位的PWM) 3 个独立的输出比较单元 双缓冲的输出比较寄存器 一个输入比较单元 输入捕捉噪声抑制器 比较匹配发生时清除寄存器( 自动重载) 无毛刺的相位修正PWM,可变的PWM 周期 频率发生器 外部事件计数器 10 个独立的中断源 TOV1、OCF1A、OCF1B、OCF1C、ICF1 TOV3、OCF3A、OCF3B、OCF3C、ICF3 导航、制导与控制

58 7.3.1 访问16位的定时器 TCNTn、OCRnA/B/C与ICRn是AVR CPU 通过8位数据总线可以访问的16位寄存器。
读写16位寄存器需要两次操作。 每个16位计时器都有一个8位临时寄存器用来存放其高8位数据。每个16位定时器所属的16位寄存器共用相同的临时寄存器。 访问低字节会触发16位读或写操作。当CPU 写入数据到16 位寄存器的低字节时,写入的8 位数据与存放在临时寄存器中的高8位数据组成一个16位数据,同步写入到16位寄存器中。当CPU读取16位寄存器的低字节时,高字节内容在读低字节操作的同时被放置于临时辅助寄存器中。 并非所有的16位访问都涉及临时寄存器。 对OCRnA/B/C 寄存器的读操作就不涉及临时寄存器 写16位寄存器时,应先写入该寄存器的高位字节。 读16位寄存器时,应先读取该寄存器的低位字节。 导航、制导与控制

59 7.3.2 工作模式 (1)普通模式 (2)CTC模式(比较匹配时清除定时器) (WGMn 1:0= 0)为最简单的工作模式。
工作模式 (1)普通模式 (WGMn 1:0= 0)为最简单的工作模式。 在此模式下计数器不停地累加。计到最大值后(TOP=0xFF),计数器简单地返回到最小值0x00重新开始。 (2)CTC模式(比较匹配时清除定时器) (WGMn3:0 = 4 或12) OCRnA 或ICRn定义了计数器的TOP值 TCNTn= TOP值时计数器清零 波形发生器的频率 变量N代表分频因子(1、8、64、256 或1024) 导航、制导与控制

60 7.3.2 工作模式 (3)快速PWM模式 (4)相位修正PWM模式
工作模式 (3)快速PWM模式 (WGMn3:0 = 5、6、7、14 或15) 可用来产生高频的PWM 波形。 输出的PWM 频率 (4)相位修正PWM模式 (WGMn3:0 = 1、2、3、10 或11)为用户提供了一个获得高精度相位修正PWM波形的方法。此模式基于双斜线操作。 变量N代表分频因子(1、8、64、256 或1024) 导航、制导与控制

61 7.3.3 与T/C相关的8位寄存器说明 8位控制寄存器A(TCCR1A、TCCR3A) 8位控制寄存器B(TCCR1B、TCCR3B)
Bit 7:6 – COMnA1:0_通道A的比较输出模式 Bit 5:4 – COMnB1:0_通道B的比较输出模式 Bit 3:2 – COMnC1:0_通道C的比较输出模式 Bit 1:0 – WGMn1:0 8位控制寄存器B(TCCR1B、TCCR3B) Bit 7 – ICNCn: 输入捕捉噪声抑制器 Bit 6 – ICESn: 输入捕捉触发沿选择 Bit 4:3 – WGMn3:2_与WGMn1:0决定波形发生模式 Bit 2:0 – CSn2:0_ 时钟选择 8位控制寄存器C(TCCR1C、TCCR3C) Bit 7 – FOCnA_ 强制输出比较通道A Bit 6 – FOCnB_ 强制输出比较通道B Bit 5 – FOCnC_ 强制输出比较通道C 导航、制导与控制

62 16位捕获寄存器:ICR1H、ICR1L;ICR3H、ICR3L
7.3.3 与T/C相关的16位寄存器说明 16位计数寄存器 TCNT1H、TCNT1L;TCNT3H、TCNT3L 16位输出比较寄存器 ① 输出比较寄存器A (OCR1AH、OCR1AL;OCR3AH、OCR3AL) ② 输出比较寄存器B (OCR1BH、OCR1BL;OCR3BH、OCR3BL) ③ 输出比较寄存器C (OCR1CH、OCR1CL;OCR3CH、OCR3CL) 16位捕获寄存器:ICR1H、ICR1L;ICR3H、ICR3L 可直接对T/C单元的16 位计数器进行读写访问 与TCNTn 中的计数值比较 数据匹配:将产生一个输出比较中断,或改变OCnx 的输出逻辑电平。 当外部引脚ICPn( 或T/C1 的模拟比较器) 有输入捕捉触发信号产生时,计数器TCNTn 中的值写入ICR1中。 导航、制导与控制

63 7.3.3 与T/C相关的8位寄存器说明 8位中断屏蔽寄存器(TIMSK) 8位扩展中断屏蔽寄存器(ETIMSK)
Bit 5 – TICIE1: T/C1 输入捕捉中断使能 Bit 4 – OCIE1A:T/C1 输出比较 A 匹配中断使能 Bit 3 – OCIE1B:T/C1 输出比较 B 匹配中断使能 Bit 2 – TOIE1:T/C1 溢出中断使能 8位扩展中断屏蔽寄存器(ETIMSK) Bit 5 – TICIE3:T/C3, 输入捕捉中断使能 Bit 4 – OCIE3A:T/C3 输出比较 A 匹配中断使能 Bit 3 – OCIE3B:T/C3 输出比较 B 匹配中断使能 Bit 2 – TOIE3:T/C3 溢出中断使能 Bit 1 – OCIE3C:T/C3 输出比较 C 匹配中断使能 Bit 0 – OCIE1C:T/C1 输出比较 C 匹配中断使能 导航、制导与控制

64 7.3.3 与T/C相关的8位寄存器说明 8位中断标志屏蔽寄存器(TIFR) 8位扩展中断标志寄存器(ETIFR)
Bit 5 – ICF1:T/C1 输入捕捉标志位 Bit 4 – OCF1A:T/C1 输出比较 A 匹配标志位 Bit 3 – OCF1B:T/C1 输出比较 B 匹配标志位 Bit 2 – TOV1:T/C1 溢出标志 8位扩展中断标志寄存器(ETIFR) Bit 5 – ICF3:T/C3 输入捕捉标志位 Bit 4 – OCF3A:T/C3 输出比较 A 匹配标志位 Bit 3 – OCF3B:T/C3 输出比较 B 匹配标志位 Bit 2 – TOV3:T/C3 溢出标志 Bit 1 – OCF3C:T/C3 输出比较 C 匹配标志位 Bit 0 – OCF1C:T/C1 输出比较 C 匹配标志位 导航、制导与控制

65 7.4 定时器/计数器的预分频器 预分频器的作用是对输入的时钟进行分频,产生定时器/计数器的工作时钟。 T/ C0的预分频器
T/C1、T/C2和T/C3的的预分频器 导航、制导与控制

66 内容 8、模数转换器 A/D 1、ATmega128的CPU内核 2、ATmega128 存储器 3、系统时钟及其选项 4、系统控制和复位
6、I/O端口 7、定时器/ 计数器(T/C) 8、模数转换器 A/D 导航、制导与控制

67 8、模数转换器 A/D 8.1 模数转换器特点 8.2 相关寄存器 8.3 操作(启动一次转换) 8.4 预分频器
8.5 ADC转换结果处理 导航、制导与控制

68 8.1 模数转换器特点 10 位逐次逼近型精度 0.5 LSB 的非线性度,± 2 LSB 的绝对精度 13 - 260 μs 的转换时间
最高分辨率时采样率高达15kSPS 8 路复用的单端输入通道 7 路差分输入通道 2 路可选增益为10x 与200x 的差分输入通道 可选的左对齐ADC 读数 0 - VCC 的 ADC 输入电压范围 可选的2.56V ADC 参考电压 连续转换或单次转换模式 ADC 转换结束中断 基于睡眠模式的噪声抑制器 导航、制导与控制

69 8.2 相关寄存器 ADC多工选择寄存器ADMUX ADC控制和状态寄存器ADCSRA ADC数据寄存器(ADCL和ADCH)
导航、制导与控制

70 8.2.1 ADC多工选择寄存器ADMUX Bit7:6 – REFS1:0_参考电压选择。
Bit5–ADLAR_ADC 转换结果左对齐(=1) Bits4:0 – MUX4:0_模拟通道与增益选择位 导航、制导与控制

71 8.2.2 控制和状态寄存器ADCSRA Bit 7 – ADEN_ADC 使能 Bit 6 – ADSC_ADC 开始转换
Bit 5 – ADFR_ADC 连续转换选择(=1) Bit 4 – ADIF_ADC 中断标志 Bit 3 – ADIE_ADC 中断使能 Bits 2:0 – ADPS2:0_ADC 预分频器选择位 导航、制导与控制

72 8.2.3 数据寄存器(ADCL和ADCH) ADLAR = 0(右对齐): ADLAR =1(左对齐): 导航、制导与控制

73 8.3 操作(启动一次转换) ADC 转换,最小值代表GND,最大值代表AREF引脚上的电压再减去1 LSB。
8.3 操作(启动一次转换) ADC 转换,最小值代表GND,最大值代表AREF引脚上的电压再减去1 LSB。 设置ADCSRA寄存器的ADEN即可启动(使能)ADC。 默认情况下转换结果为右对齐,但可通过设置ADMUX寄存器的ADLAR变为左对齐。 ADC转换结束可以触发中断。 启动一次转换 向ADC启动转换位ADSC位写"1”可以启动单次转换。在转换过程中此位保持为高,直到转换结束,然后被硬件清零。 导航、制导与控制

74 8.4 预分频器 逐次逼近电路需要一个从50 kHz到200 kHz的输入时钟以获得最大精度。
ADC模块包括一个预分频器,它可以由任何超过100 kHz的CPU时钟来产生可接受的ADC时钟。 预分频器通过ADCSRA寄存器的ADPS进行设置。 ADC预分频器 导航、制导与控制

75 8.5 ADC转换结果处理 转换结束后,ADIF为高。 单次转换的结果 使用差分通道的结果
VIN为被选中引脚的输入电压,VREF为参考电压。0x000 代表模拟地电平,0x3FF代表所选参考电压的数值减去1LSB。 VPOS为输入引脚正电压,VNEG为输入引脚负电压,GAIN为选定的增益因子,且VREF 为参考电压。结果用2的补码形式表示,从0x200 (-512d) 到0x1FF (+511d)。 导航、制导与控制

76 ADC转换的实例 ADMUX = 0xE0 ; // 1110,000 //片内2.56V基准源,通道为ADC0,结果左对齐。
ADCSRA=0x87; //使能ADC,ADC分频系数是128 ADCSRA|=(1<<ADSC); //启动单次转换 While(!ADCSRA&(1<<ADIF))); //等待转换结束 ADCSRA|=(1<<ADIF); //清除ADIF位 在ADC0引脚加上2V电压,实际转换结果是ADCH= ,ADCL= 。因为是左对齐方式,所以转换结果为 ,即十进制数799,根据单端的公式算得800。 导航、制导与控制

77 内容总结 1、ATmega128的CPU内核 2、ATmega128 存储器 3、系统时钟及其选项 4、系统控制和复位
6、I/O端口 7、定时器/ 计数器(T/C) 8、模数转换器ADC 导航、制导与控制

78 单片机系统结构内容结束 THANKS!


Download ppt "ATmega128单片机 概述、系统结构 夏洁 2009年3月."

Similar presentations


Ads by Google