1、所需工具材料: 1、一个 AVRusbasp 编程器 以及相应的烧写软件,推荐 progisp1.72 2、 AVR 的 USB 自编程软件 Flip,下载链接 http:/ java,选择小的那个,如果没有,选择大的那个含 jave 的进行下载 3、准备三个 hex 文件,分别是 Atmega2560 的 bootloader 文件、 32u2 的 bootloader文件和 32u2 的 ppm 程序文件 烧写过程基本概述:先给 Atmega2560 烧写 bootloader,然后给 Atmega32u2 烧写bootloader,最后给 32u2 写入 PPM 解码通讯程序 一、 烧写
2、 Atmega2560 的 bootloader: 1、 Atmega2560 的 SPI 接口在 APM 板靠近 USB 接口位置,为双排 6PIN 排针,如果你的usbasp 是 10PIN 接口,你还需要一根 10PIN 转 6PIN 的转接线。连接好下载线后打开progisp, select chip 选择 Atmega2560,然后 RD 一下 ID 识别字是否对应,没有错误的话继续下一步 2、 点击预写熔丝或者编程熔丝右边的数字框进行 Atmega2560 的熔丝位配置 3、 Atmega2560 的熔丝位如下配置:低 FF,高 D8,扩展 FD,配置好后点击写入执行熔丝位的写入,
3、写入完成后可以点击读出熔丝位验证熔丝位是否已经写入,写入成功即可关闭熔丝位配置界面 4、配置好熔丝位后点击“调入 flash” 载入 Atmega2560 的 bootloader 的 hex 文件,在主界面上勾选芯片擦除、编程 flash、校验 flash,然后点击自动开始写入 bootloader程序 , 2560 写入时间较长,需耐心等待 5、烧写成功后会出现校验错误,这是因为 progisp 对于 2560 的 bootloader 校验功能不是很完善,校验不了,所以才会出现这样的校验错误。其实 bootloader 已经下载完毕了。这时候可以看到 B、 C 指示灯在闪烁。 二、 烧写
4、 Atmega32U2 的 bootloader Atmega32u2 的 SPI 接口在 APM 板的 GPS 插座位置附近,很多 APM 板子出厂的时候, 32U2 的 SPI 接口排针并没有焊上,如果没有的话你需要先把排针焊上。 Atmega32u2 的bootloader 烧写步骤参考上面的 Atmega2560 烧写步骤, 首 先选择芯片 32u2,然后配置熔丝位, Atmega32u2 的熔丝位为低 FF,高 D9,扩展 F4,最后调入 Arduino-usbdfu.hex文件执行烧写 三、写入 Atmega32u2 的 PPM 解码通讯程序 1、 mega2560 和 mega3
5、2U2 的 bootloader 都烧写完毕 后 , 连接 APM 飞控板的 USB 口到电脑上,电脑提示发现新硬件 此驱动在 APM 固件的 ardupilotToolsArduPPMATMega32U2Drivers 目录下,如果没有的话请自行去 APM 的 wike 网站上下载一个固件。驱动装好后在设备管理器中会出现一个 ATMEL 的 DFU 设备 2、 驱动好后 打开 FLIP 软件, 点击红色箭头所指的图示或到主选单选择 Device-Select,也可以使用快捷键 Ctrl+S,选择 Atmega32U2,然后点击确定 。 3、 点击红色箭头所指的地方或到主选单选择 Settin
6、gs-Communications-USB,也可以使用快捷键 Ctrl+U ,然 后点击 Open 打开 USB。 4、 如果 以上 步骤都正确的 话, 你会看到 Signature bytes 信息 ,如下图所示 : 5、 现在我们点击红 色箭头所指的图示加载 HEX 或到主选单选择 File-Load HEX,也可以使用快捷键 Ctrl+L选择 事先准备好的 PPM 解码 hex 文件 。 需要注意的是, FLIP载入的 hex 文件不能放在中文目录下,否则会提示载入不成功 6、 现在 确认一下是否已经勾选了所有的 Operations Flow的选项, 如下图所示, 红色箭头所指的地方都要打勾 ,然后点击左下角的 RUN 执行写入 。 软件会弹出一个烧写进度条提示,正常的话很快,几秒钟就可以完成, 最后左下角提示 veripass 校验通过,整块板子的基本 bootloader 即刷写完成,重新插拔一次 USB,电脑发现新设备,装好APM 的 USB 驱动后就可以打开 Mission Planner 更新 APM 固件了