Atmel ATtiny25/45/85汽车级8位微控制器的深度剖析

电子说

1.4w人已加入

描述

Atmel ATtiny25/45/85汽车级8位微控制器的深度剖析

在汽车电子飞速发展的今天,高性能、低功耗且稳定可靠的微控制器成为了众多电子工程师设计中的核心需求。Atmel 公司的 ATtiny25/45/85 汽车级8位微控制器凭借其出色的特性,在汽车及相关领域得到了广泛的应用。今天,我就从专业电子工程师的角度,对它进行一次全面的剖析。

文件下载:ATTINY25-15MZ.pdf

一、器件概述

ATtiny25/45/85 是基于 AVR 增强型 RISC 架构的低功耗 CMOS 8位微控制器。它能在单时钟周期内执行强大的指令,每兆赫兹可实现接近 1MIPS 的吞吐量,这使得系统设计师能够在功耗和处理速度之间进行优化。它拥有多种高性能特性,如丰富的寄存器、多种存储器类型、强大的外设功能以及灵活的时钟选项等,非常适合对成本、功耗和性能有严格要求的应用。

二、AVR CPU 核心架构

2.1 架构概述

AVR CPU 采用哈佛架构,拥有独立的程序和数据存储器及总线,指令执行采用单级流水线,在执行一条指令时预取下一条指令,确保每个时钟周期都能执行指令。这种架构让其代码效率更高,处理速度比传统 CISC 微控制器快达十倍。32 个通用工作寄存器可在单时钟周期内直接与算术逻辑单元(ALU)连接,支持快速算术和逻辑运算。

2.2 ALU 与状态寄存器

AVR 的高性能 ALU 能在单时钟周期内执行通用寄存器间或寄存器与立即数之间的算术运算,分为算术、逻辑和位功能三大类,部分架构还支持强大的乘法器。状态寄存器(SREG)保存最近执行的算术指令结果,可用于条件操作时改变程序流程,像判断结果是否为零、有无进位、是否溢出等。不过要注意,进入中断程序时,SREG 不会自动保存,返回时也需软件处理。

三、存储系统

3.1 闪存程序存储器

片上 2/4/8K 字节的系统内可重编程闪存存储器用于存储程序,由于 AVR 指令为 16 或 32 位宽,闪存以 1024/2048/4096 × 16 组织,至少有 10,000 次的写/擦除周期。在使用时,可利用 SPI 引脚进行闪存数据串行下载。

3.2 SRAM 数据存储器

SRAM 数据存储器分为寄存器文件、标准 I/O 存储器和内部数据 SRAM 三部分,通过直接、带位移的间接、间接、预减间接和后增间接五种寻址模式进行访问,32 个通用工作寄存器、64 个 I/O 寄存器和 128/256/512 字节的内部数据 SRAM 均可通过这些寻址模式访问。

3.3 EEPROM 数据存储器

包含 128/256/512 字节的 EEPROM 数据存储器,可单独作为数据空间,单字节可读写,至少有 100,000 次的写/擦除周期。读写时要遵循特定流程以防止数据损坏,如在电源电压不稳定时,可通过启用内部欠压检测器(BOD)或使用外部低 (V_{CC}) 复位保护电路来避免 EEPROM 数据损坏。

四、系统时钟与时钟选项

4.1 时钟系统

ATtiny25/45/85 有多个时钟系统,包括 CPU 时钟、I/O 时钟、闪存时钟、ADC 时钟和内部 PLL 产生的快速外设时钟。不同时钟可通过不同睡眠模式停止,以降低功耗。例如,在不使用某些模块时,可通过睡眠模式停止其时钟供应。

4.2 时钟源选择

该器件有多种时钟源选项,如外部时钟、PLL 时钟、校准的内部 RC 振荡器、看门狗振荡器、外部低频晶体、外部晶体/陶瓷谐振器等。默认时钟源为内部 RC 振荡器,运行频率为 8MHz,可通过熔断位(fuse bits)进行选择。在选择时钟源时,要考虑启动时间、频率稳定性和功耗等因素。例如,在对启动时间要求较高的应用中,可选择合适的启动时间设置;在对频率稳定性要求较高的应用中,可选择外部晶体振荡器。

