ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

[BLHeli-S]1. EFM8最小系统板测试BLS固件

2026/8/4 8:55:29 拓冰建站 浏览量
[BLHeli-S]1. EFM8最小系统板测试BLS固件 0. 环境- win10笔记本- EFM8BB21核心板- arduino nano1. 制作下载器1.1 打开软件BLHeliSuite.exe1.2 打开arduino- Make interfaces- Port: COM7 USB Serial Port1.3 烧录下载器固件- Make interfaces - Make Arduino Interface Boards - Arduino Board: Nano w/ATmega328 - Baud: 57600 - 点击 Arduino 4way-interface - Select Interface Options - 保持默认勾选 SLIABS and ATMEL switchable (for c2, BLHeli or SK Bootloader) - OK - 4wArduino_Nano__16_PD3PD2v20006.hex - 打开 - Confirm - Do you want to flash your Arduino Nano w/ ATmega328 at COM7 with: 4wArduino_Nano__16_PD3PD2v20006.hex - Yes我手上的Arduino nano是old bootloader的是57600波特率的。新的用115200。1.4 选择BLHeliSuite.exe - Select ATMEL / SILABS Interface - SILABS C2(4way-if)1.5 参考[1]BLHeli电调固件烧录工具C2下载器制作方法https://blog.csdn.net/weixin_45031928/article/details/136254726[2]MKSESC BL45A V1.0 Manualhttps://github.com/makerbase-motor/MKS-BLheli[3]BLHeli_S电调 调试过程https://zhuanlan.zhihu.com/p/7054965402. 烧录BLS2.0 固件代号说明The first letter indicates the MCU pin (J for EFM8BB21F16G-C);The second letter is L or H (L represents 24MHz MCU, H represents 48MHz MCU);The last two numbers represent the FETs switching dead time. The unit is 20.4ns.Somefield effect transistor drivers have adaptive field effect transistor dead timecontrol. For these MOS transistors, 00 is used to represent the field effecttransistor switching dead time.2.1 烧录BLHeliSuite.exe - SiLabs ESC Setup - Read Setup - Confirm: ESC#1 seems to be erased before. Do You want to Flash it with BLHeli Firmware? - Yes - Flash Assistant for Target ESC #1: - Flash to: J-H-30 - OK - WARNING - Yes2.2 重启BLHeliSuite.exe- SiLabs ESC Setup- 点击 Restart ESC3. 观察开关信号这里观察3相逆变桥的门级信号。死区时间switching time指逆变桥相同桥臂上下两个MOS管为了避免同时导通而预留的开关时间。3.1 J-H-30死区时间J-H-30死区时间 600ns。3.2 J-H-50死区时间J-H-50死区时间 1000ns。3.3 读取参数PWM会全部高电平这里是逻辑分析仪显示引脚全部是高电平。但是逻辑分析仪无法识别引脚是否高阻。我还是尽量避免在线修改参数了不知道会不会炸管。3.4 连接遥控器连接遥控器遥控器油门调节时PWM变化4. 编译固件测试4.0 环境keil c51 arm4.1 keil打开keilD:\Keil\mdk5\UV4\UV4.exe4.2 新建工程keil - Project - New uVision Project- Create New Project- E:\Workspaces\mdk\BLHeli_S\mdk\BLHeli_S- 保存- Select Device for Target- efm8bb21f16g-qfn20- OK- uVision- Copy SILABS_STARTUP.A51 to project Folder and Add File to Project?- 否4.3 准备源码把BLHeli-master.zip\BLHeli-master\BLHeli_S SiLabs拷贝到E:\Workspaces\mdk\BLHeli_S\mdk\BLHeli_S SiLabs4.4 添加源码到keilkeil - 点击图标File Extensions, Books and Environment- Project Items- Target 1 改名为 EFM8BB21F16Gkeil - 点击图标File Extensions, Books and Environment- Project Items- EFM8BB21F16G- Groups- Source Group 1- Files:- 添加 E:\Workspaces\mdk\BLHeli_S\mdk\BLHeli_S SiLabs\BLHeli_S.asm4.5 修改 BLHeli_S.asm4.5.1 引脚;**** **** **** **** **** ; Select the port mapping to use (or unselect all for use with external batch compile file) ;ESCNO EQU A_ ;ESCNO EQU B_ ;ESCNO EQU C_ ;ESCNO EQU D_ ;ESCNO EQU E_ ;ESCNO EQU F_ ;ESCNO EQU G_ ;ESCNO EQU H_ ;ESCNO EQU I_ ;ESCNO EQU J_ ;ESCNO EQU K_ ;ESCNO EQU L_ ;ESCNO EQU M_ ;ESCNO EQU N_ ;ESCNO EQU O_ ESCNO EQU P_ ;ESCNO EQU Q_ ;ESCNO EQU R_ ;ESCNO EQU S_ ;ESCNO EQU T_ ;ESCNO EQU U_ ;ESCNO EQU V_ ;ESCNO EQU W_ ;ESCNO EQU X_ ;ESCNO EQU Y_ ;ESCNO EQU Z_ ;ESCNO EQU A_X_ ; Requires MCU_48MHZ2 ;ESCNO EQU B_X_ ; Requires MCU_48MHZ2 ;ESCNO EQU C_X_ ; Requires MCU_48MHZ2 ;ESCNO EQU D_X_ ; Requires MCU_48MHZ2 ;ESCNO EQU E_X_ ; Requires MCU_48MHZ24.5.2 主频;**** **** **** **** **** ; Select the MCU type (or unselect for use with external batch compile file) MCU_48MHZ EQU 14.5.3 死区时间;**** **** **** **** **** ; Select the fet deadtime (or unselect for use with external batch compile file) FETON_DELAY EQU 50 ; 20.4ns per step4.6 编译出hexkel - Project - Options for target- Output- 勾选 Create HEX File- OK最终还是没有使用自行编译的。用了BLHeliSuite程序内自带的已经编译好的固件。参考[1]BLHeli源码https://github.com/bitdump/BLHeli [2]无刷电调--BLHELI_S的学习笔记https://blog.csdn.net/weixin_49813749/article/details/107823870 [3]【Quad FPV】BLDCBLHeli_S从硬件PCB设计到Keil编译、下载https://blog.csdn.net/qq_41100189/article/details/119832506 [4]小牛/blheli_s_keilhttps://gitee.com/red_niu/blheli_s_keil/tree/master [5]开源文档教程/KEIL编译BLHeli_S正确方式指南https://gitcode.com/Open-source-documentation-tutorial/a9dd7/blob/main/README.md