BG2RHE - 用AtmelStudio7给ATMEGA芯片下载Arduino的bootloader的简便方法

  Arduino以其简单快速的开发环境一直受到广大极客的欢迎,尤其是控制前端的应用领域,更是其大显身手的地方。但是,自制的板子或者bootloader损坏的Arduino板子想要重新写入bootloader是一件很麻烦的事情。虽然官方给出了用另一个正常工作的Arduino板子当作编程器给其它板子烧录bootloader的方法,但是由于操作复杂,两个板子之间还要飞线连接,稍有不慎就会扩大灾难范围。
  本文给出的方法安全简洁,烧录bootloader的同时还可以顺便把Arduino程序一同烧入到目标板子,非常适合批量复制自制应用板子。下面我以AtmelStudio7配合AVRISP mkII编程器,以Arduino Uno的Blink示例+bootloader一次写入板子的步骤说明此方法。

  1. 首先用Arduino IDE打示例中的Blink,然后另存到硬盘中的某个位置比如C:\(很关键),选择开发板为Arduino Uno以及后选择项目菜单里的“导出已编译的二进制文件”。
    BG2RHE - 用AtmelStudio7给ATMEGA芯片下载Arduino的bootloader的简便方法_第1张图片
      编译结束后就会在Blink.ino文件所在的目录里生成如下两个hex文件。
      Blink.ino.standard.hex //这个是普通的Arduino文件,本文不用它。
      Blink.ino.with_bootloader.standard.hex //这是本文要用的带bootloader的AVR文件。

  2. 安装好AtmelStudio7和AVRISP mkII编程器,打开AtmeiStudio7,不用建立什么工程,直接点击Tools菜单,选择“Device Programmomg”,打开编程器窗口,选好编程器,选好芯片型号(Uno的芯片是ATmega328p),并按图示红色标记依次点击按钮,读取芯片状态。
    BG2RHE - 用AtmelStudio7给ATMEGA芯片下载Arduino的bootloader的简便方法_第2张图片

  3. 接下来点击编程器窗口左侧的Fuses,设置AVR的熔丝。AVR的熔丝让人既爱又恨,不再多说。烧入bootloader的关键是选对芯片,设置好熔丝。各种芯片的熔丝设置可以在Arduino IDE的board.txt文件中查到。Arduino Uno的熔丝设置如下图红框中所示,填好这三个数值,就可以点击Program按钮烧熔丝了。
    BG2RHE - 用AtmelStudio7给ATMEGA芯片下载Arduino的bootloader的简便方法_第3张图片

  4. 接下来就可以把带bootloader的hex文件烧入AVR芯片的Flash中了。点击编程器窗口的Memories,将之前生成的Blink.ino.with_bootloader.standard.hex文件选入,然后点击Program按钮。所有项目都显示OK后,所有工作就全部完成了。此时板子上的LED13应该开始每秒1次的闪烁了。把新烧录好bootloarder板子插上USB线连到电脑,在Arduino IED选好端口,就可以直接使用新板子了。

  特别提示:
  如果你手里没有完好可运行Arduino的板子,可以找有相同型号的商家或者朋友,让他们用板子生成hex文件发给你,你就可以空手制作bootloader板子了。
  用AtmeiStudio7烧录bootloader成功的关键是选对芯片型号和晶振频率,然后写入相应的熔丝,最后给Flash灌入程序。

你可能感兴趣的:(Arduino)