ATtiny85 是一款小型 8 位微控制器,专为空间和功耗较为重要的简单控制任务而设计。它将内存、定时器、模拟输入和串行通信集成在一个8针封装中。本文详细介绍了其规格、引脚配置、内部结构、电源和时钟设置、编程、电路及常见问题。

ATtiny85概述
ATtiny85是一款紧凑型8位微控制器,专为需要低空间、功耗和元件数量的简单控制任务而设计。其8针外形有助于减少电路尺寸、布线复杂度和系统成本,同时仍提供基本控制功能。
尽管ATtiny85在市场上存在时间很长,但由于其稳定性、强大的文档以及与常见开发工具的兼容性,它仍然被广泛使用。它能在较宽的电压范围内工作,并支持多种时钟选项,适合需要可靠且可预测行为的紧凑、低功耗设计。
ATtiny85 技术规格
| 不。针 | 8 |
|---|---|
| 中央处理器 | RISC 8位AVR |
| 工作电压 | 1.8至5.5伏 |
| 程序内存 | 8K |
| 程序内存类型 | 闪电侠 |
| 内存 | 512字节 |
| EEPROM | 512字节 |
| ADC ADC 通道数量 | 10位4 |
| 比较器 | 1 |
| 包裹 | PDIP(8针) SOIC(8针) TSSOP(8针) QFN/MLF(20针) |
| 振荡器 | 最高20 MHz |
| 计时器(2) | 8位定时器 |
| 增强电源复位 | 是的 |
| 能量计时器 | 是的 |
| 输入输出引脚 | 6 |
| 制造商 | 微芯片 |
| SPI | 是的 |
| I2C | 是的 |
| 看门狗计时器 | 是的 |
| 棕色断电检测(物理检测) | 是的 |
| 重置 | 是的 |
| USI(通用串行接口) | 是的 |
| 最低工作温度 | -40摄氏度 |
| 最大工作温度 | 125 C |
ATtiny85 引脚配置

| 钉 | 姓名 | 主要功能 |
|---|---|---|
| 1 | PB5 | RESET,GPIO(如果保险丝更换) |
| 2 | PB3 | GPIO,ADC |
| 3 | PB4 | GPIO,ADC |
| 4 | GND | 地面 |
| 5 | PB0 | GPIO、PWM、MOSI |
| 6 | PB1 | GPIO、PWM、MISO |
| 7 | PB2 | GPI,ADC,SCK |
| 8 | VCC | 电源 |
ATtiny85 提供 PDIP-8 和 QFN/MLF-20 封装。两者共享相同的内部电路,但针脚排列不同。PDIP-8封装仅暴露基本引脚,在基础电路中更易使用,而QFN/MLF-20封装则包含标记为未连接的额外引脚。
大多数引脚支持多种功能。单个引脚可以作为数字输入或输出,读取模拟信号,产生PWM输出,或支持串行通信。这种多功能设计使ATtiny85既保持小巧又灵活。RESET 引脚也可以通过更改保险丝设置来配置为引脚,但这会移除外部复位功能。
ATtiny85 方块图

