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

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

Mega8,C8051f电调刷BLHeil补充说明

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-17 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Chenjiawei7 于 2015-4-17 19:08 编辑

最近由于需要,弄了下开源的BLHeil电调固件,最近BLHeil又有了更新,其中学习了论坛里刷电调的大神,所以想回报下论坛,比较大家一起玩才好玩呀~~~
这个教程主要是对Mega8和SiLabs的电调Bootloader理解的补充,但为了教程的完整性里面还是说明了刷电调的步骤,教程会不断完善,请大家拍砖,其他刷机
教程可以参考大神http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=612840&highlight=%CB%A2%B5%E7%B5%F7
    目前商品电调控制器分为两大阵营,一个是基于Silab C8051f系列,一个是基于Atmel Mega8A系列。两个版本主观上分不出优劣,但

是目前市面上Silab的比例要大于Atmel,现在好赢大部分的电调几乎都是基于Silab控制器的。基于这两个硬件分别都有两个开源的固件:
BlHeli和simonk。BlHeli有三种固件,分别是用于直升机主轴电机的Main,用于直升机尾电机的Tail,用于多旋翼及其他的Multi,simonk
只适用于多旋翼。两个开源代码目前都在更新,有整合的趋势,因为BLHeliSuite现在也包含了simonk刷机界面和Bootloader。两者都是用
汇编语言开发的,以后会补充源代码的编译和对应硬件的选择。
    simonk固件最早的一个版本发布时间是2011年9月,只支持使用Atmega8单片机的电调,没有什么功能,唯一可以设置的就是油门行程。

BlHeli固件最早版本发布时间不太清楚,有PC端调试软件BLHeliSuite,比较直观,支持Atmel系列的电调和Silabs系列的电调,最早对
Silabs的电调支持的比较完善,但是目前对Atmel电调的支持也比较全面了。
         simonk固件是针对多旋翼设计的固件,响应速度非常快,支持的PWM频率也很高,主要用于多旋翼。BlHeli是针对于直升机,多旋翼,

固定翼等设计的电调固件,每个电调都有三种固件,分别是Main,Tail以及Multi后缀。Multi主要用于多旋翼,油门响应速度快,支持闭
环控制和双向控制(软件设置转向)。所有程序电机运行平稳,并且油门线性很好。所有的程序都支持防止电机堵转,这主要是多旋翼的
应用所必须的,有可以调节的参数使程序可以驱动所有的马达。
    GitHub上提供了源码和Hex文件,可以直接刷入,下面分别介绍刷入Mega8A和C8051F固件的方法,两者都可以用BLHeil的刷机软件

BLHeliSuite刷入。BLHeliSuit上为不同的烧写工具提供了不同的接口,真对于SiLabs主要有两种工具,SiLabs Toolstick Interface和
SiLabs SerialInterface,前者是C8051f的仿真器,后者是串口工具。针对Mega8A也有两种工具,一个是ISP,一个是串口工具。

    对于刷Mega8A的电调,打开BLHeliSuit13.1


    有的童鞋打开软件发现不是这样的,而是SiLabs电调的,大家可以这样设置过来:ATMEL/SILABS/选择最后一个ATMEL ISP Interface

对应的刷机工具是AVRISP,ISP驱动要自己装好。AVR ISP接口是基于SPI接口的,大家把对于的引脚连接好就行,不要忘了连接RST引脚,
要不然连接失败。连接好后先读取设置:

    这个时候如果连接成功就可以读取到参数:


    前提是你的电调已经刷了BLHeil固件,如果不是BLHeil固件软件就会推荐你刷入BLheil固件:

    有的时候会提示识别不到ProgISP,这个我也不清楚什么问题,我的另外一个BLHeliSuite就识别不了,但是ProgISP1.72就能识别到。
    这个时候如果点击Yes就会到刷机对话框:
    大家一定要知道自己刷的是什么电调,然后选择对应固件,还要选择固件类型,针对主轴、尾旋翼、多旋翼。比如:

    点击OK,会提示:

    我们先默认,然后点击Yes后就开始刷入固件,但是几秒钟后提示:
    仔细看了下,是提示电调的Bootloader丢失了,推荐你选择不勾选“Keep Existing Bootloader,我们点击“OK
    选择“install BLHeil Bootloader,然后点击Yes刷入,这次提示刷写成功:

    我们上电测试电调,可以发现电调可以工作,操作成功。我们来总结下遇到的问题,如果你的电调是原生固件,这个时候如果里面没有
Bootloader,那么就会提示你要把Bootloader也刷进去,如果下次你再刷BLHeil固件,选择第一项 Keep Existing Bootloader ,同样会
刷写成功,因为里面已经有Bootloader了,软件首先会识别里面是不是BLHeil固件,然后再刷入。

    当然你也可以用ProgISP手动刷入结果一样而且BLHeil内置了Bootloader,还有就是最好连eeprom也同样刷入对于的文件,不要忘了设
置熔丝位:

    现在大家会思考为啥要有Bootloader,那么大家先看这个:

    上面说的是Serov cable,就是电调的信号线,我们测量了下就是单片机的PD2端口,所以Bootloader的功能对用信号线刷机的支持。
Bootloader的功能就是引导程序代码的执行,并且可以烧写自己的应用固件。下面介绍如何用信号线进行刷机。BLHeil的Bootloader预留了
512字节空间,simonk的Bootloader预留了1024字节的代码空间,我们主要介绍BLHeil固件的烧写方法。

    如果内置了Bootloader的电调烧写固件,这个时候就不能再用ISP烧写了,而是用Atmel 1-Wire,可能你没有这个东东,但你可以DIY
一个,支持DIY的烧写工具很多,打舵都是基于Arduino的,我选择了Nano





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

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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