4.3 系统时钟预分频器

通过设置时钟预分频寄存器(CLKPR)可对系统时钟进行分频,以降低功耗。更改预分频设置时,需遵循特殊的写入流程,同时要禁用中断以确保写入过程不被中断。例如,在对处理能力需求较低时,可适当降低时钟频率以减少功耗。

五、电源管理与睡眠模式

5.1 睡眠模式概述

AVR 微控制器提供多种睡眠模式,可通过设置 MCUCR 寄存器中的 SE 位和执行 SLEEP 指令进入。不同睡眠模式可停止不同模块的运行,从而节省功耗。在进入睡眠模式后,若有启用的中断发生,MCU 会唤醒并执行中断程序。

5.2 具体睡眠模式

  1. 空闲模式:CPU 停止运行,但模拟比较器、ADC、定时器/计数器、看门狗和中断系统继续运行,可用于等待外部或内部中断唤醒,如定时器溢出中断。
  2. ADC 降噪模式:CPU 停止运行,仅允许 ADC、外部中断和看门狗(若启用)继续运行,可改善 ADC 的噪声环境,提高测量分辨率。
  3. 掉电模式:振荡器停止,仅外部中断和看门狗(若启用)继续运行,只有外部复位、看门狗复位、欠压复位、外部电平中断或引脚变化中断才能唤醒 MCU。

六、系统控制与复位

6.1 复位源

该器件有四种复位源,分别是上电复位、外部复位、看门狗复位和欠压复位。每种复位源都有其触发条件和对应的复位逻辑,确保在不同情况下能可靠地复位系统。例如,上电复位在电源电压低于检测电平时触发,可用于确保设备从上电时就能正确复位。

6.2 复位逻辑与状态寄存器

复位时,所有 I/O 寄存器会设置为初始值,程序从复位向量开始执行。MCU 状态寄存器(MCUSR)可提供复位源信息,有助于识别复位条件。在程序中,应尽早读取并复位 MCUSR 以准确判断复位源。

七、外设功能

7.1 I/O 端口

所有 AVR 端口作为通用数字 I/O 端口时具有真正的读 - 修改 - 写功能,输出缓冲器具有对称的驱动特性,可直接驱动 LED 显示屏。每个端口引脚有可选的内部上拉电阻,且有保护二极管。在使用时,可通过设置数据方向寄存器(DDRx)和端口寄存器(PORTx)来配置引脚的输入/输出方向和电平。

7.2 定时器/计数器

7.2.1 8 位定时器/计数器 0(Timer/Counter0)

具有两个独立的输出比较单元,支持 PWM 功能,有正常模式、CTC 模式、快速 PWM 模式和相位正确 PWM 模式等多种工作模式。不同模式下,计数器的计数方式、输出比较寄存器的更新时间和中断标志的设置方式都有所不同。例如,在快速 PWM 模式下,计数器从 BOTTOM 计数到 TOP 后重新从 BOTTOM 开始,可实现高频 PWM 波形生成,适用于功率调节、整流和 DAC 等应用。

7.2.2 定时器/计数器 1(Timer/Counter1)

支持同步和异步两种时钟模式,可提供高精度、高分辨率的计时和 PWM 功能。在异步模式下,使用快速外设时钟(PCK)作为时钟源,频率可达 64MHz(或在低速模式下为 32MHz),可用于需要高速时钟的应用。在 PWM 模式下,与输出比较寄存器 C(OCR1C)配合,可实现双 8 位、自由运行且无毛刺的 PWM 输出。

7.3 通用串行接口(USI)

提供两线和三线同步数据传输功能,可作为主设备或从设备使用,支持数据接收中断和从睡眠模式唤醒功能。两线模式适用于 I2C 总线协议,三线模式适用于 SPI 协议。在使用时,可通过设置 USI 相关寄存器来配置工作模式、时钟源和中断使能等。

7.4 模拟比较器

