BLHeli的历史轨迹:BLHeli -> BLHeli_S -> BLHeli_32,我们重点学习BLHeli_S版本。

该代码支持常规的1-2ms脉冲宽度输入,以及Oneshot125(125-250us)、Oneshot42(41.7-83.3us)和Multshot(525us)。

还支持三种Dshot信号速率(rev16.5)、Dshot150、Dshot300和Dshot600。

固件命名:

BLHeli_S代码除了修订版外,还用一个字母、另一个字母和两个数字命名。例如"A_L_10_REV16_0.HEX"。

第一个字母表示MCU的引脚;

第二个字母是L或H(L代表24MHz MCU,H代表48MHz MCU);

这两个数字表示FET的开关死区时间。单位为20.4ns。一些场效应晶体管驱动器具有自适应场效应晶体管死区时间控制,对于这些MOS管,则用00表示场效应晶体管开关死区时间。

编程参数:

可设置参数

启动功率:

启动功率可设置为0.031到1.5之间的相对值。这是启动期间允许的最大功率。实际应用的功率取决于节气门输入,可以更低,但最低电平是最高电平的四分之一。

启动功率也会影响双向操作,因为该参数用于限制方向反转期间应用的功率。

对于低转速,电机的最大功率是有限的,以便于检测低反电势电压。允许的最大功率可通过启动功率参数设置。较低的启动功率参数将为较低转速提供较低的最大功率(这从rev16.1开始实施)。

换向时间:

换向定时可设置为低/中低/中/中高/高,对应于00/7.50/150/22.50/300定时提前。

一般来说,一个中等设置将工作良好,但如果电机口吃它可以是有益的改变时间。一些高电感的电机可以有很长的换相退磁时间。这可能会导致电机停止或口吃时,快速油门增加,特别是在运行在低转速。将定时设置为高将允许更多的时间去消磁,通常是有帮助的。

消磁补偿:

消磁补偿是一种保护电机不因换相后较长的绕组退磁时间而失速的功能。典型的症状是发动机停止或快速增加油门时卡顿,特别是在低转速运行时。如上所述,设置高换向时间通常有帮助,但以效率为代价。

消磁补偿是解决这一问题的另一种方法。首先,它检测何时出现了demag情况。

-  在这种情况下,没有关于电机正时的信息,并且换相是盲目地以预测的正时进行的。

-  除此之外,在下一次换向前的一段时间内,电机电源被切断。计算出一个指标,表明demag情况有多严重。形势越严峻,越是停电。

当demag补偿设置为关闭时,电源永远不会切断。

当设置为低或高,电源被切断。对于高设置,断电更为猛烈。

通常,补偿参数的值越高,保护效果越好。

如果demag补偿设置得太高,最大功率可能会有所降低。

方向:

旋转方向可设置为前进/后退/双向前进/双向后退。

在双向模式下,中央油门为零,上面为前进方向旋转,下面为反向旋转。当选择双向操作时,TX编程被禁用。

嘟嘟声强度:

设置正常运行时的蜂鸣音强度。

信标强度:

设置蜂鸣信标蜂鸣时蜂鸣的强度。如果油门信号在给定时间内为零,电子悬架控制系统将开始发出蜂鸣声。请注意,设置高信标强度可能会导致电机或ESC过热!

信标延迟:

信标延迟设置信标哔哔声开始前的延迟。

TX编程:

如果禁用,则禁用油门校准。

最小油门、最大油门和中值油门:

这些设置设置ESC的油门范围。中央油门仅用于双向操作。为这些设置提供的值适用于正常的1000us到2000us输入信号,对于其他输入信号,这些值必须按比例缩放。

热保护:

可以启用或禁用热保护。温度阈值可以在800C和1400C之间编程(可编程阈值从rev16.3开始执行)。可编程阈值主要是为了支持硬件制造商使用,因为不同的硬件可以对所使用的各种组件的最高温度有不同的公差。

低转速功率保护:

可以启用或禁用低转速的功率限制。禁用它可能是必要的,以实现在低电源电压下运行的一些低kV电机的全功率。但是,禁用它会增加同步丢失的风险,并可能导致电机或电子稳定控制系统过热。