ATtiny85 基于一个 AVR 处理核心构建,执行存储在闪存中的指令。SRAM 用于运行中的临时数据,而 EEPROM 则存储非易失性数据,断电后必须保留。程序计数器、栈指针和寄存器管理指令流和数据处理。
定时功能由两个内部8位定时器和一个看门狗定时器处理。看门狗通过在正常程序执行停止时重置设备来提升可靠性。内部振荡器提供时钟信号,集中定时控制同步所有内部模块。
输入和输出作通过直接连接到外部引脚的端口寄存器进行管理。该设备还集成了模拟电路,如ADC和比较器。所有内部模块通过共享数据路径相连,实现内存、处理逻辑和输入输出之间的高效通信。
ATtiny85 电源、时钟和保险丝设置
• ATtiny85内置RC振荡器,无需外部时钟元件即可作。
• 当需要更高时序精度时,可使用外部时钟源或晶体。
• 熔断器设置控制时钟源、启动延迟、电压下降检测电平和复位引脚行为。
• 较低的时钟频率可降低功耗和电气噪声。
• 电压降检测提升低供电电压下的稳定性,但略微增加电流耗。
ATtiny85 GPIO 限制与安全作
• GPIO引脚用于信号控制,不能为外部负载供电。
• 连接到GPIO引脚的LED需要限流电阻以防止损坏。
• 电机、继电器及其他高电流设备必须通过外部晶体管或MOSFET进行控制。
• 可启用内部上拉电阻,简化按钮和开关连接。
• 所有GPIO电压必须保持在规定范围内,以避免永久损坏。
ATtiny85 ADC 和模拟功能
| 特色 | 描述 |
|---|---|
| ADC分辨率 | 10位 |
| 输入通道 | 最多4 |
| 参考选项 | VCC 或内部参考 |
| 特殊模式 | ADC 降噪睡眠 |
ATtiny85内置了模数转换器,可测量电压变化并将其转换为数字值。测量质量依赖于稳定的参考电压、干净的电源连接和正确的信号路由。使用ADC降噪睡眠模式有助于降低转换过程中的内部噪声,从而提升读取一致性和整体可靠性。
ATtiny85 与 USI 的串行通信
ATtiny85 支持通过通用串行接口(USI)进行串行通信。这种灵活的接口可以通过固件配置为SPI模式或支持I²C风格通信。通过使用单一共享硬件块,设备保持紧凑的体积,同时仍支持基本数据交换。
由于USI高度依赖软件控制,因此需要精心的时序管理。它适合简单和低速通信任务,但自动化功能不如大型微控制器中专用的SPI或I²C外设。
通过Arduino IDE编程ATtiny85

• 安装兼容 ATtiny 的核心后,可以在 Arduino IDE 中编程 ATtiny85。
• 编程使用USB编程器或作为ISP设置的Arduino完成。
• Arduino IDE中的板卡设置必须与ATtiny85选定的时钟频率和工作电压相匹配。
• 代码中使用的PIN与物理引脚布局不同,因此在布线前必须仔细检查。
极简可靠ATtiny85电路

该电路仅使用稳定运行所需的基本元件。VCC和GND引脚供电,使内部逻辑能够正常工作。内部振荡器控制时序,因此不需要外部时钟组件。
通过47 Ω电阻连接的LED展示了输出控制,同时保护LED和GPIO引脚。重置引脚仍可访问,以便重新编程或重启设备。由于外部组件极少,这种设置为基础应用提供了简单可靠的基础。
ATtiny85常见问题与快速检查
| 问题 | 需要检查或修复什么? |
|---|---|
| 代码上传失败 | 检查ISP的布线并确认重置保险丝设置 |
| 时机错误 | 验证所选时钟源和保险丝配置 |
| 不稳定的ADC读数 | 改善接地并添加合适的解耦电容 |
| 通信错误 | 复习USI的设置和定时设置 |
| 引脚过热 | 降低负载电流并使用外部驱动组件 |
结论
ATtiny85将核心控制功能整合为非常紧凑的形式。其规格、引脚功能、内部模块和功率设置解释了它在真实电路中的表现。通过正确的GPIO处理、ADC的使用、串行设置以及最小化的电路,ATtiny85可以清晰理解并应用于稳定、低功耗的设计中。
常见问题解答 [常见问题解答]
ATtiny85 消耗多少功耗?
功耗取决于电源电压、时钟频率和主动功能。降低时钟频率和禁用未使用的外设可以减少电流消耗。
ATtiny85 需要外接时钟吗?
不。ATtiny85 内置 RC 振荡器,可在无需外部时钟元件的情况下工作。外部时钟仅用于更高的时序精度。
RESET 引脚可以作为普通的 I/O 引脚使用吗?
是的。RESET 引脚可以通过保险丝设置配置为 GPIO。这会禁用标准ISP编程,并需要高压编程来重新编程设备。
ATtiny85 能直接驱动电机或继电器吗?
不。ATtiny85 GPIO 引脚仅用于信号控制。电机和继电器必须通过外部晶体管或MOSFET驱动。
为什么ATtiny85的ADC读数不稳定?
不稳定的ADC读数通常是由于功率噪声或接地不良引起的。添加合适的解耦电容并使用ADC降噪模式可以提升稳定性。