ATMEGA128——初探

内部

  • 基于AVR1RISC2结构的高性能、低功耗8位的微处理器
  • 时钟频率为16MHz时运算速度为16MIPS3
  • 133条指令(大多数可以在一个时钟周期内完成)
  • 128KB的Flash4
  • 4KB的EEPROM5
  • 4KB的内部SRAM6
  • 64KB的外部存储器空间
  • 可通过JTAG7接口实现对Flash,EEPROM,熔丝位8和锁定位9的编程

外设

  • 两个具有独立的预分频器比较器8位定时器
  • 两个具有预分频器比较功能捕捉功能16位定时器
  • 具有独立预分频器的实时时钟计数器
  • 2路8位 PWM
  • 6路分辨率10可编程(2到16位)的PWM
  • 8路10位 ADC
    • 8个单端通道11
    • 7个差分通道12
    • 2个具有可编程增益13(1x,10x或200x)的差分通道
  • 两个串口
  • 独立片内振荡器看门狗定时器
  • 6种睡眠模式:空闲模式ADC噪声抑制模式省电模式掉电模式Standby模式以及可扩展的Standby模式
  • 可通过软件进行选择时钟频率
  • 全局上拉禁止功能
  • 53个可编程I/O口14

    • 除PORTG是5位双向I/O口外,其他端口均为8位[7:0]。
    • 除PORTF外,其他8位端口作为输入使用时,若内部上拉电路使能,则端口被外部电路啦的士输出电流。
    • PORTF可以作为ADC的模拟输入引脚,如果不作ADC的模拟输入,则和其他端口用法一致。
      • 如果使能了JTAG接口,则复位时引脚PF7(TDI)、PF5(TMS)和PF4(TCK)的上拉电阻使能,也就是说,使能JTAG后,PF7、PF5以及PF4一直为高电平,无法编程控制。
    • 所有I/O口复位时均为三态(高阻态)。

  • 64引脚与64引脚MLF封装15

    • 64个引脚除了53个可编程I/O口外,特别介绍一下及个引脚
      • RESET 复位输入引脚。给此引脚输入一个低于最小门限时间的低电平则引起系统复位。
      • XTAL1 反向振荡器放大器及片内时钟操作电路的输入
      • XTAL2 反向振荡器放大器的输出
      • AVCC 与VCC相连,虽然为PORTF和ADC供电,但是无论有没有用到ADC也应该和VCC相连,当使用时通过一个低通滤波器16和VCC相连。
      • AREF为ADC的模拟基准输入引脚
      • PEN是SPI串行下载的使能引脚,上电复位时若PEN保持低电平,则进入SPI串行下载模式,正常工作过程中无作用。

  • 工作电压:ATMEGA128 4.5~5.5v17
         ATMEGA128L 2.7~5.5v
  • 速度:ATMEGA128 0~16MHz18
       ATMEGA128L 0~8MHz

AVR CPU内核(core)

概述

  • AVR采用Harvard结构19具有独立的数据和程序总线,程序储存器的指令通过一级流水线运行,CPU的预取20实现了指令的单周期运行,程序存储器为可在线编程的FLASH
  • 快速访问寄存器文件包括32个8位通用寄存器,均可在一个时钟周期内访问,从而实现单时钟周期的ALU操作21
    • 其中有6个寄存器可以用作3个16位的间接地址寄存器指针以寻址数据空间,实现高效的地址运算。22
    • ALU支持寄存器之间以及寄存器和常熟之间的算术和逻辑运算,也可执行但寄存器操作。运算过后状态寄存器的内容将更新以反映操作结果。
  • 程序流程通过条件的二值判断即跳转指令调用指令来控制,从而直接寻址整个地址空间。大多数指令长度为16位,即每个程序存储器地址都包含一条16位/32位的指令。
  • 程序储存空间分为引导程序区和应用程序区,均有专门的锁定位实现读/写保护,引导程序区的SPM指令特别用于写应用程序区。
  • 在中断和调用子程序时返回地址程序计数器(PC)保存与堆栈23之中。
  • AVR存储器空间为显性的平面结构24。
  • AVR具有一个灵活的中断模块,其控制寄存器位于I/O空间25。26

ALU-逻辑单元

  • AVR ALU与32个通用寄存器直接相连,寄存器之间以及寄存器与立即数27之间的ALU运算只需要一个时钟周期。
  • ALU操作为三类:算术、逻辑和位操作28。
  • ALU还提供了支持有/无符号数和分数乘法的乘法器29。