停止时制动:

可以启用或禁用制动停止。启用时,油门为零时将应用制动器。对于非零油门,此设置无效。

LED控制:

LED可以在支持它的ESC上控制。最多可以打开或关闭4个LED。

待命名序列:

下图显示了油门值与时间的关系示例。

100%上电时,电子稳定控制系统鸣叫3次。

当检测到油门信号时,它会发出一声低沉的哔哔声。这表示开始警戒序列。

然后,当或如果油门为零,它会发出一声高音哔哔声。这标志着警戒序列的结束。

此外,如果在启用顺序期间检测到100%油门,电子悬架控制系统将开始油门校准。

如果电子稳定控制系统处于待命状态,并在给定时间内看到零油门,它会发出信标哔哔声,大约每三秒发出一声哔哔声。

输入信号:

可用的油门校准范围为1000us到2000us,最小和最大油门之间的差值必须大于140us(双向模式下为70us)。如果在差值小于140us(70us)的情况下进行校准,则将移动最大值,使差值为140us(70us)。

Oneshot125模式的工作原理与常规的1-2ms模式相同,唯一的区别是所有计时都除以8。对于Oneshot42也是一样的,所有的时间被3进一步除。Multishot的工作原理也类似,只是输入信号范围为5-25us。

输入信号总是用MCU时钟采样,频率为24MHz或48MHz。

对于以24MHz运行的MCU,不建议输入信号脉冲速率高于8kHz。

对于运行在48MHz的MCU,支持高达32kHz的输入信号脉冲率。

但请记住,信号速率快于陀螺仪或PID环路的FC没有意义,它只会导致不必要的MCU加载。

Dshot150理论上支持高达8kHz的输入速率,Dshot300支持16kHz和Dshot600支持32kHz。以24MHz运行的MCU不支持Dshot600。通常建议在Dshot300上运行48MHz mcu,因为Dshot600更高的信令速度带来的好处被Dshot300增加的利润和健壮性所抵消。同样,对于24MHz MCU,Dshot150是建议的最大值。

当输入信号为Dshot时,将禁用油门校准,并忽略油门校准值。

热保护:

ESC测量MCU内的温度,如果温度过高,则限制电机功率。电机功率分四步限制:

-   如果温度高于临界值,电机功率限制在75%。

-   如果温度高于阈值加上50摄氏度,电机功率限制在50%。

-   如果温度高于阈值加上100摄氏度,电机功率限制在25%。

-   如果温度高于阈值+150℃,则电机功率限制为0%。

失速保护:

如果电机已尝试启动但几秒钟内未成功,它将停止尝试并等待油门归零,然后再尝试。

再生制动/主动续驶:

阻尼光模式是通过再生制动实现的,固有的主动续驶也是实现的。

然后,由于制动而产生的损失被主动自由转动减少的损失抵消。

电机PWM:

电机PWM频率始终为24kHz。对于在具有自动死区控制的esc上以48MHz运行的mcu,分辨率为2048步。在具有固定死区时间的esc上,PWM分辨率为1024步。对于以24MHz运行的MCU,PWM分辨率为一半。

最大速度:

对于带有24MHz MCU的ESC,最大速度限制为350k eRPM,此时电机的功率受到限制。对于MCU运行频率为48MHz的ESC,这个数字是500k eRPM。对于Dshot输入信号,支持的最大eRPMs有所减少。

蜂鸣音-正常操作:

通电:

一次

检测到油门信号(启用顺序开始):

一次

检测到零油门(报警序列结束):

一次

之后,电机将运行。

嘟嘟声-油门校准:

通电:

一次

检测到油门信号(启用顺序开始):

一次

当油门高于中间档(测量最大油门):

测量时

如果节气门高于节拍中点3秒:

一次

此蜂鸣音序列表示已存储最大油门

当油门低于中间档(测量最小油门):

测量时

如果节气门低于节拍中点3秒:

一次

此蜂鸣音序列表示已存储最小油门

此时将存储节气门校准值。您可以切断ESC的电源,或者继续运行ESC。

