5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 12596|回复: 58
打印 上一主题 下一主题

新手打造mwc2560飞控,自己刷bootloader,欢迎新手交流高手指点。增加avrdude-GUI下载

  [复制链接]
跳转到指定楼层
楼主
发表于 2013-5-23 12:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 haujj 于 2013-5-31 23:21 编辑

      本人喜欢模型多年,平时都在关注论坛,做个资深潜水员。其实自己一直都在玩直升机,家里大大小小的都快十来架了,可自己很少飞,到目前为止还是只能悬停,勉勉强强飞个航线
       近年来开始流行四轴,自己也曾经有过想玩的念头,在大约2年前也在论坛收了一套kk的飞控回来,当时手头没有KK刷机线,买回来也没多大心思想玩,买回来后一直扔在某个角落里。直到今年4月份自己工作比较轻松,对四轴再次产生想玩的念头。买现成的飞控还是自己组一个呢,本着自己是喜欢动手的那一类人,加上自己认为焊功还是比较了得(当时没有接触过此类传感器,不知传感器大小,现在看来有点不知天高地厚的感觉)认为自己能轻松搞定,逐决定自己组一个,就是这个决定才有了这遍帖子的产生。希望自己的一点经验,能够给后续的模友有个交流的地方。
     先来一张成果照片,把接收机整合焊接接在一块,这样简洁很多

下面这张照片大家能看出亮点在哪里吗,有什么好处,有人知道不???

多人回帖的话我就公开,哈哈哈.........
     言归正传:
     通过论坛及网上的一番收索,目前比较流行的飞控是MWC,属于国外的一个开源项目,目前玩的模友比较多,比较容易查阅相关资讯,逐决定采用ATM2560+MS5611 HMC5883L MPU6050这一配置,目前算是比较好的一种,容易扩展其他功能象GPS什么的,价格便宜等优点。目标锁定后马上上网进行采购,在网上我就买了这几样东西,其他那些零碎电子零件都是在当地电子市场配齐。

主要是空飞控板、FT232读写器、和MS5611 、HMC5883L、 MPU6050这三个传感器,ISP下载器是之前需要用买的。说实在话,在组这个飞控板的过程中自己有后悔过,为什么不去买一个现成的呢,难道就为了省下那一百多元,自己也不至于差那点钱啊,现在往回看,自己蛮开心的,因为自己学到了不少单片机的知识,这是后话。因为在组的过程中,没有留下照片,自己只能将我在制作的过程中遇上那些难题及需要注意的事项,一一讲出来,希望对大家有点启发。
     零配件到齐后,第一时间是准备焊接,没错,是焊接,当时我太高估了自己的焊接能了,不过也得佩服自己的折腾能力,过程我就不说了,在这里主要讲讲焊接的顺序。
     首先要焊接的是2560这个大芯片和其他周边的小零件,MS5611、 HMC5883L、 MPU6050这三个暂不要焊接,原因很简单,如焊接某块芯片出现短路或虚焊,你就很难查出问题所在,我在这里吃了一个大亏,一次性焊好,结果通电无反应,自己刚接触单片机小白一个,结果到处问到处找资料,白白的花了几天时间去查找故障原因。
    言归正传,2560及周边焊好后,检查各引脚无短路虚焊,有万能表的模友可以测量一下正电源焊脚与地是否相通,如不幸真的相通就及时排查一下,没问题就可以接上FT232读写器或ISP下载器通电,看看电源指示灯亮不亮,芯片有没有发烫现象,如过指示灯不亮或芯片发烫,应马上断电检查。如指示灯亮了,那就好办,下一步就准备刷2560的bootloader了
    一般新买的2560芯片里面都是空的,需要刷bootloader,其实我也不是很懂什么是bootloader,只知道如果不刷bootloader,那你就不能刷如程序,好吧,那就刷吧,怎么刷呢,对于单片机小白的我来说,又是一个难题,论坛找资料,发短信问前辈,能做的都做了,在这感谢曾经帮助过我的模有,借用论坛宝贵资源,对你们说声:谢谢!
    其实刷bootloader搞明白了并不是很难,前提是你要选对刷机软件和设置好熔丝,刷bootloader只能用ISP下载器,先安装ISP的驱动程序,一般安装好在电脑设备管理器中能看到“USBasp”设备就说明安装成功了。记住:飞控板的MISO 连接ISP下载器的MISO,VCC 、SCK 、MOSI、RESET、GND一样,把飞控板的接口与ISP下载器一一对应接上,连接电脑,一般ISP下载器是使
用AVR

或progisp

这两个软件,如果对熔丝设置不是很熟悉的模友,我不建议使用AVR或progisp这两个软件刷bootloader,使用avrdude-GUI相当简单方便,点下面可以下载
AVR dude GUI.part02.rar (194.07 KB, 下载次数: 316)

AVR dude GUI.part01.rar (244.14 KB, 下载次数: 377)


两个一起下载后解压缩就行了

