深入剖析ATtiny15L:低功耗8位微控制器的卓越之选

电子说

1.4w人已加入

描述

深入剖析ATtiny15L:低功耗8位微控制器的卓越之选

在嵌入式系统设计领域,低功耗、高性能的微控制器一直是工程师们追求的目标。ATtiny15L作为Atmel公司推出的一款8位微控制器,凭借其先进的RISC架构和丰富的外设功能,在众多应用场景中展现出了强大的竞争力。今天,我们就来深入探讨一下ATtiny15L的特性、架构以及应用要点。

文件下载:ATTINY15L-1SC.pdf

一、ATtiny15L概述

ATtiny15L是一款基于AVR RISC架构的低功耗CMOS 8位微控制器。它能够在单时钟周期内执行强大的指令,每兆赫兹的吞吐量接近1 MIPS,这使得系统设计人员可以在功耗和处理速度之间进行优化。

1.1 高性能与低功耗

ATtiny15L采用先进的RISC架构,拥有90条强大的指令,大部分指令能在单时钟周期内执行。它配备32个8位通用工作寄存器,且支持全静态操作,这不仅提高了指令执行效率,还降低了功耗。在1.6 MHz、3V、25°C的条件下,其工作模式下的电流仅为3.0 mA,空闲模式为1.0 mA,掉电模式更是小于1 μA。

1.2 非易失性存储器

ATtiny15L具备1K字节的系统内可编程闪存程序存储器,可进行1000次写/擦除循环;还有64字节的EEPROM,能进行100000次写/擦除循环。此外,闪存程序数据采用编程锁保护,确保了数据的安全性。

1.3 丰富的外设功能

  • 中断与唤醒功能:支持引脚变化中断和唤醒,能及时响应外部事件。
  • 定时器/计数器:拥有两个8位定时器/计数器,分别配有独立的预分频器,可实现精确的定时和计数功能。
  • PWM输出:具备一个150 kHz、8位的高速PWM输出,可用于电机控制、灯光调节等领域。
  • ADC模块:4通道10位ADC,支持差分电压输入,可选20倍增益,能满足多种模拟信号采集需求。
  • 模拟比较器:片上模拟比较器可用于比较两个模拟信号的大小,触发相应的中断。
  • 看门狗定时器:可编程看门狗定时器配有片上振荡器,可防止程序跑飞,提高系统的稳定性。

二、ATtiny15L架构解析

2.1 通用寄存器文件

ATtiny15L的寄存器文件包含32个8位通用工作寄存器,访问时间仅为单时钟周期。这意味着在一个时钟周期内,算术逻辑单元(ALU)可以完成一次操作,从寄存器文件中输出两个操作数,执行操作后将结果存储回寄存器文件。其中,寄存器30和31可组成一个16位指针(Z指针),用于间接访问闪存存储器和寄存器文件。

2.2 ALU算术逻辑单元

高性能的AVR ALU与32个通用工作寄存器直接相连,能在单时钟周期内执行寄存器之间的算术、逻辑和位操作。部分AVR产品系列的微控制器在ALU的算术部分还配备了硬件乘法器,进一步提高了运算速度。

2.3 闪存程序存储器

ATtiny15L的片上系统内可编程闪存存储器为程序存储提供了1K字节的空间。由于所有指令均为单16位字,闪存被组织为512 x 16字,且至少能进行1000次写/擦除循环。

2.4 程序和数据寻址模式

ATtiny15L支持多种寻址模式,包括直接单寄存器寻址、寄存器间接寻址、双寄存器直接寻址、I/O直接寻址、相对程序寻址和常量寻址等。这些灵活的寻址模式为程序设计提供了更多的选择,提高了代码的效率。

2.5 子程序和中断硬件堆栈

ATtiny15L使用一个3级深度的硬件堆栈来处理子程序和中断。在子程序调用和中断发生时,程序计数器(PC)的返回地址会被压入堆栈;返回时,返回地址从堆栈中弹出。

2.6 EEPROM数据存储器

ATtiny15L的64字节EEPROM数据存储器作为一个独立的数据空间,可进行单字节的读写操作,且至少能进行100000次写/擦除循环。

三、复位与中断处理

3.1 复位源

ATtiny15L有四种复位源:上电复位、外部复位、看门狗复位和欠压复位。在复位时,所有I/O寄存器将被设置为初始值,程序从地址$000开始执行。

3.2 中断处理

ATtiny15L提供了八个中断源,每个中断源和复位向量在程序存储器空间中都有独立的程序向量。中断的使能需要将状态寄存器(SREG)中的全局中断使能位(I位)和相应的中断使能位同时置位。中断执行响应时间最短为四个时钟周期,返回中断处理程序也需要四个时钟周期。

