Loading...

Learning   Examples | Foundations | Hacking | Links

为Arduino Mini安装引导程序(Bootload)

原作:Gian Pablo Vilamil

本文描述了如何为Arduino mini安装引导程序。

如果你已经了解了引导程序(Bootloader)是什么,知道为什么要用它,或者只是想查找Arduino Mini的具体说明,请直接前往“引导Arduino Mini”一节。

什么是引导程序(Bootloader),引导(Bootloading)又是什么?

引导程序是打开Arduino电源或重启Arduino时,Arduino运行的一小段程序。其主要功能是等待PC机上的Arduino IDE发送的新程序,然后将新程序写入到Arduino的板上内存中。它非常重要,因为一般情况下都需要一些专用的设备来为Arduino板编程,而引导程序则直接通过USB方式为Arduino编程。

文中提到的“引导(Bootloading)”Arduino,意指使用专门的设备(在线编程器----ISP)烧写替换引导程序。

为什么要为Arduino安装引导

需要这么做的四个原因:

  1. Arduino板上没有引导程序。这可能发生在板子上的单片机芯片更换之后。不过对于Mini来说不太可能,因为Mini上的芯片不易替换,而Mini板上的芯片已经写好了引导程序。
  2. 更新板上的引导程序。Arduino Diecimila之前的引导程序会在重启之后延时10秒,以等待Arduino传输新程序。该延时也存在于Arduino加电启动和下载程序之后。其它版本的引导程序会消除该延时,比如Diecimila的引导程序、Adaboot和LilyPad的引导程序等。也可自行下载源代码并更改(参阅[此页]的详细指导和源代码链接)。这将对需要立即启动的程序,特别是需要接收串口的程序很有用处。如果引导程序在运行过程中接收到数据,则认为Arduino软件需要与之通信,就会开始延时,这有可能会导致板上的程序无法启动。[其它引导程序简介点此]
  3. 不用引导程序。替换引导程序的做法,其实也可以用来直接替换成要运行的程序。这样做的好处是,程序直接运行,并且节约了2K的板上内存。缺点是没法直接用USB口给Arduino下载程序了,必须使用ISP编程器(至少在你的板子有引导程序之前)。
  4. 当前的引导程序坏了。这种情况很罕见。如Arduino板上的Flash内存出现问题时,可能引导程序无法工作。重新烧写引导程序也许能修复这个问题,类似于重新格式化电脑的硬盘。

为Arduino Mini安装引导程序

为Arduino Mini安装引导程序与其它Arduino有何不同?

正常大小的Arduino与ISP有6只管脚连接,而Arduino Mini没有,所以需要定制一条连接线。除此之外,操作都是一样的。另外,对操作过程稍作修改,也可应用于安装其它基于Atmel项目的引导程序。

需要什么?

  • 在线编程器ISP(如AVR ISP MkII
  • 6根导线
  • 一个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”的文件选择器中,浏览并找到将要下载的程序,可以是:

  1. 一个新的引导程序
  2. 自己的程序。.hex文件保存在Arduino程序集的applet文件夹中。

点击“Program”按钮。此时可见状态栏有变化。点击“Verify”以复核一切操作是否正确。将ISP的USB线拔下,断开ISP。为了确保安全,断掉Arduino的电源。断开ISP与面包板的连接。

Arduino Mini的引导程序至此安装成功!