这个软件设置熔丝很简单直观
打开软件第一步,选择avrdude-5.6应用程序位置,当然是你已下载好啦

第2、3步选对应你自己的isp,我是用这个

第4步,选择芯片型号,这不用说当然是选择2560啦

第5步读取芯片熔丝位

这个步骤要强调说说,如果熔丝位设置不对,是不能刷进bootloader的,更有可能导致芯片锁住,所以要认真看清楚,还有一个注意点是Lock Bit这个熔丝位,每次刷完bootloader,再次读取这个熔丝位,它是会自己改变为3F,如需要再次刷bootloader,必须将它改回0F才能正常刷。

这是arduino里面提供的各型号的熔丝位说明截图,有需要的模友可自己去打开看看,在你下载的arduino里面arduino-1.0.4/hardware/arduino/boards这个文档
第6步是选择bootloader文件位置,一般是在arduino里面arduino-1.0.4/hardware/bootloaders/stk500v2/stk500boot_v2_mega2560.hex

选好bootloader就可以开刷啦

洗刷刷洗刷刷,咦,怎么卡在哪里不动了

如果那个绿色进度条停在半途不动,请不要慌张,不要以为死机了刷不进去,那是正常,因为2560内存大,所以刷起来有点慢,不像其他芯片,1、2、3、4、5搞掂,没这么快,大概要个6、7分钟才能搞掂,所以耐心等待一下,刷好了会跳出一个提示框框,一大堆的English,大概是这内容
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude.exe: Device signature = 0x1e9801
avrdude.exe: erasing chip
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
avrdude.exe: reading input file "C:\Users\Administrator\Desktop\arduino-1[1].0.4-windows\arduino-1.0.4\hardware\arduino\bootloaders\stk500v2\stk500boot_v2_mega2560.hex"
avrdude.exe: input file C:\Users\Administrator\Desktop\arduino-1[1].0.4-windows\arduino-1.0.4\hardware\arduino\bootloaders\stk500v2\stk500boot_v2_mega2560.hex auto detected as Intel Hex
avrdude.exe: writing flash (261406 bytes):
Writing | ################################################## | 100% 80.98s
avrdude.exe: 261406 bytes of flash written
avrdude.exe: verifying flash memory against C:\Users\Administrator\Desktop\arduino-1[1].0.4-windows\arduino-1.0.4\hardware\arduino\bootloaders\stk500v2\stk500boot_v2_mega2560.hex:
avrdude.exe: load data flash data from input file C:\Users\Administrator\Desktop\arduino-1[1].0.4-windows\arduino-1.0.4\hardware\arduino\bootloaders\stk500v2\stk500boot_v2_mega2560.hex:
avrdude.exe: input file C:\Users\Administrator\Desktop\arduino-1[1].0.4-windows\arduino-1.0.4\hardware\arduino\bootloaders\stk500v2\stk500boot_v2_mega2560.hex auto detected as Intel Hex
avrdude.exe: input file C:\Users\Administrator\Desktop\arduino-1[1].0.4-windows\arduino-1.0.4\hardware\arduino\bootloaders\stk500v2\stk500boot_v2_mega2560.hex contains 261406 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 75.96s
avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x1e000
              0xff != 0x0d
avrdude.exe: verification error; content mismatch
avrdude.exe done.  Thank you.
   不懂English不再惊慌了,这回我有经验了,这是校验错误,是使用usbtinyisp下载时,可以正常下载,只是会出现校验错误,不影响正常使用。这问题要再次感谢某论坛里的一位高手,一位名叫弘毅 的高手是他的帖子及及时解答我的疑问,为我排除了bootloader一直刷不进去这个难题。谢谢!嘿嘿不知他有没有在这个论坛转。
    好了,bootloader刷好了,就可以测试一下,连接上FT232读写器看看在arduino 能不能刷mwc的程序,先安装好FT232的驱动,安装好在电脑设备管理器里可以看到其相应端口

FT232有5个接口。借用一下商家的照片,自己懒得去拍了

除了3.3V这个不用接,其他5个接口都要接,FT232的+5V与飞控板的vcc接收,GND对GND,DTR对DTR,需要注意的是RX和TX这两根线,FT232的RX与飞控板TX对接,FT232的TX与飞控板RX对接,接好后可以尝试打开arduino 软件了
打开菜单默认是英文的

可以改为中文菜单,点菜单File下拉菜单Preferences,在Editor Languages这个菜单里选择简体中文,按0k,然后退出再重新打开就会变为中文菜单了

首先选择芯片型号

然后选择端口

选择mwc程序文件,我的是2.2版本,在你下载的MultiWii_2_2里面的/MultiWii/MultiWii.ino这个就是了


打开后跳出这个页面

然后点写入

这是烧写过程

如果没有烧写成功是这个样子

如果没什么意外的话应该是一次成功写入的