可比较正引脚 AIN0 和负引脚 AIN1 上的输入电压,输出结果可触发独立的中断。可选择在比较器输出上升、下降或翻转时触发中断,还可通过 ADC 多路复用器选择不同的负输入。在一些需要对模拟信号进行比较的应用中,可利用该功能实现信号的判别和处理。

7.5 模数转换器(ADC)

具有 10 位分辨率、多种输入通道和可选增益,支持单端和差分输入模式,可选择不同的电压参考源。转换时间为 65 - 260µs,最大分辨率下采样率可达 15kSPS,还可通过自动触发功能实现固定间隔的转换。在使用 ADC 时,要注意选择合适的输入通道、电压参考源和预分频设置,以确保转换精度和速度。例如,在对温度进行测量时,可选择合适的通道和参考源,利用 ADC 测量温度传感器的输出电压,并通过校准公式计算出准确的温度值。

八、调试与编程

8.1 debugWIRE 片上调试系统

使用单线双向接口控制程序流程、执行 AVR 指令和编程非易失性存储器。激活 debugWIRE 后,RESET 端口引脚作为通信网关,使用时要注意一些设计要求,如 RESET 线上的上拉电阻范围、避免直接连接 (V_{CC}) 以及断开 RESET 引脚的电容器和外部复位源等。在调试过程中,可利用软件断点对程序进行调试,但要注意频繁更改断点会影响闪存数据保留,调试用的设备不应交付给最终客户。

8.2 自编程闪存

该器件提供自编程机制,可通过 MCU 本身下载和上传程序代码,以页为单位更新程序存储器,在编程前需先擦除页面,可选择在擦除前或擦除后填充临时页面缓冲区。在进行自编程时,要注意地址的设置和操作的顺序,避免出现编程错误。

九、存储器编程

9.1 锁定位和熔丝字节

提供两个锁定位和三个熔丝字节,可用于设置存储器的安全保护和配置器件的功能特性。锁定位可限制闪存和 EEPROM 的进一步编程和验证,熔丝位可控制时钟源、复位功能、调试功能、看门狗定时器等。在编程时,要注意熔丝位的配置顺序和编程方法,以及锁定位对熔丝位的锁定影响。

9.2 编程方法

支持串行下载和高压串行编程两种方法。串行下载使用 SPI 总线,在 RESET 拉低时进行编程;高压串行编程需将器件置于高压串行编程模式,按特定顺序进行编程操作。在编程过程中,要注意时钟信号的要求和编程指令的顺序,确保编程的准确性和可靠性。

十、电气特性与典型特性

10.1 电气特性

涵盖绝对最大额定值、DC 特性、外部时钟驱动特性、ADC 特性和校准 RC 振荡器精度等参数。了解这些电气特性有助于在设计电路时确保器件的正常工作,避免超出其额定范围而损坏器件。例如,在设计电源电路时,要确保电源电压在器件的工作电压范围内;在设计时钟电路时,要满足外部时钟驱动的频率、占空比和上升/下降时间等要求。

10.2 典型特性

包含有源供电电流、空闲供电电流、掉电供电电流、引脚拉电流、引脚驱动强度、引脚阈值和滞后、BOD 阈值和模拟比较器偏移、内部振荡器速度、外设单元电流消耗、复位时的电流消耗和复位脉冲宽度、模数转换器特性等典型曲线和数据。在进行功耗优化和性能评估时,可参考这些典型特性曲线和数据,合理选择工作模式和配置参数。例如,在对功耗要求较高的应用中,可根据不同工作模式下的电流消耗曲线,选择合适的睡眠模式和关闭不必要的外设模块,以降低功耗。

综上所述,Atmel ATtiny25/45/85 汽车级 8 位微控制器凭借其丰富的功能、高性能和低功耗特性,为汽车及其他相关领域的电子设计提供了强大而可靠的解决方案。作为电子工程师,我们在设计过程中,要根据具体应用需求,合理选择和配置该器件的各种功能,充分发挥其优势,同时注意各种细节和注意事项,确保设计的稳定性和可靠性。你在使用这款微控制器的过程中遇到过哪些问题呢?欢迎在评论区交流分享。

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

全部0条评论

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

×
20
完善资料,
赚取积分