最近一直由于学校大创申请的的四轴,一直在做这玩意,哎,无奈这货实在不像想象的那样简单,自己写了N久飞控,也没把飞机飞起来,只能先用开源的apm飞控练练手呗,备份下apm烧bootloader的方法,以备查用!
原文地址:http://bbs.diywrj.com/thread-21628-1-1.html
所需工具材料:
1、一个AVRusbasp编程器以及相应的烧写软件,推荐progisp1.72
2、AVR的USB自编程软件Flip,下载链接
http://www.atmel.com/tools/FLIP.aspx
,电脑中如果已经装过java,选择小的那个,如果没有,选择大的那个含jave的进行下载
3、准备三个hex文件,分别是Atmega2560的bootloader文件、32u2的bootloader文件和32u2的ppm程序文件
烧写过程基本概述:先给Atmega2560烧写bootloader,然后给Atmega32u2烧写bootloader,最后给32u2写入PPM解码通讯程序
一、烧写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,配置好后点击写入执行熔丝位的写入,写入完成后可以点击读出熔丝位验证熔丝位是否已经写入,写入成功即可关闭熔丝位配置界面
4、配置好熔丝位后点击“调入flash”载入Atmega2560的bootloader的hex文件,在主界面上勾选芯片擦除、编程flash、校验flash,然后点击自动开始写入bootloader程序,2560写入时间较长,需耐心等待
5、烧写成功后会出现校验错误,这是因为progisp对于2560的bootloader校验功能不是很完善,校验不了,所以才会出现这样的校验错误。其实bootloader已经下载完毕了。这时候可以看到B、C指示灯在闪烁。
二、烧写Atmega32U2的bootloader
Atmega32u2的SPI接口在APM板的GPS插座位置附近,很多APM板子出厂的时候,32U2
的SPI接口排针并没有焊上,如果没有的话你需要先把排针焊上。Atmega32u2的bootloader烧写步骤参考上面的Atmega2560烧写步骤,首先选择芯片32u2,然后配置熔丝位,Atmega32u2的熔丝位为低FF,高D9,扩展F4,最后调入Arduino-usbdfu.hex文件执行烧写
三、写入Atmega32u2的PPM解码通讯程序
1、mega2560和mega32U2的bootloader都烧写完毕后,连接APM飞控板的USB口到电脑上,电脑提示发现新硬件
此驱动在APM固件的ardupilot\Tools\ArduPPM\ATMega32U2\Drivers目录下,如果没有的话请自行去APM的wike网站上下载一个固件。驱动装好后在设备管理器中会出现一个ATMEL的DFU设备(注:本部可能会出现找不到文件的提示,在xp上会提示libusb0_x86.dll,可下一个libusb0_x86.dll放入system32中,在xp测试通过!)
2、驱动好后打开FLIP软件,点击红色箭头所指的图示或到主选单选择「Device->Select」,也可以使用快捷键「Ctrl+S」,选择Atmega32U2,然后点击确定。
3、点击红色箭头所指的地方或到主选单选择「Settings->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固件了
转载于:https://blog.51cto.com/rainlee/1626529