状态寄存器(SREG->Status Register)

  • 状态寄存器包含最近执行的算术指令的结果信息,可用来改变程序流程以实现条件操作
  • 状态寄存器只有在ALU运算结束后才会更新。
  • 进入或进入和返回时状态寄存器不会自动保存或恢复,需要软件处理
SREG位定义
Bit 7 6 5 4 3 2 1 0
I T H S V N Z C
读/写 R/W R/W R/W R/W R/W R/W R/W R/W
初始值 0 0 0 0 0 0 0 0
意义 全局中断使能 位拷贝储存 半进位标志 符号位 2的补码溢出标志 负数标志 零标志 进位标志

* Bit7(I)置位时使能全局中断。若I清零,则无论单独终端标志如何都不会产生中断。任意中断发生->I=0->RETI->I=1。I也可以通过SEI和CLI指令来置位和清零。
* Bit6(T)可以作为目的或源地址。BST指令拷贝寄存器的某一位到T,而BLD把T拷贝到寄存器的某一位。
* Bit5(H)表示算术操作发生了半进位,主要用于BCD运算。30
* [4:0]为运算(逻辑或算术)位,Bit4(S):S=N⊕V。(⊕为异或运算符,和c语言中的^一致)



  1. 1997年由ATMEl公司挪威设计中心的MR.A和MR.V共同研发出精简指令集(RISC)的高速8位单片机,所以起名AVR单片机。 ↩
  2. RISC(Reduced Instruction Set Computer)即精简指令系统计算机,与之相对的是CISC(Complex Instruction Set Computing)即复杂指令系统计算机。这里的计算机指令系统是指计算机的最底层的机器指令。起初CISC被应用于计算机系统优化,通过设置一些功能复杂的指令来替代一些常见的软件功能,80年代RISC兴起,尽量简化计算机指令功能,只保留能在一个节拍内完成的指令。RISC的精华在于减少指令的平均执行周期,从而提高计算机的工作主频,同时大量使用通用寄存器来提高子程序执行的速度。 ↩
  3. MIPS(Million Instructions Per Second)即每秒处理的百万级的机器语言指令数。 ↩
  4. Flash(Flash EEPROM memory)即闪存,结合了ROM和RAM的长处,不仅具备EEPROM的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失,用于U盘、MP3等里面作为外部储存。 ↩
  5. EEPROM(Electrically Erasable Programmable Read-Only Memory)即电可擦可编程只读存储器——一种掉电后数据不丢失的存储芯片,是可更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程。发展:ROM->PROM->EPROM->EEPROM。 ↩
  6. SRAM(Static Random Access Memory)即静态随机存取存储器,不需要刷新电路即能保存它内部存储的数据,而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失。SRAM有高性能、低功耗,但集成度较低,体积较大。SRAM有两种规格:固定在主板上的高速缓存(Cache Memory)和插在卡槽上的COAST(Cache On A Stick)扩充用的高速缓存,L1 Cache(一级高速缓存)在CPU内部,而L2 Cache(二级高速缓存)一般在CPU外部。 ↩
  7. JTAG(Joint Test Action Group)即联合测试组织行为,也是一种国际标准测试协议(IEEE 1149.1兼容),用于芯片内部测试。JTAG标准4线接口:TMS(模式选择)、TCK(时钟)、TDI(数据输入)、TDO(数据输出),TRST(测试复位)为输入引脚,低电平有效。 ↩
  8. 熔丝位是一个保护知识产权的设计,在特定的引脚上加电压,足够的电流,就可以烧断里边的这根熔丝,烧断以后,片里的程序就不可以被读出来也不能改写了,只能用来运行。熔丝位是在一个特定的地址上可以读到熔丝状态的一个位。0表示已熔断,1表示未熔断。 ↩
  9. 锁定位即在特定地址上可以读到加密锁状态的一个位。 ↩
  10. PWM的分辨率即输出PWM波形时,调整频率和占空比时的精细程度,类比于误差精度。 ↩
  11. 在单端方式工作时;ADC转换的是单输入引脚对地的电压值;在增益为1时,测量的值就是输入的电压值;范围是0V到VREF(内部基准电压);当增益增加时,输入的范围要相应的减小。 ↩
  12. 在差分方式工作时;ADC转换的是AIN+与AIN-两个引脚的差值;在增益为1时,测量的值等于(AIN+)-(AIN-),范围是-VREF到+VREF;当增益增加时,输入的范围要相应的减小。 ↩
  13. 增益即电信号的传输增益,通俗讲也就是信号放大倍数。 ↩
  14. 53个I/O口即为:PORTA[7:0],PORTB[7:0],PORTC[7:0],PORTD[7:0],PORTE[7:0],PORTF[7:0]以及PORTG[4:0]。 ↩
  15. MLF(MicroLeadFrame),MLF接近于芯片级封装(Chip Scale Package,CSP),用封装的底部引线端提供到PCB板的电气接触,而不是到海鸥翅膀形状引线的soic和qual封装,因此,这种封装有利于保证散热和电气性能。 ↩
  16. 低通滤波器(Low-Pass filter)允许从直流到某个截止频率(fCUTOFF)的信号通过,简述为:通低频,阻高频。
    [^FN’2]: ↩
  17. 按一般MCU供电条件来看,ATMEGA128芯片可以以5v电压供电,而ATMEGA128L则可以在3.3v或5v之间任选一个。 ↩
  18. ATMEGA128默认使用1M的内部振荡器,可以通过修改熔丝位改为1、2、4、8、16MHz,而ATMEGA128L则最高可达8MHz的频率。 ↩
  19. RISC(Reduced Instruction Set Computer)即精简指令系统计算机,与之相对的是CISC(Complex Instruction Set Computing)即复杂指令系统计算机。这里的计算机指令系统是指计算机的最底层的机器指令。起初CISC被应用于计算机系统优化,通过设置一些功能复杂的指令来替代一些常见的软件功能,80年代RISC兴起,尽量简化计算机指令功能,只保留能在一个节拍内完成的指令。RISC的精华在于减少指令的平均执行周期,从而提高计算机的工作主频,同时大量使用通用寄存器来提高子程序执行的速度。 ↩
  20. MIPS(Million Instructions Per Second)即每秒处理的百万级的机器语言指令数。 ↩
  21. Flash(Flash EEPROM memory)即闪存,结合了ROM和RAM的长处,不仅具备EEPROM的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失,用于U盘、MP3等里面作为外部储存。 ↩
  22. EEPROM(Electrically Erasable Programmable Read-Only Memory)即电可擦可编程只读存储器——一种掉电后数据不丢失的存储芯片,是可更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程。发展:ROM->PROM->EPROM->EEPROM。 ↩
  23. SRAM(Static Random Access Memory)即静态随机存取存储器,不需要刷新电路即能保存它内部存储的数据,而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失。SRAM有高性能、低功耗,但集成度较低,体积较大。SRAM有两种规格:固定在主板上的高速缓存(Cache Memory)和插在卡槽上的COAST(Cache On A Stick)扩充用的高速缓存,L1 Cache(一级高速缓存)在CPU内部,而L2 Cache(二级高速缓存)一般在CPU外部。 ↩
  24. JTAG(Joint Test Action Group)即联合测试组织行为,也是一种国际标准测试协议(IEEE 1149.1兼容),用于芯片内部测试。JTAG标准4线接口:TMS(模式选择)、TCK(时钟)、TDI(数据输入)、TDO(数据输出),TRST(测试复位)为输入引脚,低电平有效。 ↩
  25. 熔丝位是一个保护知识产权的设计,在特定的引脚上加电压,足够的电流,就可以烧断里边的这根熔丝,烧断以后,片里的程序就不可以被读出来也不能改写了,只能用来运行。熔丝位是在一个特定的地址上可以读到熔丝状态的一个位。0表示已熔断,1表示未熔断。 ↩
  26. 锁定位即在特定地址上可以读到加密锁状态的一个位。 ↩
  27. PWM的分辨率即输出PWM波形时,调整频率和占空比时的精细程度,类比于误差精度。 ↩
  28. 在单端方式工作时;ADC转换的是单输入引脚对地的电压值;在增益为1时,测量的值就是输入的电压值;范围是0V到VREF(内部基准电压);当增益增加时,输入的范围要相应的减小。 ↩
  29. 在差分方式工作时;ADC转换的是AIN+与AIN-两个引脚的差值;在增益为1时,测量的值等于(AIN+)-(AIN-),范围是-VREF到+VREF;当增益增加时,输入的范围要相应的减小。 ↩
  30. 增益即电信号的传输增益,通俗讲也就是信号放大倍数。 ↩

你可能感兴趣的:(ATMEGA128)