四、睡眠模式与振荡器

4.1 睡眠模式

ATtiny15L支持三种睡眠模式:空闲模式、ADC噪声减少模式和掉电模式。通过设置MCU控制寄存器(MCUCR)中的SE位和SM1、SM0位,可以选择相应的睡眠模式。在睡眠模式下,若有使能的中断发生,MCU将被唤醒。

4.2 可调内部RC振荡器

内部RC振荡器提供了一个标称值为1.6 MHz的系统时钟,可通过向OSCCAL寄存器写入校准字节来校准振荡器频率,以消除工艺变化的影响。

4.3 内部PLL

内部PLL可将RC振荡器系统时钟频率乘以16,生成一个25.6 MHz的快速外设时钟,可作为Timer/Counter1的时钟源。

五、定时器/计数器与看门狗定时器

5.1 定时器/计数器

ATtiny15L的两个8位定时器/计数器(Timer/Counter0和Timer/Counter1)具有独立的预分频器,可选择不同的时钟源和预分频系数,以满足不同的定时和计数需求。Timer/Counter1还可作为一个精确的、高速的8位脉冲宽度调制器(PWM)使用。

5.2 看门狗定时器

看门狗定时器由一个独立的片上振荡器提供时钟,通过控制预分频器,可将看门狗复位间隔调整为16到2048 ms。为防止意外禁用看门狗,禁用时需要遵循特殊的关闭序列。

六、EEPROM读写与保护

6.1 EEPROM读写访问

EEPROM访问寄存器位于I/O空间,写访问时间在4.6 - 8.2 ms之间,具体取决于校准RC振荡器的频率。为防止意外写入EEPROM,需要遵循两态写程序。

6.2 防止EEPROM损坏

在低$V_{CC}$期间,EEPROM数据可能会因电源电压过低而损坏。为避免这种情况,可以采取以下措施:保持AVR复位激活、将AVR核心置于掉电睡眠模式或将常量存储在闪存存储器中。

七、模拟比较器与ADC

7.1 模拟比较器

模拟比较器用于比较正引脚PB0(AIN0)和负引脚PB1(AIN1)上的输入值,当正引脚电压高于负引脚时,比较器输出(ACO)置位。比较器输出可触发独立的中断,用户可选择在比较器输出上升、下降或翻转时触发中断。

7.2 ADC模块

ATtiny15L的10位逐次逼近ADC连接到一个4通道模拟多路复用器,支持一个差分电压输入和四个单端电压输入。ADC具有多种特性,如10位分辨率、±2 LSB绝对精度、0.5 LSB积分非线性等,还支持可选的偏移消除和睡眠模式噪声消除功能。

八、I/O端口B

8.1 通用数字I/O功能

端口B是一个6位双向I/O端口,具有真正的读 - 修改 - 写功能。每个引脚可独立选择上拉电阻,且可通过设置MCUCR寄存器中的PUD位禁用上拉电阻。

8.2 替代功能

端口B的部分引脚具有替代功能,如PB2可作为串行时钟输入、外部中断0输入或外部计数器时钟输入;PB1可作为串行数据输出、Timer/Counter1输出比较匹配输出或模拟比较器的负输入等。

九、编程与配置

9.1 内存编程

ATtiny15L支持高压(12V)串行编程模式和低压串行编程模式,可对闪存程序存储器和EEPROM数据存储器进行编程。

9.2 熔丝位与锁定位

ATtiny15L有六个熔丝位(BODLEVEL、BODEN、SPIEN、RSTDSBL和CKSEL1..0),可用于配置设备的各种功能。锁定位可用于保护存储器,防止进一步编程和验证。

9.3 签名字节与校准字节

ATtiny15L具有一个三字节的签名代码,用于识别设备。此外,还有一个一字节的校准值用于内部RC振荡器,可通过读取该值并写入OSCCAL寄存器来校准振荡器频率。

十、应用场景与总结

ATtiny15L凭借其低功耗、高性能和丰富的外设功能,适用于多种嵌入式控制应用,如电池充电器、照明镇流器和各种智能传感器应用等。在实际设计中,工程师们需要根据具体的应用需求,合理配置ATtiny15L的各种功能,以充分发挥其优势。

在使用ATtiny15L时,你是否遇到过一些独特的挑战?又是如何解决的呢?欢迎在评论区分享你的经验和见解。

希望通过本文的介绍,能让你对ATtiny15L有更深入的了解,为你的嵌入式系统设计提供有益的参考。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分