TAG | 下载线
USBtinyISP也是一款为AVR单片机设计的基于USB接口的ISP下载线,使用它可以为大部分AVR单片机下载程序。在Arduino IDE中,USBtinyISP是一直被支持的下载线,用来下载其bootloader,与之前使用的USBasp 下载线相比,使用起来更加简单了;-)


首先从这里下载USBtinyISP驱动程序,将其解压缩到硬盘上备用。将下载线通过USB线连接到计算机后,系统会提示找到相应的硬件:

在随后出现的“找到新的硬件向导”对话框中,选“否,暂时不”,然后单击“下一步”按钮:

在随后出现的对话框中,选“从列表或指定位置安装(高级)”,然后单击“下一步”按钮:
接着指定之前解压缩开的驱动文件所在的目录:

单击“下一步”按钮之后,系统就开始安装USBtinyISP所需要的驱动文件:

最后单击“完成”按钮,就大功告成了:

此时在系统的硬件管理器中,我们能够找到“USBtinyISP AVR Programmer”,表明该下载线已经可以使用了:

USBtinyISP V2在设计的时候,设置了相应的跳线来为单片机供电。在为Arduino下载bootloader的时候,我们需要将该跳线短路,这样就不需要再为Arduino提供额外的电源了:

用6芯的连接线将USBtinyISP和Arduino上的ICSP座连接起来:

注意由于Arduino的ICSP座并没有设计反插反的座,你需要6芯连接线上带三角形的那一位是对应于ICSP座上的“1”:
a
硬件连接好之后,此时可以打开Arduino的IDE了。在菜单“Tools”->“Board”列表中选择好你的Arduino板子的型号之后,就可以通过菜单“Tools”->“Burn Bootloader”->“w/ USBtinyISP”来下载Arduino的bootloader:

整个下载的过程中,USBtinyISP上红色的BUSY灯会一直亮着,表明其正在工作:

整个下载过程会持续一段时间,但速度与USBasp相比还是要快一些。下载完成之后,在Arduino IDE窗口中会显示“Done burning bootloader”:

在使用Arduino的过程中,最令人头痛的估计就是bootloade毁坏,需要重新烧写bootloader了。最常见的一种情况就是,在Arduino IDE环境中下载程序的时候,较长时间没有反应,这时很多人就直接选择断开USB连接线或者电源,然后就会出现无法再上传程序的错误。其实出现这种情况时正确的做法是一直等到Arduino超时返回出错信息,直接断电的做法往往会导致bootloader毁坏。
如果bootloader毁坏,唯一的办法就是通过ISP下载线重新烧写bootloader。之前有介绍过并口ISP下载线的使用方式,但一来使用不是很方便,二来有的计算机上没有并口,所以一款USB下载线就比较有帮助了。
Arduino采用的是AVR单片机,其实已经有不少专为该芯片设计的USB下载线了,比如USBasp和USBtinyISP。手头正好有一块USBasp的空板,拿它来做Arduino USB下载线的原型还是可以的。
通常USB下载线都是10芯的,Arduino独特的6芯设计使得我们必须做一块10芯到6芯的转换板:
下面是所有部件的连接图:
标准的Arduino板上并没有防插反插座,请注意不要接反了:
下载线做好之后,首先要安装USBasp的驱动,你可以下载这个文件并解压缩到你的硬盘上,插上USBasp线之后,Windows会提醒你找到相应的硬件:
当“找到新的硬件向导”对话框出现之后,选择“否,暂时不“单选框,然后单击“下一步”按钮:
然后再选择”从列表或指定位置安装“单选框,单击“下一步”按钮:
选中“在搜索中包括这个位置“复选框,并选择USBasp驱动文件所在的目录,再单击“下一步”按钮:
如果一切正常,你将看到下面这个完成页面:
打开硬件管理器,你会发现其中多了一个USBasp设备:
Arduino官方支持的是USBtinyISP而不是USBasp,在启动Arduino集成开发环境之前,你需要先编辑Arduino安装目录hardware目录下的programmers.txt文件,在末尾加入如下两行
usbasp.name=USBasp usbasp.protocol=usbasp
这样启动Arduino后你就能在“Tools”->“Burn Bootloader“菜单里找到”/w USBasp“一项:
下载bootloader的时间会比较久,请耐心等待,成功下载后我们能在console窗口里看到如下信息:
稍微有点遗憾的是,我只在Arduino 0011版本上成功完成了上述步骤,在最新的0012版本上没有成功。估计是0012版本采用的最新的Avrdude与USBasp不兼容导致的,要使用USBasp下载线的朋友目前只能退回到0011使用了;-(













