电子说
在当今的电子设计领域,对于高性能、低功耗微控制器的需求日益增长。Atmel的ATtiny87/ATtiny167 8位AVR微控制器凭借其先进的架构和丰富的功能,成为了众多嵌入式控制应用的理想选择。本文将深入剖析这款微控制器的各项特性、架构以及应用要点,为电子工程师们提供全面的技术参考。
文件下载:ATTINY167-15XZ.pdf
ATtiny87和ATtiny167在硬件和软件上相互兼容,主要区别在于内存大小。ATtiny167拥有16K字节的闪存、512字节的EEPROM和512字节的SRAM;而ATtiny87的闪存为8K字节,EEPROM和SRAM与ATtiny167相同,两者的中断向量大小均为2指令字/向量。
ATtiny87/167是基于AVR增强型RISC架构的低功耗CMOS 8位微控制器。它能够在单个时钟周期内执行强大的指令,每MHz可实现接近1MIPS的吞吐量,使系统设计师能够在功耗和处理速度之间进行优化。该器件具备8K/16K字节的系统内可编程闪存、512字节的EEPROM、512字节的SRAM、16个通用I/O线、32个通用工作寄存器等丰富资源,还拥有多种定时器/计数器、通用串行接口、LIN控制器、内部和外部中断、11通道10位ADC、可编程看门狗定时器以及三种软件可选的节能模式。
ATtiny87/167按照国际标准ISO - TS - 16949的最严格要求进行开发和制造。其质量和可靠性已通过AEC - Q100 1级的常规产品认证,数据手册中包含了从广泛特性化(温度和电压)结果中提取的极限值。
AVR采用哈佛架构,拥有独立的程序和数据存储器及总线。指令执行采用单级流水线,在执行一条指令的同时,从程序存储器预取下一条指令,实现每个时钟周期执行一条指令。程序存储器为系统内可重编程闪存,快速访问寄存器文件包含32个8位通用工作寄存器,可实现单周期算术逻辑单元(ALU)操作。
高性能AVR ALU与32个通用工作寄存器直接连接,能在单个时钟周期内执行通用寄存器之间或寄存器与立即数之间的算术运算。ALU操作分为算术、逻辑和位功能三大类,部分架构实现还提供支持有符号/无符号乘法和分数格式的强大乘法器。
状态寄存器包含最近执行的算术指令的结果信息,可用于改变程序流程以执行条件操作。状态寄存器在所有ALU操作后更新,许多情况下可避免使用专用比较指令,从而生成更快速、更紧凑的代码。需要注意的是,进入中断例程时状态寄存器不会自动存储,从中断返回时也不会自动恢复,这需要软件进行处理。
寄存器文件针对AVR增强型RISC指令集进行了优化,支持多种输入/输出方案。32个通用工作寄存器中的R26 - R31还可作为16位间接地址寄存器指针,用于数据空间寻址,实现高效的地址计算。
堆栈主要用于存储临时数据、局部变量以及中断和子程序调用后的返回地址。堆栈指针寄存器始终指向堆栈顶部,堆栈从高内存地址向低内存地址增长。在执行子程序调用或启用中断之前,程序必须定义数据SRAM中的堆栈空间,并将堆栈指针设置为指向0x60以上的位置。
AVR CPU由CPU时钟驱动,采用哈佛架构和快速访问寄存器文件概念,实现并行指令预取和执行,每MHz可达到1MIPS的吞吐量。在单个时钟周期内,可执行使用两个寄存器操作数的ALU操作,并将结果存储回目标寄存器。
AVR提供多种中断源,每个中断和复位向量在程序内存空间中都有单独的程序向量。所有中断都有单独的使能位,必须与状态寄存器中的全局中断使能位一起设置为逻辑1才能启用中断。中断发生时,全局中断使能I位被清除,所有中断被禁用。中断执行响应时间至少为四个时钟周期,从中断处理例程返回也需要四个时钟周期。
ATtiny87/ATtiny167包含片上系统内可重编程闪存用于程序存储,闪存组织为16位宽。该闪存在汽车范围内至少有10,000次写/擦除循环的耐久性,程序计数器(PC)用于寻址程序存储器位置。
ATtiny87/ATtiny167的SRAM内存组织较为复杂,数据内存位置可寻址寄存器文件、I/O内存、扩展I/O内存和内部数据SRAM。数据内存支持五种不同的寻址模式,包括直接寻址、带位移的间接寻址、间接寻址、带预减量的间接寻址和带后增量的间接寻址。内部数据SRAM访问需要两个clk CPU周期。
ATtiny87/ATtiny167支持全套程序和系统开发工具,包括C编译器、宏汇编器、程序调试器/模拟器、在线仿真器和评估套件。文档中还包含简单的代码示例,展示如何使用器件的各个部分,但需注意不同C编译器在头文件位定义和中断处理方面可能存在差异。
Atmel ATtiny87/ATtiny167微控制器以其高性能、低功耗、丰富的功能和灵活的架构,为嵌入式控制应用提供了强大而经济高效的解决方案。电子工程师们在设计过程中,可以充分利用其特性,实现各种复杂的控制任务。你在使用这款微控制器时,遇到过哪些有趣的挑战呢?欢迎在评论区分享你的经验。
全部0条评论
快来发表一下你的评论吧 !