BLHeli/ BLHeli_S开源无刷电调学习记录的更多相关文章

  1. 无刷电调基础知识以及BLHeli固件烧录和参数调整

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

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

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

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

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

  4. 开源项目Material Calendar View 学习记录 (一)

    开源项目Material Calendar View 学习记录 Github: https://github.com/prolificinteractive/material-calendarview ...

  5. kotlin电商学习记录,好久没来逛逛了

    好久没来,一直做毕业设计,用kotlin写一个基于以图搜图的购物app,现在又赶上实习,内容多,时间少,不过前途光明并由贵人指点.加油 kotlin电商学习记录 技术选型 视图层 kotlin-and ...

  6. 开源库RxJava、ButterKnife学习记录

    1. 简介 RxJava "RxJava is a Java VM implementation of Reactive Extensions: a library for composin ...

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

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

  8. MTO1804无刷电机引发的悲惨经历之二:电调固件刷新与优化

    前言 原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎指正. 书接上回,我们总算是基本确认了黑衣神秘电调的身份,本文就尝试对电调固件进行一番设置,来个免费优化. 1.刷新固件 关于电调的固件 ...

  9. 【转】iOS超全开源框架、项目和学习资料汇总

    iOS超全开源框架.项目和学习资料汇总(1)UI篇iOS超全开源框架.项目和学习资料汇总(2)动画篇iOS超全开源框架.项目和学习资料汇总(3)网络和Model篇iOS超全开源框架.项目和学习资料汇总 ...

随机推荐

  1. 3、架构--cp、scp、rsync、实时监控与同步

    笔记 1.晨考 1.VPN的搭建步骤 2.vpn中的iptables是什么作用? 网络转发 2.昨日问题 1.yum源问题 2.VPN链接正常,但是没办法通过172 3.VPN链接时,出现了DNS错误 ...

  2. 字符集编码(上):Unicode 之前

    计算机起初是设计用来做数学计算的,Computer 一词英文原意是"计算员"--在计算机发明之前,计算员是一个独立的职业,专门做各种数学用表的计算,如测量和天文领域的三角函数表.对 ...

  3. Dapp开发petshop——truffle官方例程

    truffle-pet-shop pet-shop是truffle的官方例程. 之前参考https://learnblockchain.cn/2018/01/12/first-dapp/的中文教程,但 ...

  4. JavaScript函数式编程(纯函数、柯里化以及组合函数)

    JavaScript函数式编程(纯函数.柯里化以及组合函数) 前言 函数式编程(Functional Programming),又称为泛函编程,是一种编程范式.早在很久以前就提出了函数式编程这个概念了 ...

  5. CobaltStrike逆向学习系列(11):自实现 Beacon 检测工具

    这是[信安成长计划]的第 11 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 检测原理 0x02 检测方案 0x03 存在的问题 0x04 解决方案 0x05 示例代码 0x06 ...

  6. NSSCTF-no_wakeup

    打开网页是一个派萌的表情包(原神玩家手动狗头) 按照题目的提示点击,出现题目的源码, 观察题目源码,发现就是一个简单的反序列化,这边手打一下php (自己太菜了,枯了) <?phpclass H ...

  7. sql注入之报错注入and boolean注入

    1.sql注入之报错注入 正常传参,返回页面正常: 加入'  返回页面报错,出现"zhangsan"' 报错注入使用的函数 在这里我们使用 select updatexml(1,c ...

  8. 三大数据库 sequence 之华山论剑 (中篇)

    sequence 用法四 AUTO INCREMENT 通过 DEFAULT 还是需要手动创建 sequence.有没有更简单的用法呢? 当然,就是通过 AUTO INCREMENT 方式,自动创建 ...

  9. Python:list和ndarray的互相转化

    a=np.arange(9).reshape(3,3) #a是一个3*3的array #array -> list l=a.tolist() [[0, 1, 2], [3, 4, 5], [6, ...

  10. vue 中contenteditable="true"添加可编辑属性后v-model双向绑定失效的解决办法

    在项目中会遇到需要编辑单元格的双向绑定问题,v-model双向绑定会在添加contenteditable="true"属性后失效解决方法如下,亲测好用(v-html和@blur实现 ...