标题: 无刷电调基础知识以及BLHeli固件烧录和参数调整
作者: 梦幻之心星 sky-seeker@qq.com
标签: [#基础知识,#电调,#BLHeli,#固件,#烧录,#调参]
目录: [电调]
日期: 2021-02-01

基础知识

电调

  • ESC代表电子速度控制器,简称为电调。电调从飞行控制器接收油门信号,并以所需速度驱动无刷电机。

电调固件

  • 电调固件是在每个电调上运行的软件,它确定电调的性能,支持的协议以及可以使用的配置接口。电调可以使用的固件取决于硬件。
  • SimonK:最古老的两种开源电调固件之一,已经过时不再更新。
  • BLHeli:最古老的两种开源电调固件之一,由于其广泛的功能和友好的用户界面而变得流行。
  • BLHeli_S:BLHeli固件的第二代。专门为具有Busybee处理器的电调开发。
  • BLHeli_32:第三代和最新一代BLHeli固件。专门为32位电调编写,不再开源。

电调处理器

  • 市场上大多数电调使用ATMEL、Silabs和ARM的处理器。不同的处理器具有不同的规格和功能,并且受不同的固件支持。
  • ATMEL 8位:支持SimonK和BLHeli固件。
  • SILABS 8位:支持BLHeli或BLHeli_S固件。
    • 主要处理器是F330F39X系列的F390F396
    • Busybee处理器是F330和F39X的升级。有BusyBee1(EFM8BB10F8)和BusyBee2(EFM8BB21F16)两种。
  • ARM 32位:支持BLHeli_32固件。

电调协议

  • 电调协议是飞行控制器和电调用于通信的语言,决定了信号从飞控到电调的发送速度。
  • 四轴飞行器使用的电调协议及信号宽度

电调BEC

  • BEC表示 电池消除电路,本质上是电压调整器。作用是将主电池组的电压降压到5V输出。
  • 通常内置在电调中,消除了为5V电子设备供电所需的单独电池的麻烦。

BLHeliSuite

手册

  • BLHeliSuite的手册位于BLHeliSuiteManuals目录
  • BLHeliSuite的手册主要文件内容:
    • BLHeli manual xx xx.pdf:Atmel MCU和SiLabs MCU的电调的参数
    • BLHeli programming adapters.pdf:适配器的制作和使用
    • BLHeli supported xx ESCs.pdf:支持的Atmel和SiLabs电调的图片及参数
    • BLHeliSuite 4w-if interfaces pinout.pdf:Arduino板上用于Atmel/SiLabs电调的BLHeliSuite的4w-if的引脚配置
    • BLHeliSuite 4w-if protocol.pdf:用于Atmel/SiLabs电调的BLHeliSuite的4w-if的通信协议

适配器

首次刷新电调固件
  • SiLabs MCUs电调支持以下适配器

    • Arduinos:使用SILABS C2 (4way-if)接口。初次使用Arduinos作为适配器时需要对Arduinos进行编程烧录。
    • SiLabs Toolstick:使用SILABS C2 (Toolstick) 接口。
    • USB Flashing stick:使用SILABS C2 (Toolstick) 接口。
    • BLHeli Skywalker stick:使用SILABS C2 (Toolstick) 接口。
  • Atmel MCUs电调支持以下适配器
    • Arduinos:使用ATMEL ISP Interface (AVRDude) 接口。初次使用Arduinos作为适配器时需要对Arduinos进行编程烧录。
    • USBasp:使用ATMEL ISP Interface (AVRDude) 接口。
刷新电调引导程序
  • 刷新电调引导程序为BLHeli主要有USB/Com4way-if两种类型的接口。
  • Arduinos(4way-if):使用SILABS BLHeli Bootloader (4way-if)ATMEL BLHeli Bootloader (4way-if) 接口。使用Arduinos作为适配器时需要对Arduinos进行编程烧录。
  • Arduinos(USB/UART 1-Wire bridge):使用SILABS BLHeli Bootloader (USB/Com)ATMEL BLHeli Bootloader (USB/Com) 接口。使用Arduinos作为适配器时需要对Arduinos进行编程烧录。
  • Favourite stick:使用SILABS BLHeli Bootloader (USB/Com)ATMEL BLHeli Bootloader (USB/Com) 接口。
  • FTDI stick:使用SILABS BLHeli Bootloader (USB/Com)ATMEL BLHeli Bootloader (USB/Com) 接口。
  • Multistar stick:使用SILABS BLHeli Bootloader (USB/Com)ATMEL BLHeli Bootloader (USB/Com) 接口。

背景说明

  • 适配器:Arduino Nano ATMEGA328P
  • 电调:主控芯片SIL F330,功率管AON6504,供电1-4S,电流20A-30A,无BEC

操作说明

前期准备

  1. 下载Arduino Nano所用的USB转串口芯片CH340C的驱动程序CH341SER.ZIP,安装驱动。
  2. 下载BLHeliSuite,一般下载BLHeliSuite16714902.zip即可。
  3. 根据电调外观和信息,查阅手册BLHeli supported xx ESCs.pdf 以确定电调型号。或者根据电调PCB确定电调的主控芯片型号。
  4. 根据电调的主控芯片型号,查阅手册BLHeli programming adapters.pdf以确定需要用到的适配器和接口,以及适配器的制作方法。
  5. 根据所使用的适配器和所需操作使用的接口,查阅手册BLHeliSuite 4w-if interfaces pinout.pdf 以确定引脚连接。

制作适配器

  1. 连接适配器和电脑,打开BLHeliSuite。
  2. 点击Make interfaces标签页。
  3. 点击Port选择USB-SERIAL CH340 对应的端口,点击Arduino Board选择Nano w/ ATmega328开发板,点击Baud选择115200波特率,点击Arduino 4way-interface

  4. 点击OK,选择最后一个文件后点击打开
  5. 点击Yes

  6. 等待烧录Arduino,出现Arduino flashed sucsessfully by Avrdude表示已成功将Arduino Nano烧录为适配器。点击OK

连接电调

  1. 连接适配器和电调(VCC GND C2D C2CK)。

  2. 点击Select ATMEL/SILABS Interface选择SILABS C2 (4way-if)接口。

  3. 点击SiLabs ESC Setup标签页。
  4. 点击Port选择USB-SERIAL CH340 对应的端口,点击connect,点击Read setup读出电调参数设置。

  5. 出现setup read successfully表示已成功连接到电调并读取到电调的参数。点击OK

刷新固件

  1. 点击Flash BLHeli
  2. 在弹出的窗口中选择固件名称、固件类型(MAIN:直升机主桨;TAIL:直升机尾桨;MULTI:多桨)、固件版本,点击OK

  3. 点击Yes

  4. 等待烧录固件,出现sucsessfully表示已成功将电调固件烧录到电调。点击OK。在下一个弹出的窗口中点击Yes

调整参数

  1. 点击ESC Setup选择Save Setup to ini file 以备份电调当前的参数。

  2. 修改电调参数。降低启动功率,降低电调输出的PWM频率,开启低转速功率保护。

  3. 点击Write setup将参数写入电调。
  • 多轴编程参数表

  • 电调参数说明,详见官方手册BLHeli manual xx xx.pdf

    英文参数 中文参数 参数说明
    Startup power 启动功率 启动时允许的最大功率,实际的功率取决于油门的输入。
    Motor timing 电机进角 通常设置中进角即适用于大部分电机,但如果电机运转不顺畅时,可以尝试改变进角。
    Demag compensation 消磁补偿 防止电机换向后消磁时间过长而引起的电机停转。补偿值越高,保护越好。但补偿值太高,会降低最大功率。
    Motor direction 电机转向 在双向模式下,油门中点为零点,中点以上为正转,中点以下为反转。
    Startup Beep Volume 蜂鸣器音量 设置正常运行下蜂鸣音量。
    Beacon/Signal Volume 信标音量 设置信标的音量。如果零油门信号的时间超过一个设定的时间,电调控制马达发出警报声。以便于找回丢失的飞行器。
    Beacon delay 信标延迟 设置信标开始发出之前的延时。
    PPM Min throttle;
    PPM max throttle;
    PPM center throttle
    最小油门;
    最大油门;
    中位油门
    设置电调的油门行程量。中位油门只用于双向模式。正常情况下, 油门信号值在1000us-2000us之间。 对于其他数值输入信号, 则需要做相应比例换算。
    Temperature protection 温度保护 温度保护阀值可以设置为80℃-140℃。
    Low RPM power protect 低转速功率保护 禁用可以保证低KV电机在低电压运行时实现全功率。但是禁用后会加剧同步丢失的风险,导致烧坏电机。
    Brake on stop 停车制动 在通电状态,零油门时会有刹车功能。如果油门没有零点,此项设置无效。
    Closed Loop Mode 闭环模式 设置控制环的运行速度范围。在闭环模式下,运行时的油门值对应电机的转速目标。关闭时将禁用控制环。
    Closed Loop P-Gain 闭环比例增益 设置转速控制环的比例增益。控制从速度误差到电机功率的增益。
    Closed Loop I-Gain 闭环积分增益 设置转速控制环的积分增益。控制从积分速度误差到电机功率的增益。
    Motor Gain 电机增益 缩放给定输入施加到电机的功率。仅适用于PWM输入,对PPM输入则无效。会限制电机的最大功率。
    PWM Output Dither PWM输出抖动 增加电机PWM关闭周期的长度。减少在PWM频率等于电机换向频率的谐波的转速区域中的问题,并且可以减少达到全油门的步进。不适用于闭环模式。
    PWM Frequency/Damped PWM频率/阻尼 设置电调输出的PWM频率。高PWM频率约为20kHz,低PWM频率约为8kHz,轻阻尼模式始终使用高pwm频率。低频率PWM减小了到满功率的步进。轻阻尼模式会增加电机的损耗,从而加快减速速度。
    Enable PWM Input 启用PWM输入 如果禁用,则仅接受1-2ms 脉宽的PPM和 OneShot125(125-250us)作为有效输入信号。启用后支持1kHz,2kHz,4kHz,8kHz和12kHz 的PWM输入信号。
    Input Polarity 输入极性 用于反转油门。与提供负PWM的接收器一起使用。使用PPM输入时,必须将其设置为正。

注意事项

  • 据说电调名称所写的FVT Littlebee 20A并不是真实型号,升级固件可能导致电调烧毁。
  • 电调在驱动电机运转前需要执行解锁序列以进行解锁
    1. 上电时, 电调发出3声蜂鸣声。
    2. 当检测到油门信号时, 发出一声低音。 表示解锁信号序列开始。
    3. 当油门减小到零时, 发出一声高音。 表示解锁信号序列结束。

  • SILABS电调接口标号为A、B、C、D,Atmel电调接口标号为1、2、3、4、5、X。通过接口所对应的标号,可以在Make interfaces界面方便快捷的得知需要制作的适配器。
  • 在使用Arduino Nano w/ ATmega328P作为适配器时。如果Arduino Nano使用的是旧版的引导程序,波特率设置为57600;如果Arduino Nano使用的是新版的引导程序,波特率设置为115200

参考资料


版权声明:本文为「梦幻之心星」原创,依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上原文出处链接及本声明。


博客园地址:https://www.cnblogs.com/Sky-seeker

微信公众号:关注微信公众号,获取即时推送


无刷电调基础知识以及BLHeli固件烧录和参数调整的更多相关文章

  1. 无刷电调修理方法 | 银燕(EMAX)12A无刷电调维修

    一. 银燕(XP-12A)电调修理 笔者的电调在使用4S电池时烧毁,其中一个PMOS管明显烧焦. 将其拆除,买来新元件重新焊接,通电依然冒烟了. 引脚定义 丝印662F: XC6206P332MR 低 ...

  2. 8元电调调参教程(使用Arduino Uno)| BLHeli无刷电调的固件烧写及调参

    前言 淘某上有款8元电调,性价比很高,但是需要简单设置一下 1.材料清单 (1)Arduino UNO开发板 (2)BLHeliSuite 16.7.14.9.0.1 调参软件及固件已上传Gitee: ...

  3. BLHeli/ BLHeli_S开源无刷电调学习记录

    BLHeli的历史轨迹:BLHeli -> BLHeli_S -> BLHeli_32,我们重点学习BLHeli_S版本. 该代码支持常规的1-2ms脉冲宽度输入,以及Oneshot125 ...

  4. LeetCode刷题191130 --基础知识篇 二叉搜索树

    休息了两天,状态恢复了一下,补充点基础知识. 二叉搜索树 搜索树数据结构支持许多动态集合操作,包括Search,minimum,maximum,predecessor(前驱),successor(后继 ...

  5. Monkey框架(基础知识篇) - monkey启动与参数介绍

    一.monkey启动 直接PC启动:> adb shell monkey [options] <count> shell 端启动:> adb shell >monkey ...

  6. stm32通过电调带动电机(可按键调速)

    这几天在做32通过电调带动电机的实验,上网一查,发现这方面的资料很少,经过自己的亲自实践,总结出以下经验,供大家参考. 论坛上也有很多人说自己在做,但是都遇到了同样的瓶颈.我想他们大多是pwm的频率和 ...

  7. flask基础知识

    关于flask框架的基础知识 相关基础知识:定义路由,定义参数,获取参数,重定向 简单易懂 ---hello.py # -*- coding: utf-8 -*- # Flask hello worl ...

  8. linux内存基础知识和相关调优方案

    内存是计算机中重要的部件之中的一个.它是与CPU进行沟通的桥梁. 计算机中全部程序的执行都是在内存中进行的.因此内存的性能对计算机的影响很大.内存作用是用于临时存放CPU中的运算数据,以及与硬盘等外部 ...

  9. MySQL 基础知识梳理

    MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...

随机推荐

  1. OpenResty 简介

    OpenResty 简介 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台.我们知道开发 Nginx 的模块需要用 C 语言,同时还要熟悉它的源码,成本和门槛比较高.国人 ...

  2. ACID隔离性

    数据库ACID 一致性 原子性  隔离性  持久性 隔离性: 1.读未提交 2.读已提交 3.可重复读 4.串行 读未提交:容易引起脏读 读已提交:容易引起幻读(前后读到的行数不一致) 场景: A事务 ...

  3. LVS之2---基于LVS负载均衡集群架构

    LVS之2---基于LVS负载均衡集群架构实现 目录 LVS之2---基于LVS负载均衡集群架构实现 ipvsadm software package Options 常用命令 保存及重载规则 内存映 ...

  4. 浅析pagehelper分页原理

    原文链接 https://blog.csdn.net/qq_21996541/article/details/79796117 之前项目一直使用的是普元框架,最近公司项目搭建了新框架,主要是由公司的大 ...

  5. 基础设施层-Adnc.Infr.Consul

    Adnc.Infr.Consul 主要提供服务自动注册/发现以及获取配置. 项目结构 Configuration 配置中心相关共功能,主要有两个关键类 1.ConsulConfigurationPro ...

  6. 循序渐进VUE+Element 前端应用开发(32)--- 手机短信动态码登陆处理

    在一些系统中,有时候用户忘记密码,可以通过向自己手机发送动态验证码的方式实现系统登录功能.本篇随笔介绍如何结合后端ABP框架的短信发送和缓存模块的处理,实现手机短信动态码登陆处理. 一般的登录方式,分 ...

  7. ElasticSearch--一、使用场景以及对应软件配置安装

    废话不多说,直接来硬的!我在使用的时候使用的是mysql数据库. 一.ElasticSearch概念和使用场景 1.当我们需要搜索海量数据的时候,就可能会用到.以下使用的场景有哪些呢? 搜索海量数据 ...

  8. 将WCF迁移到gRPC

    使用protobuf-net.Grpc将WCF服务迁移到gRPC非常简单.在这篇博文中,我们将看看它到底有多简单.微软关于将WCF服务迁移到gRPC的官方指南只提到了Gooogle.Protobuf方 ...

  9. Java 中的 equals() 和 hashCode()

    equals() 和 hashCode() 在 Object 类中以本地方法的形式存在,Java 中所有的类都继承了 Object 类,因此所有的类中都包含了这两个方法.这两个方法在 Java 开发中 ...

  10. 1V转5V芯片,三个元件即可组成完整的稳压方案

    1V低电压要转成5V的电压,需要1V转5V的芯片,由于1V输入,所以不需要指望能输出多大的电流,压差和1V的供电电压意味着供电电流也是无法做大的了.一般1V转5V的输出电流在0MA-100mA,一般6 ...