用USBISP一步烧录Attiny13A/Attiny85
用USBISP一步烧录Attiny13A/Attiny85
前一段时间使用Arduino IDE,通过Arduino UNO/Nano可以给Attiny13A/85烧录程序。Attiny 13A/85与Arduino使用的Atmega8/328p血脉相同,都是Atmel的产品——当然,现在被MicroChip(微芯)收购了,前一段时间Atmel芯片涨价就涨的AT和Atmega这一系列,再后来到现在芯片荒,与此都有关。不过真正荒的没有到达AT和Atmega这种中低端产品,而是ARM/STM32疯了一样涨价——然后听说国内STC也要发展32位芯片了,加油!真不容易!
当时研究用Arduino IDE烧录这些芯片的时候就想:如果我们在板卡管理器Boards Mamaner里面新增的那些json指示的地址的库,有一天它们都不在了,我们还怎样去烧录这些自己的非Arduino芯片呢?
解决办法呢,当然是向上一步找过去,即没有被Arduino封装的AVR单片机的烧录办法。琢磨之下,竟一步到位,没有经历任何波折。
下面我们以使用AVR USBISP烧录Attiny85的LED Blink程序为例,介绍烧录步骤。Attiny13A烧录过程与此类似。
1、材料准备:AVR USBISP、Attiny85、LED,杜邦线
图1 一种AVR USBISP烧录器
图2 直插Attiny85及管脚排列(自标记点起1至8)
2、软件准备:Arduino IDE,PROGISP 1.72
图3 一款PROGISP软件(智峰PROGISP 1.72)
3、Blink程序:
File/Examples/01.Basics/Blink,修改LED_BUILTIN为4,即
void setup() {
//使用Attiny85的D4引脚令LED闪烁
pinMode(4, OUTPUT);
}
void loop() {
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
}
3、引脚接线:
表1 USBISP引脚与Attiny85引脚对应关系
USBISP | Attiny85 |
---|---|
RES | 1 |
GND | 4 |
MOSI | 5 |
MISO | 6 |
SCK | 7 |
VCC | 8 |
其中USBISP引脚上有文字标识。Attiny85芯片的引脚序号,如图2所示,自引脚标记点开始,顺次为1、2、……8。
4、烧录过程:
①连接USBISP,安装驱动程序。
图4 正常安装USBISP驱动程序后显示设备信息
②按照表1接线。
③生成hex文件。在Arduino IDE里打开我们修改过的Blink文件,依次点击Sketch/Export compiled Binary,看到Blink.ino的保存目录下,生成了两个扩展名为hex的文件。
图5 Blink.ino目录下生成两个扩展名hex的文件
④烧录hex文件。确认USBISP正常插入电脑,确认Attiny85与USBISP引脚连线正确。打开PROGISP,依次点击:
“Select Chip”列表,选择“ATtiny85”;
点击“调入Flash”,选择一个hex文件;
点击“自动”,直到提示框提示调入hex文件。
烧录完成。如图6。
图6 hex正确烧录的提示
5、接线图和测试:
接线图:
图7 Attiny85引脚8接VCC、引脚4接GND,R1、D1接引脚3、4之间
测试:
图8 LED在Attiny85引脚3、4之间每隔1秒闪烁1次
上述烧录过程流程框图:
图9 使用USBISP烧录Attiny85流程框图
实际这里的方法,本质上就是使用了Arduino IDE及其简便的语法,回避了AVR下C&C++的复杂性,生成hex文件后,又返回到常规的AVR单片机烧录步骤上去的折中做法。