描述
深入解析Atmel ATmega48/88/168汽车级8位AVR微控制器
在电子工程师的日常设计工作中,选择一款合适的微控制器至关重要。Atmel的ATmega48/88/168汽车级8位AVR微控制器以其高性能、低功耗等特性,成为众多嵌入式控制应用的理想选择。下面,让我们一起深入了解这款微控制器。
文件下载:ATMEGA88-15MT1.pdf
一、产品特性
高性能与低功耗
ATmega48/88/168采用AVR® 8位微控制器架构,具备先进的RISC架构。它拥有131条强大的指令,大多数指令可在单时钟周期内执行,还配备32×8通用工作寄存器,能实现全静态操作。在16MHz时钟频率下,其吞吐量可达16MIPS,片上还集成了2周期乘法器,在保证高性能的同时,有效降低了功耗。
非易失性程序和数据存储器
- 闪存(Flash):ATmega48/88/168分别具备4K/8K/16K字节的系统内自编程闪存,擦写寿命可达75,000次。还可选配独立锁定位的引导代码区,支持通过片上引导程序进行系统内编程,并且能实现真正的读 - 写操作。
- EEPROM:对应型号分别有256/512/512字节的EEPROM,擦写寿命为100,000次。
- SRAM:分别拥有512/1K/1K字节的内部SRAM,同时具备编程锁,保障软件安全。
丰富的外设功能
- 定时器/计数器:两个8位定时器/计数器,具有独立预分频器和比较模式;一个16位定时器/计数器,具备独立预分频器、比较模式和捕获模式;还有带独立振荡器的实时计数器,以及六个PWM通道。
- ADC:8通道10位ADC,能满足多种模拟信号采集需求。
- 通信接口:可编程串行USART、主/从SPI串行接口、面向字节的2线串行接口。
- 其他:可编程看门狗定时器,带独立片上振荡器;片上模拟比较器;支持引脚变化中断和唤醒。
特殊微控制器特性
- 复位与检测:具备上电复位和可编程欠压检测功能。
- 振荡器:内部校准振荡器,为系统提供稳定时钟。
- 中断与睡眠模式:拥有外部和内部中断源,支持五种睡眠模式,包括空闲模式、ADC降噪模式、省电模式、掉电模式和待机模式,可根据不同应用场景灵活选择,进一步降低功耗。
I/O与封装
该微控制器有23个可编程I/O线,采用绿色/ROHS标准的32引脚TQFP和32焊盘QFN封装。工作电压范围为2.7 - 5.5V,温度范围为 - 40°C至125°C。速度等级方面,在2.7至5.5V电压下,ATmega48/88/168的工作频率为0至8MHz;在4.5至5.5V电压下,工作频率为0至16MHz。其低功耗表现出色,如在4MHz、3.0V的活动模式下,电流仅为1.8mA;在3.0V的掉电模式下,电流低至5µA。
二、引脚配置与功能
引脚概述
ATmega48/88/168的引脚配置丰富,不同引脚具有不同的功能。例如,VCC为数字电源电压,GND为接地。
各端口功能
- 端口B(PB7..0):8位双向I/O端口,带有内部上拉电阻。根据时钟选择熔丝设置,PB6可作为反相振荡器放大器的输入和内部时钟操作电路的输入;PB7可作为反相振荡器放大器的输出。若使用内部校准RC振荡器作为芯片时钟源,当ASSR中的AS2位设置时,PB7..6可作为异步定时器/计数器2的TOSC2..1输入。
- 端口C(PC5..0):7位双向I/O端口,同样带有内部上拉电阻。PC6/RESET引脚,若RSTDISBL熔丝被编程,PC6用作I/O引脚;若未编程,则用作复位输入。
- 端口D(PD7..0):8位双向I/O端口,具备内部上拉电阻。
- AVCC:为A/D转换器、PC3..0和ADC7..6提供电源电压,即使不使用ADC,也应外部连接到VCC;若使用ADC,需通过低通滤波器连接到VCC。
- AREF:A/D转换器的模拟参考引脚。
- ADC7..6(TQFP和QFN封装):作为A/D转换器的模拟输入,为10位ADC通道。
三、AVR CPU核心
架构概述
AVR采用哈佛架构,程序和数据拥有独立的存储器和总线。指令执行采用单级流水线,在执行一条指令的同时,预取下一条指令,实现每个时钟周期执行一条指令。程序存储器为系统内可重编程闪存。
寄存器与运算单元
- 通用工作寄存器:快速访问寄存器文件包含32个8位通用工作寄存器,可在单时钟周期内完成访问,支持单周期算术逻辑单元(ALU)操作。其中6个寄存器可作为3个16位间接地址寄存器指针,用于数据空间寻址。
- ALU:高性能AVR ALU与32个通用工作寄存器直接相连,可在单时钟周期内执行通用寄存器之间或寄存器与立即数之间的算术运算,操作分为算术、逻辑和位功能三大类。
- 状态寄存器:包含最近执行的算术指令结果信息,可用于改变程序流程,实现条件操作。状态寄存器在进入和退出中断例程时需由软件处理。
堆栈与指令执行
- 堆栈指针:堆栈主要用于存储临时数据、局部变量和中断及子程序调用后的返回地址。堆栈指针指向数据SRAM堆栈区域,程序需在执行子程序调用或启用中断前定义堆栈空间。
- 指令执行时序:AVR CPU由CPU时钟驱动,无内部时钟分频。哈佛架构和快速访问寄存器文件概念实现了并行指令取指和执行,基本流水线概念可实现每MHz高达1MIPS的性能。
复位与中断处理
- 中断源与向量:AVR提供多种中断源,每个中断和复位向量在程序内存空间都有独立的程序向量。中断需将全局中断使能位和相应的独立使能位设置为逻辑1才能启用。
- 中断类型与响应时间:中断分为两种类型,一种由事件触发设置中断标志,硬件清除标志;另一种只要中断条件存在就会触发。中断执行响应时间至少为四个时钟周期,返回中断处理例程也需要四个时钟周期。
四、不同型号对比
ATmega48、ATmega88和ATmega168主要在内存大小、引导加载器支持和中断向量大小方面存在差异。ATmega88和ATmega168支持真正的读 - 写自编程机制,有单独的引导加载器部分;而ATmega48不支持读 - 写操作,也没有单独的引导加载器部分。
作为电子工程师,在设计中选择ATmega48/88/168微控制器时,需根据具体应用需求,综合考虑其特性、引脚功能、CPU核心架构等因素,以充分发挥其优势,实现高效、可靠的嵌入式控制应用。你在使用这款微控制器的过程中,遇到过哪些有趣的问题或挑战呢?欢迎在评论区分享交流。
打开APP阅读更多精彩内容