- 通过USB对ATtiny85进行编程所需的组件
- ATtiny85微控制器IC –简介
- 使用Arduino Uno在ATtiny85上刷新引导程序
- ATtiny编程器电路图
- 安装Digispark驱动程序
- 设置Arduino IDE以对ATttiny85进行编程
ATtiny系列是AVR市场上最小的微控制器系列之一。这些微控制器能够利用Arduino平台上的许多库。ATtiny85微控制器芯片是8针,8位AVR微控制器。它的体积小,功耗低,非常适合占地少,功耗低的便携式项目。但是,由于没有像微控制器板那样的USB接口,因此将代码写入芯片可能会遇到一些挑战。
在之前的教程中,我们使用Arduino Uno编程了ATtiny85。但是将Attiny85连接到Arduino并使用Arduino作为ISP既困难又耗时。因此,在本教程中,我们将构建一个ATtiny85编程板,以便我们可以像其他微控制器板一样直接对其进行插件和编程。
通过USB对ATtiny85进行编程所需的组件
- Arduino UNO(仅在上传引导程序时第一次)
- ATtiny85集成电路
- USB A型插头公头
- 3个电阻(2×47Ω和1×1kΩ)
- 3个二极管(2×齐纳二极管和1×IN5819二极管)
- 8引脚IC基座
- 面包板
- 跳线
ATtiny85微控制器IC –简介
Atmel的ATtiny85是基于高级RISC架构的高性能,低功耗8位微控制器。该微控制器芯片具有8KB ISP闪存,512B EEPROM,512字节SRAM,6个通用I / O线,32个通用工作寄存器,一个具有比较模式的8位定时器/计数器,一个8位高速寄存器。定时器/计数器,USI,内部和外部中断,4通道10位A / D转换器,带有内部振荡器的可编程看门狗定时器,三种软件可选的省电模式以及用于片上调试的debugWIRE。ATtiny85引脚排列如下:
芯片的大多数I / O引脚具有多个功能。 下表列出了每个引脚的ATtiny85引脚说明:
销号 |
引脚名称 |
引脚说明 |
1个 |
PB5(PCINT5 / ADC0 / dW) |
PCINT5:引脚更改中断0,Source5 RESET:重置引脚 ADC0: ADC输入通道0 dW:调试WIRE I / O |
2 |
PB3(PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3:引脚更改中断0,Source3 XTAL1:晶体振荡器引脚1 CLKI:外部时钟输入 ADC3: ADC输入通道3 |
3 |
PB4(PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4:引脚更改中断0,源4 XTAL2:晶体振荡器引脚2 CLKO:系统时钟输出 OC1B: 定时器/计数器1比较匹配B输出 ADC2: ADC输入通道2 |
4 |
地线 |
接地脚 |
5 |
PB0(MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI主数据输出/从数据输入 DI: USI数据输入(三线模式) SDA: USI数据输入(两线模式) AIN0:模拟比较器,正输入 OC0A:定时器/计数器0比较匹配A输出 AREF:外部模拟参考 PCINT0:引脚更改中断0,源0 |
6 |
PB1(MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPI主数据输入/从数据输出 DO: USI数据输出(三线模式) AIN1:模拟比较器,负输入 OC0B:定时器/计数器0比较匹配B输出 OC1A:定时器/计数器1比较匹配A输出 PCINT1:引脚更改中断0,源1 |
7 |
PB2(SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK:串行时钟输入 USCK: USI时钟(三线模式) SCL: USI时钟(两线模式) ADC1: ADC输入通道1 T0:定时器/计数器0时钟源 INT0:外部中断0输入 PCINT2:引脚更改中断0,源2 |
8 |
VCC |
电源电压引脚 |
使用Arduino Uno在ATtiny85上刷新引导程序
为了在不使用Arduino的情况下对ATtiny85进行编程,我们首先必须使用Arduino UNO板将引导加载程序上载到其中,这是一个一次性的过程,完成后,我们将不再需要UNO板。引导加载程序是一个特殊的程序,必须在微控制器中运行才能编程。将程序数据加载到微控制器上最方便的方法之一是通过引导加载程序。引导加载程序位于MCU上并执行传入的指令,然后将新的程序信息写入微控制器的存储器。刷新微控制器上的引导加载程序无需使用特殊的外部硬件(编程器板)即可对微控制器进行编程,您将可以使用USB连接直接对其进行编程。该Digispark ATtiny85主板运行最初由Bluebie编写的“ micronucleus tiny85”引导程序。引导加载程序是在Digispark上预先编程的代码,它可以用作USB设备,以便可以由Arduino IDE进行编程。我们还将在ATtiny85上刷新相同的digispark attiny85引导程序。
下面提供了使用Arduino Uno和Arduino IDE将引导加载程序闪存到ATtiny85的分步指南:
步骤1:将Arduino Uno配置为ISP:
由于ATtiny85只是一个微控制器,因此需要对ISP(系统内编程)进行编程。因此,要对ATtiny85进行编程,我们首先需要将Arduino Uno配置为ISP以充当ATtiny85的程序员。为此,将Arduino Uno连接到笔记本电脑并打开Arduino IDE。之后,导航至“ 文件”>“示例”>“ ArduinoISP” 并上传Arduino ISP代码。
步骤2:在ATtiny85上刷新Boot-loader的电路图:
下面给出了ATtiny85上的Flash Boot-loader的完整原理图:
在Arduino的Reset和GND引脚之间连接了10 µf电容器。下表列出了完整的连接:
ATtiny85针 |
Arduino Uno针 |
Vcc |
5伏 |
地线 |
地线 |
销2 |
13 |
引脚1 |
12 |
销0 |
11 |
重启 |
10 |
现在将Arduino Uno插入笔记本电脑并打开Arduino IDE。查找Uno连接到的COM端口。就我而言,它是COM5。
之后,从给定的链接下载ATtiny85引导程序文件。打开“ Burn_AT85_bootloader.bat ”,并使用与您的Uno连接的任何COM端口号更改COM端口号“ PCOM5”。退出前保存更改。
现在将已编辑的“ Burn_AT85_bootloader.bat ”和“ ATtiny85.hex ”文件移至Arduino IDE根文件夹(C:\ Program Files(x86)\ Arduino)。
之后,右键单击“ Burn_AT85_bootloader.bat ”,然后选择“以管理员身份运行”。刷新引导加载程序大约需要5到6秒钟。如果一切顺利,您应该收到此消息“ AVRdude完成。谢谢。请按任意键继续…”。
这样,引导加载程序已成功安装到ATtiny85芯片上。现在是时候将USB连接到ATtiny85,以便我们直接对其进行编程。通过USB编程ATtiny85的电路图如下:
ATtiny编程器电路图
该原理图取自Digispark ATtiny85电路板原理图,但由于我们打算为ATtiny85构建编程器,因此我们仅将USB公插头与ATtiny85连接。
R3是一个上拉电阻,连接在IC的Vcc和PB3引脚之间,同时添加了齐纳二极管(D1-D2)以提供全面的USB接口保护。在将所有组件焊接到穿孔板上之后,其外观将如下所示:
安装Digispark驱动程序
要使用USB对ATtiny85进行编程,必须在笔记本电脑上安装Digispark驱动程序,如果没有,可以使用上面提供的链接下载。然后,解压缩zip文件并双击“ DPinst64.exe ”应用程序以安装驱动程序。
成功安装驱动程序后,将ATtiny85板插入笔记本电脑。现在转到Windows上的设备管理器,ATtiny85设备将在“ libusb-win32设备”下列为“ Digispark Bootloader”。如果在设备管理器中找不到“ libusb-win32设备”,请转到“查看”,然后单击“显示隐藏的设备”。
设置Arduino IDE以对ATttiny85进行编程
要使用Arduino IDE编程ATtiny85开发板,首先,我们需要将Digispark开发板支持添加到Arduino IDE。为此,请转到“ 文件”>“首选项”, 并在“其他Boards Manager” URL中添加以下链接,然后单击“确定”。
之后,转到工具>板>板管理器,然后搜索“ Digistump AVR”并安装最新版本。
安装之后,现在您将能够在Board菜单中看到一个名为'Digispark'的新条目。
现在,转到文件>示例>基础,然后打开Blink示例。
将那里的引脚号从LED_BUILTIN更改为0。
现在回到“工具”->“开发板”,然后选择“ Digispark(默认– 16mhz) ”开发板。然后单击Arduino IDE中的上载按钮。
注意: 仅当Arduino IDE显示“立即插入设备”消息时,才将ATtiny85开发板连接至计算机。
上载代码后,连接到ATtiny85的LED应开始闪烁。
这是您可以构建自己的ATtiny85 Arduino编程板的方法。下面是相同的工作视频。如有任何疑问,请将其留在评论部分。如有其他技术问题,您也可以在我们的论坛上开始讨论。