。如能刷进MWC程序,那证明2560已经可以正常工作,那下一步就是焊接MS5611 、HMC5883L、 MPU6050这三个芯片,如果没有热风台的话,只有一把电烙铁,那还是听从论坛高手们的建议,拿到外面请修手机的师傅帮忙焊一下吧,一般外面修手机师傅的技术还是可以的,基本一次焊好是没多大问题,不过还是有朋友遇上失败的案例。没有热风台自己单靠一支电烙铁焊这三块芯片难度相当大,焊接时间过长,容易热坏芯片,所以焊接温度和时间要掌握好。
    自己焊我建议先焊MPU6050这一块芯片,还是那句话,如果你一次将三块芯片焊好,哪怕有一只信号输入脚短接或没有焊好,在GUI里面是会出现一大堆的I2C错误,一般你还真不好测量是哪个芯片没焊好还是焊坏了。焊接前最好先测量一下芯片供电电压,正常情况应该是3.3v。






评分

参与人数 1威望 +2 收起 理由
有点骞 + 2 很给力!

查看全部评分

欢迎继续阅读楼主其他信息

沙发
发表于 2013-5-23 13:15 | 只看该作者
好贴,顶起!
3
发表于 2013-5-23 13:33 | 只看该作者
有意思,顶一下
4
发表于 2013-5-23 13:36 | 只看该作者
马克一下 看看
5
发表于 2013-5-23 13:58 | 只看该作者
楼主写的很详细,如果早一年发就好了。。。。当时做了很大很大的一圈!!!
6
 楼主| 发表于 2013-5-23 14:03 | 只看该作者
yangshichang110 发表于 2013-5-23 13:58
楼主写的很详细,如果早一年发就好了。。。。当时做了很大很大的一圈!!!

呵呵!我是今年4月份才开始接触四轴,应该是你早写就好了,我也不用兜那么大一个圈。
7
发表于 2013-5-23 14:09 | 只看该作者
haujj 发表于 2013-5-23 14:03
呵呵!我是今年4月份才开始接触四轴,应该是你早写就好了,我也不用兜那么大一个圈。

我是这个帐号注册时开始接触的。

别说了,焊功太差,没玩过航模。导致一开始出错太久,唉。

一开始,焊错了,以为是程序的问题,后来弄了快一个星期,又重新买了传感器重新焊。

焊完后能飞,但是炸了几次,只是因为接收机线没接好。

炸的没桨了,又花一个星期学航模,玩模拟器。

然后又去飞,这次直接撞树了,以为是机架问题。

多加了些东西。

来来去去。弄了很久。。。一把幸酸泪,就不多说了。

后来买了什么MMC10感受下,才大概知道飞控的功能,还有控制的感觉,才有了目标。。

所以你能成功做完,并且还写了这么多,厉害~给赞,哈哈。

8
发表于 2013-5-23 14:10 | 只看该作者
haujj 发表于 2013-5-23 14:03
呵呵!我是今年4月份才开始接触四轴,应该是你早写就好了,我也不用兜那么大一个圈。

其实也想写过很多经验。
可是有时自己都不知道怎么调好的。

记的一开始很多i2c error 。一开始以为是线没焊好。

后来又觉得是传感器没弄好。

后来又调程序什么的。

结果就好了。。。。

所以我都不敢说是什么问题。。。。

9
发表于 2013-5-23 14:16 | 只看该作者
论坛上的都是好人,有成果能和大家分享,虽然我还没玩到这一步,但是毫不犹豫的顶起。
10
发表于 2013-5-23 15:10 | 只看该作者
不错的资料
11
发表于 2013-5-23 15:20 | 只看该作者
来学习一下,看完就走。
12
发表于 2013-5-23 15:25 | 只看该作者
整个板子调通了吗
13
发表于 2013-5-23 15:29 | 只看该作者
本帖最后由 giantwjt 于 2013-5-23 15:32 编辑

用usbasp最新版+arduino IDE下载boot1oad没有校验错误问题,也不用管熔丝设置。推荐新人用,本人亲试的

14
 楼主| 发表于 2013-5-23 15:29 | 只看该作者
yangshichang110 发表于 2013-5-23 14:10
其实也想写过很多经验。
可是有时自己都不知道怎么调好的。

你过去的经历就是我之前的经历,基本遇上的问题都差不多,我也是一路跌跌碰碰的走过来,有辛酸,有快乐,当自己亲手做的飞控飞起来,是那么的稳,心中喜悦只有自己才知道,确实一路过来学到不少东西,买商品飞控板回来不一定能够学到这么多东西
15
 楼主| 发表于 2013-5-23 15:31 | 只看该作者
giantwjt 发表于 2013-5-23 15:25
整个板子调通了吗

板子已调好了,刷2.2飞起来很稳,现在开始折腾gps和蓝牙
16
发表于 2013-5-23 15:38 | 只看该作者
不懂,路过
17
发表于 2013-5-23 15:48 | 只看该作者
有见地,学习
18
发表于 2013-5-23 17:13 | 只看该作者
向院士级人物致敬!
19
发表于 2013-5-23 17:20 | 只看该作者
楼主真够心思啊
20
发表于 2013-5-23 17:29 | 只看该作者
路过,学习一下!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表