本文描述了如何为Arduino mini安装引导程序。
如果你已经了解了
引导程序(Bootloader)
是什么,知道为什么要用它,或者只是想查找Arduino Mini的具体说明,请直接前往“引导Arduino Mini”一节。
什么是引导程序(Bootloader),引导(Bootloading)又是什么?
引导程序是打开Arduino电源或重启Arduino时,Arduino运行的一小段程序。其主要功能是等待PC机上的Arduino IDE发送的新程序,然后将新程序写入到Arduino的板上内存中。它非常重要,因为一般情况下都需要一些专用的设备来为Arduino板编程,而引导程序则直接通过USB方式为Arduino编程。
文中提到的“引导(Bootloading)”Arduino,意指使用专门的设备(在线编程器----ISP)烧写替换引导程序。
为什么要为Arduino安装引导
需要这么做的四个原因:
-
Arduino板上没有引导程序。这可能发生在板子上的单片机芯片更换之后。不过对于Mini来说不太可能,因为Mini上的芯片不易替换,而Mini板上的芯片已经写好了引导程序。
-
更新板上的引导程序。Arduino Diecimila之前的引导程序会在重启之后延时10秒,以等待Arduino传输新程序。该延时也存在于Arduino加电启动和下载程序之后。其它版本的引导程序会消除该延时,比如Diecimila的引导程序、Adaboot和
LilyPad
的引导程序等。也可自行下载源代码并更改(参阅
[此页]
的详细指导和源代码链接)。这将对需要立即启动的程序,特别是需要接收串口的程序很有用处。如果引导程序在运行过程中接收到数据,则认为Arduino软件需要与之通信,就会开始延时,这有可能会导致板上的程序无法启动。
[其它引导程序简介点此]
。
-
不用引导程序。替换引导程序的做法,其实也可以用来直接替换成要运行的程序。这样做的好处是,程序直接运行,并且节约了2K的板上内存。缺点是没法直接用USB口给Arduino下载程序了,必须使用ISP编程器(至少在你的板子有引导程序之前)。
-
当前的引导程序坏了。这种情况很罕见。如Arduino板上的Flash内存出现问题时,可能引导程序无法工作。重新烧写引导程序也许能修复这个问题,类似于重新格式化电脑的硬盘。
为Arduino Mini安装引导程序
为Arduino Mini安装引导程序与其它Arduino有何不同?
正常大小的Arduino与ISP有6只管脚连接,而Arduino Mini没有,所以需要定制一条连接线。除此之外,操作都是一样的。另外,对操作过程稍作修改,也可应用于安装其它基于Atmel项目的引导程序。
需要什么?
-
在线编程器ISP(如AVR ISP
MkII
)
-
一个12针的公头插针
-
两个3针的公头插针
AVR Studio软件(从Atmel
免费下载
)
连接线怎么做?
需要将Arduino Mini的6个管脚与ISP相连。6个管脚分别是MISO、MOSI、SCK、RESET、POWER和GROUND。其中三个管脚是数字IO口,编号为11-13;其余三个是Reset、+5V和接地脚。这些管脚可能都用过了(注意,应该使用+5V的脚,而不是+9V。这是为ISP供电)。
Arduino上的这些管脚将与ISP上的6个脚一一对应连接,如下图:
注意该图是ISP的后视图。当手持ISP的带子,将红线置于最高处,面向ISP时所见的视图即此图。
最简单的连接线做法,是从6根导线、12针公头插针和2个6针的公头插针开始。使用尖嘴钳将长插针的2到5脚、9到11脚都拔掉,将两个短插针的所有脚都拔掉。
将导线插到2到5脚的接地、重启和电源(按顺序)洞中,也插到9到11脚的SCK、MISO和MOSI(按顺序)洞中。然后将导线的另外一端,按MISO、SCK、RESET合成一股,Power、MOSI、GROUND合成一股(注意MOSI和RESET交换分股)。把所有导线截齐。最好用热溶胶固定位置。将这两股与3针的公头插针连接好插入到ISP电缆上(仔细检查,确保连线完全正确),然后滴上胶水(别把ISP给粘上了)。做完的连接线如下图所示:
注意此时末端的插针没有连接到任何东西上----这样做是为了与Arduino Mini齐长。注意编程器上红色导线与其它线的相对位置。当红线位置顶端,且连接线位于远离插口时,线的颜色分别是白色(MISO)、绿色(SCK)和黄色(RESET)。如下图所示,红线位置底部,且连接线靠近杜绑线时,线的颜色分别是黑色(GND)、蓝色(MOSI)和红色(+5V)。
把Arduino Mini装到面包板上,如下图所示(编程时需要移除13脚的LED):
将12针公头插针插到Arduino Mini一侧,使之与管脚排行对齐。POWRER、RESET和GROUND应该排一行(注意LED已经被移除了)。完成后应如下图所示:
这是顶视图:
如果Arduino Mini使用USB连接线,请将USB线插入电脑;若不使用USB,请将Arduino Mini连上电源。Arduino必须连上电源才能与ISP配合作用。
将ISP的USB线插入电脑。此时编程器的两个绿色LED灯应该亮起来了。注意:此时Arduino的11-13脚上不应有任何器件,否则会影响编程器的操作。
之后的操作,就与Atmel 168单片机的操作完全一致了。你可以参考本站上
其它文档
的指示,或者继续下面的教程。
如何使用Arduino IDE来为Arduino装上引导程序?
现在可以使用Arduino IDE来安装引导程序了。打开电脑上的Arduino IDE,将板类型设置为你正在使用的类型(Arduino Mini),打开Burn Bootloader菜单并选择编程器(此例中为AVRISP MkII)。
不同于常规的Arduino编程,此时无须按复位开关。编程器会自动复位Arduino。这将安装(或恢复)原始的Arduino引导程序。这一般不常用,除非你想修复引导程序,或者手中的Mini没有引导程序。
如何使用AVRStudio安装引导程序?
为安装其它引导程序,需要一款叫AVR Studio的程序。从
[此处下载]
。不幸的是,AVR Studio仅能在Windows系统中运行。不过按下面的说明在Mac OS/X上为Atmel 168安装引导程序。
打开AVR Studio,按取消按钮跳过开始画面。
点击继续按钮,这是一个很小的标着“CON”且看起来像个小芯片的按钮。接着选择ISP的类型,此例中是AVR ISP MkII:
此时可以看到固件上传的对话框,如下图。确认对话框中所有的设置参数,然后在“Input HEX file”的文件选择器中,浏览并找到将要下载的程序,可以是:
-
一个新的引导程序
-
自己的程序。.hex文件保存在Arduino程序集的applet文件夹中。
点击“Program”按钮。此时可见状态栏有变化。点击“Verify”以复核一切操作是否正确。将ISP的USB线拔下,断开ISP。为了确保安全,断掉Arduino的电源。断开ISP与面包板的连接。
Arduino Mini的引导程序至此安装成功!