电子说
在嵌入式系统设计领域,低功耗、高性能的微控制器一直是工程师们追求的目标。ATtiny15L作为Atmel公司推出的一款8位微控制器,凭借其先进的RISC架构和丰富的外设功能,在众多应用场景中展现出了强大的竞争力。今天,我们就来深入探讨一下ATtiny15L的特性、架构以及应用要点。
文件下载:ATTINY15L-1SC.pdf
ATtiny15L是一款基于AVR RISC架构的低功耗CMOS 8位微控制器。它能够在单时钟周期内执行强大的指令,每兆赫兹的吞吐量接近1 MIPS,这使得系统设计人员可以在功耗和处理速度之间进行优化。
ATtiny15L采用先进的RISC架构,拥有90条强大的指令,大部分指令能在单时钟周期内执行。它配备32个8位通用工作寄存器,且支持全静态操作,这不仅提高了指令执行效率,还降低了功耗。在1.6 MHz、3V、25°C的条件下,其工作模式下的电流仅为3.0 mA,空闲模式为1.0 mA,掉电模式更是小于1 μA。
ATtiny15L具备1K字节的系统内可编程闪存程序存储器,可进行1000次写/擦除循环;还有64字节的EEPROM,能进行100000次写/擦除循环。此外,闪存程序数据采用编程锁保护,确保了数据的安全性。
ATtiny15L的寄存器文件包含32个8位通用工作寄存器,访问时间仅为单时钟周期。这意味着在一个时钟周期内,算术逻辑单元(ALU)可以完成一次操作,从寄存器文件中输出两个操作数,执行操作后将结果存储回寄存器文件。其中,寄存器30和31可组成一个16位指针(Z指针),用于间接访问闪存存储器和寄存器文件。
高性能的AVR ALU与32个通用工作寄存器直接相连,能在单时钟周期内执行寄存器之间的算术、逻辑和位操作。部分AVR产品系列的微控制器在ALU的算术部分还配备了硬件乘法器,进一步提高了运算速度。
ATtiny15L的片上系统内可编程闪存存储器为程序存储提供了1K字节的空间。由于所有指令均为单16位字,闪存被组织为512 x 16字,且至少能进行1000次写/擦除循环。
ATtiny15L支持多种寻址模式,包括直接单寄存器寻址、寄存器间接寻址、双寄存器直接寻址、I/O直接寻址、相对程序寻址和常量寻址等。这些灵活的寻址模式为程序设计提供了更多的选择,提高了代码的效率。
ATtiny15L使用一个3级深度的硬件堆栈来处理子程序和中断。在子程序调用和中断发生时,程序计数器(PC)的返回地址会被压入堆栈;返回时,返回地址从堆栈中弹出。
ATtiny15L的64字节EEPROM数据存储器作为一个独立的数据空间,可进行单字节的读写操作,且至少能进行100000次写/擦除循环。
ATtiny15L有四种复位源:上电复位、外部复位、看门狗复位和欠压复位。在复位时,所有I/O寄存器将被设置为初始值,程序从地址$000开始执行。
ATtiny15L提供了八个中断源,每个中断源和复位向量在程序存储器空间中都有独立的程序向量。中断的使能需要将状态寄存器(SREG)中的全局中断使能位(I位)和相应的中断使能位同时置位。中断执行响应时间最短为四个时钟周期,返回中断处理程序也需要四个时钟周期。
ATtiny15L支持三种睡眠模式:空闲模式、ADC噪声减少模式和掉电模式。通过设置MCU控制寄存器(MCUCR)中的SE位和SM1、SM0位,可以选择相应的睡眠模式。在睡眠模式下,若有使能的中断发生,MCU将被唤醒。
内部RC振荡器提供了一个标称值为1.6 MHz的系统时钟,可通过向OSCCAL寄存器写入校准字节来校准振荡器频率,以消除工艺变化的影响。
内部PLL可将RC振荡器系统时钟频率乘以16,生成一个25.6 MHz的快速外设时钟,可作为Timer/Counter1的时钟源。
ATtiny15L的两个8位定时器/计数器(Timer/Counter0和Timer/Counter1)具有独立的预分频器,可选择不同的时钟源和预分频系数,以满足不同的定时和计数需求。Timer/Counter1还可作为一个精确的、高速的8位脉冲宽度调制器(PWM)使用。
看门狗定时器由一个独立的片上振荡器提供时钟,通过控制预分频器,可将看门狗复位间隔调整为16到2048 ms。为防止意外禁用看门狗,禁用时需要遵循特殊的关闭序列。
EEPROM访问寄存器位于I/O空间,写访问时间在4.6 - 8.2 ms之间,具体取决于校准RC振荡器的频率。为防止意外写入EEPROM,需要遵循两态写程序。
在低$V_{CC}$期间,EEPROM数据可能会因电源电压过低而损坏。为避免这种情况,可以采取以下措施:保持AVR复位激活、将AVR核心置于掉电睡眠模式或将常量存储在闪存存储器中。
模拟比较器用于比较正引脚PB0(AIN0)和负引脚PB1(AIN1)上的输入值,当正引脚电压高于负引脚时,比较器输出(ACO)置位。比较器输出可触发独立的中断,用户可选择在比较器输出上升、下降或翻转时触发中断。
ATtiny15L的10位逐次逼近ADC连接到一个4通道模拟多路复用器,支持一个差分电压输入和四个单端电压输入。ADC具有多种特性,如10位分辨率、±2 LSB绝对精度、0.5 LSB积分非线性等,还支持可选的偏移消除和睡眠模式噪声消除功能。
端口B是一个6位双向I/O端口,具有真正的读 - 修改 - 写功能。每个引脚可独立选择上拉电阻,且可通过设置MCUCR寄存器中的PUD位禁用上拉电阻。
端口B的部分引脚具有替代功能,如PB2可作为串行时钟输入、外部中断0输入或外部计数器时钟输入;PB1可作为串行数据输出、Timer/Counter1输出比较匹配输出或模拟比较器的负输入等。
ATtiny15L支持高压(12V)串行编程模式和低压串行编程模式,可对闪存程序存储器和EEPROM数据存储器进行编程。
ATtiny15L有六个熔丝位(BODLEVEL、BODEN、SPIEN、RSTDSBL和CKSEL1..0),可用于配置设备的各种功能。锁定位可用于保护存储器,防止进一步编程和验证。
ATtiny15L具有一个三字节的签名代码,用于识别设备。此外,还有一个一字节的校准值用于内部RC振荡器,可通过读取该值并写入OSCCAL寄存器来校准振荡器频率。
ATtiny15L凭借其低功耗、高性能和丰富的外设功能,适用于多种嵌入式控制应用,如电池充电器、照明镇流器和各种智能传感器应用等。在实际设计中,工程师们需要根据具体的应用需求,合理配置ATtiny15L的各种功能,以充分发挥其优势。
在使用ATtiny15L时,你是否遇到过一些独特的挑战?又是如何解决的呢?欢迎在评论区分享你的经验和见解。
希望通过本文的介绍,能让你对ATtiny15L有更深入的了解,为你的嵌入式系统设计提供有益的参考。
全部0条评论
快来发表一下你的评论吧 !