世界最小的Arduino——ATTiny13上手全攻略1C用Arduino来下载

幻生幻灭 于 2015-9-7 15:49 编辑



系列教程传送门

世界最小的Arduino——ATTiny13上手全攻略1A简介

世界最小的Arduino——ATTiny13上手全攻略1B在Arduino IDE环境下的搭建

世界最小的Arduino——ATTiny13上手全攻略1C用Arduino来下载

世界最小的Arduino——ATTiny13上手全攻略2A跑马灯

世界最小的Arduino——ATTiny13上手全攻略2B呼吸灯

世界最小的Arduino——ATTiny13上手全攻略2C舵机测试仪







如果您已经读到这里,笔者相信即使您手头没有USBtinyISP,也至少有一块Arduino主板了。那么这里还有一个办法,就是我们也可以通过Arduino主板来模拟ISP实现ATTiny13的程序下载。这种下载bootloader和程序的方法,可以是使用328P版本主控芯片的Arduino UNO,Arduino Duemilanove或Arduino Nano。

关于ATTiny13库文件的安装,这里就不再重复了。大家可以参考上一章节第1-4步操作。下面我们将介绍如何把Arduino变成AVR ISP(在线系统编程)。和USBtinyISP一样,我们不仅可以用它来下载ATTiny13单片机,也可以用它给其他AVR芯片烧写引导程序(bootloader)和运行程序(例如使用ATmega168或ATmega328的Arduino,以及使用ATTiny85或ATTiny45的最小系统)。


  1. 打开Arduino的样例程序File > Examples > ArduinoISP。

01_ArduinoISP.png

2015-7-5 10:11 上传
(84.45 KB)




  1. 在Arduino官方提示说如果是Arduino 1.0版本,我们需要对ArduinoISP代码进行一个小小的改动。查找heartbeat()函数,把其中的“delay(40);”,更改为“delay(20);”。不过我们是Arduino 1.0.3,并不存在这个问题。

02_checkDelay.png

2015-7-5 10:11 上传
(31.29 KB)




  1. 点击Tools > Board,选择Arduino UNO(这里根据实际情况选择作为编程器的板子型号,但不是选将要烧写bootloader的ATTiny13)。然后确认Tools > Serial端口号(这个端口号是所选主板Arduino UNO的端口号,不过在之后下载ATTiny13时作为ISP端口也是用到的)。

03_boards.png

2015-7-5 10:11 上传
(88.38 KB)




  1. 上传ArduinoISP代码,成功后显示“Done uploading”。

04_Uploaded.png

2015-7-5 10:11 上传
(32.72 KB)




  1. 将ArduinoISP的引脚连接到ATTiny13上。(官方注:如果是ArduinoUNO,需要Reset和GND之间连接一个10 uF的电容,电容负极一端接GND。不过笔者亲测了手头现有的两款UNO主板,DFROBOT DFRduino UNO R3和OCROBOT MANGO II,不管接不接电容,程序下载都是成功的。)

05_Tiny13_00_ArduinoAsISP_bb.png

2015-7-5 10:11 上传
(202.03 KB)





引脚接法:

ATTiny13 Pin 7 接 Arduino UNO Pin 13(作为SCK接口)

ATTiny13 Pin 6 接 Arduino UNO Pin 12(作为MISO接口)

ATTiny13 Pin 5 接 Arduino UNO Pin 11(作为MOSI接口)

ATTiny13 Pin 1 接 Arduino UNO Pin 10(作为RESET接口,注意这里接的不是UNO的RST)

ATTiny13 Pin 8 接 Arduino UNO 5V

ATTiny13 Pin 4 接 Arduino UNO GND

实际接线效果如图

06_ArduinoasISP.jpg

2015-7-5 10:11 上传
(385.8 KB)




  1. 下面的操作和正常的USBtinyISP差不多了。先在菜单Tools > Board选择我们的ATTiny13硬件。

07_BoardTarget.png

2015-7-5 10:11 上传
(76.53 KB)




  1. 选择Tools > Programmer > Arduino as ISP,这步骤很关键,否则下载会失败。

08_ArduinoasISP.png

2015-7-5 10:11 上传
(55.65 KB)




  1. 选择Tools>Burn Bootloader,ArduinoISP将开始烧写bootloader(烧写过程也会清空ATTiny13原有的程序)

09_BurnBootloader.png

2015-7-5 10:11 上传
(55.57 KB)





下载成功后会再次显示“Done uploading.”不过系统可能会提示以下信息,但并不影响使用。

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13

10_Bootloader_ErrorMessage.png

2015-7-5 10:11 上传
(37.25 KB)




  1. 打开我们ATTiny13的样例T0101_Blink或者打开Arduino的样例程序File > Examples > 01.Basics > Blink,这里需要把int led = 13修改为3。然后再点File > Upload Using Programmer下载我们的Blink程序。

11_Uploading.png

2015-7-5 10:11 上传
(58.51 KB)





下载完成后看到LED再次闪烁的心情是不是非常的开心。当然因为没用专业的下载器,我们还是有可能会遇到两行报警的。虽然不影响使用,但还是建议大家使用专业的下载器进行程序和Bootloader的更新。

13_UploadedTiny13.png

2015-7-5 10:11 上传
(39.95 KB)



via - 极客工坊

标签: Arduino教程