
如果你正在玩FPV穿越机那对“电调”这个词绝对不陌生——全名电子调速器干的事情就是把电池送来的直流电变成无刷电机需要的三相交流电顺便还得听懂飞控给你的油门指令。真正让我从“买成品”走上“自己动手做”这条路的是最近连续折腾的几款电调一面是穿越机常见的FPV小电调一面是圈子里被吹得神乎其神的VESC开源电调。这篇文章不打算泛泛介绍概念而是把我手搓电调过程中踩过的坑、查过的资料、测过的数据原原本本记下来。不管你是想让自己的穿越机更“DIY”还是想给电动滑板、机器狗做一套能再生刹车的驱动这篇都应该对你有用。1. 把电调拆开看它到底怎么让电机转起来的1.1 有刷、无刷和FOC电调家族的三条技术路线很多新手第一次听“电调”其实是懵的以为所有电调长得都一样。实际上按控制方式分至少能看到三条完全不同的路线。最老牌的是有刷电调用在玩具车、老式船模上结构简单到两根线进去、两根线出来靠一个MOS管做PWM调速就行电机内部有碳刷换向。这东西没什么好折腾的价值我基本跳过。然后是无刷方波电调也就是穿越机圈最熟悉的类型BLHeli、BLHeli_S、BLHeli_32都算这一类。无刷电机没有碳刷想让转子转起来必须由电调主动切换定子线圈的通电顺序这个动作叫“换向”。方波电调的做法是六个MOS管组成三个半桥按六步顺序打开相当于给电机通三相方波电流。优点是电路简单、油门响应直接缺点是低速时有顿挫感、噪音大而且没有真正的电流闭环。最后是FOC矢量控制电调VESC就是这一类代表。FOC全称Field Oriented Control直译是磁场定向控制它不再是傻乎乎地六步换向而是实时估算出转子位置把定子电流分解成“产生力矩”和“削弱磁场”的两个分量分别闭环控制。这样电机低速也能非常顺滑还能做到能量回收刹车。代价是运算量巨大单片机的ADC、PWM、运算单元得同时高速工作所以VESC普遍用STM32F4这类Cortex-M4芯片。1.2 无论哪种电调都离不开这四个环节自己动手做电调首先得把系统看成一串链条。我认为不管FPV小电调还是VESC都逃不掉以下四个环节第一环是MCU控制核心。它负责读你的油门信号不管是PWM、DShot还是CAN然后算出下一步该开哪几个MOS管。FPV电调常用8位或者ARM Cortex-M0芯片VESC则用Cortex-M4。第二环是栅极驱动。MCU的IO口输出的是3.3V或者5V的弱信号直接推不动大功率MOS管尤其是上桥臂的MOS管源极会跟着电机相线一起浮动必须靠栅极驱动芯片把控制信号隔离并抬高到合适的电压。第三环是功率级也就是三个半桥、总共六颗MOS管。它们按高频开关把电池电压斩波成近似正弦或方波的电信号。MOS管的开关速度、导通内阻、散热能力直接决定电调能不能稳定工作。第四环是采样反馈。没有反馈的控制就是开环遇到负载变化容易失步。方波电调至少需要检测反电动势过零点来换向FOC电调则需要每相电流采样甚至还需要编码器或高频注入来估算转子角度。把这四个环节在脑子里过一遍再看任何一款成品电调的电路板基本都能对号入座。接下来先讲更贴近穿越机的FPV小电调再做VESC难度循序渐进。2. 先从FPV电调下手自制BLHeli小电调为什么靠谱2.1 目标定位先给自己定三条硬指标在画PCB之前先别急着买料。我建议先确定三个参数额定电流、支持电压、通信协议。我第一款自制FPV电调的目标是驱动1S到2S的小穿越机电机是1104级别的所以额定电流定在6A峰值10A电压范围3.7V到8.4V。通信协议我选了DShot300因为BLHeli_S固件原生支持而且DShot比传统PWM信号抗干扰能力强太多——遥控信号不是模拟电平宽度而是数字帧飞控和电调之间更像走串口。如果你只想做入门款那可以先把目标放到更保守的单电池3A级别用一个ATmega8芯片配合BLHeli固件就够了。但我的建议是直接上BLHeli_S架构用EFM8BB21F16G这颗8位单片机频率高、外设够用而且BLHeli固件对它有专门优化。额定电流不是越大越好因为MOS管耐流越大栅极电荷也越大驱动电路和布局难度会指数上升。实际上新手最容易犯的错是以为“想支持更大电流就堆更多的MOS并联”结果栅极驱动供电不足反而高频振荡发热爆炸。2.2 硬件选型和原理图思路自制FPV电调最经典的方案是MCU 栅极驱动 六颗NMOS 电源稳压 采样电阻。以我做的这款BLHeli_S电调为例物料清单大致是这样模块选型说明主控MCUEFM8BB21F16GBLHeli_S适配好QFN封装体积小栅极驱动6颗分立驱动或FD6288集成三路半桥我开始用分立驱动后来发现集成芯片更好焊MOS管半桥对管N沟道低压MOS2S电池选30V耐压6A下选5mΩ内阻稳压5V LDO给小单片机供电不能直接从电池去MCU不然压降会烧芯片采样相线反电动势采样电阻分压网络方波换向必须靠它检测过零原理图上有几个细节值得单独拿出来说。一是栅极驱动芯片的自举电容它的作用是维持上桥臂MOS管栅极电压高于源极。自举电容容量太小PWM占空比持续接近100%时电容没机会充电上桥臂驱动就失效。这个坑我亲自踩过后面会单独讲。二是MCU的ADC参考电压一定要稳定BLHeli用反电动势过零检测时参考电压如果跟着电池电压波动会直接导致换向点误判轻则电机抖动重则烧MOS。三是布局上功率环路要和控制信号分开这是后续所有调试痛苦的根源越早规划越好。2.3 焊接和布局的几条实战经验打完样之后真正折磨人的是焊接和调试。说一下我实际操作的顺序先焊MCU和稳压部分不焊MOS管然后给板子供电用下载器把BLHeli_S的bootloader烧进去确认单片机活着。再焊一片半桥用手转动电机用示波器看反电动势波形。逐步增加功率级直到六个MOS管全部上板。千万别一上来就把所有件焊完因为如果短路或焊桥你根本分辨不出是MCU问题还是MOS管问题。另外MOS管的散热和布线是决定成败的地方。FPV小电调PCB通常只有一层铝基板但很多自制板用的普通双面板那就要在MOS区域多打过孔让热量能够传导到背面铜箔。我做的第一款电调连续烧了两颗MOS最后发现并不是电流超限而是MOS管的G极走线太长导致米勒平台振荡开关损耗暴增。解决方案是在G极靠近MOS管处串联一个10Ω到22Ω的电阻抑制振铃。后来再用热成像仪测表面温度直接从110℃降到70℃左右。这个改动成本不到一毛钱收益却是巨大的。3. 硬核升级自制VESC把FOC拉到桌面3.1 为什么都想拥有一块VESC如果说BLHeli小电调是“能干活”那VESC就是“干得漂亮”。VESC这个名字来自开源作者Benjamin Vedder的缩写作者本人把全部硬件资料和固件都公开了所以你能在GitHub上找到完整的原理图、PCB文件、固件源码和调试工具“VESC Tool”。我选择做VESC的动机很实际想把电动滑板的无刷电机做成能动能回收的系统。普通方波电调刹车就是给绕组短接或者反向通电能量白白浪费VESC的FOC控制在做制动时可以直接把动能转换成电能回充到电池。这个特性对长下坡太有用了而且电流闭环让滑板起步、加速、点刹都像丝般顺滑。另一个重要原因是VESC的可配置性极强电机的极对数、电阻、电感、磁链常数这些参数都可以通过在线检测自动辨识换不同电机不需要重新写代码。3.2 做VESC 4.12还是VESC 6.x怎么选VESC硬件版本有很多最常见的DIY目标是VESC 4.12和VESC 6.x。VESC 4.12是社区里流传最广的版本用的是STM32F405VGT6主控配合DRV8301三相栅极驱动器、三颗电流采样放大器、六颗大电流MOS管。这个版本资料非常齐全嘉立创打样文件到处都能找到而且元件库成熟。缺点是DRV8301本身是QFN封装手工焊接难度中等电源部分有过热问题不适合长时间大电流满负荷运行。VESC 6.x则是原作者后来重新设计的版本MCU还是STM32F4系列但栅极驱动器换成了DRV8323类集成了更多保护PCB布局也更讲究支持更高的电池电压和更大的持续电流。但6.x的PCB是几层板而且元件密度更高手工焊接成功率较低需要更精确的热风枪操作。我给新手建议很直接如果你第一次做VESC老老实实打VESC 4.12的板子但别直接上6S电池先用3S或者4S锂电调试。因为4.12的过流保护能力其实有限一旦FOC参数没调好瞬间大电流就能把MOS炸飞。先把整个调试流程跑通了再去折腾6.x也不迟。3.3 从焊板到通电VESC制作的关键动作VESC的焊接过程跟FPV电调差别很大最难的是QFN和LQFP芯片的焊接。我一般用热风枪配合钢网先把焊膏印在PCB焊盘上然后对准芯片引脚用350℃到380℃的热风围绕芯片均匀加热看到焊膏熔化、芯片轻微自动沉下去就说明OK。千万别图省事用烙铁去拖QFN的地焊盘那会把你拖到怀疑人生。焊接完成后第一次通电前必须做三件事。第一件用万用表测量电池正负极之间有没有短路正常情况下应该能看到几kΩ以上阻值因为大电容充电需要时间。第二件接一个限流电源电流限制先调到0.1A电压设成电池电压的一半左右看看MCU能不能正常启动、有没有异常发热。第三件通过SWD接口连接STM32用ST-Link把VESC的bootloader烧进去。做完这三步你才有资格接电池。真正配置电机参数时强烈建议用VESC Tool手机App连USB或者蓝牙模块。界面里有一个“电机检测”按钮它会让电调自动发出测试波形通过采集到的电感、电阻、反电动势曲线自动算出一整套FOC参数。我在实际使用中发现电机检测时一定要把电机轴空转不要让螺旋桨或者轮子负载否则检测出的电感参数会偏大后续运行时候电流噪声会非常明显。4. 最容易翻车的三个坑驱动、采样、散热4.1 栅极驱动供电不足导致MOS管半开半断自做电调最容易出现的诡异现象是电机不转时板子温度正常一推油门MOS管就迅速发烫一两秒后冒烟。我用热成像排查过问题几乎都在栅极驱动。就像前面说的上桥臂MOS管源极电压不是接地的可能随电机相线在0V和电池电压之间跳变所以要关断或导通它栅极电压必须比源极高出一截。栅极驱动芯片内部往往通过一个自举电容把驱动电压抬到“电池电压8V”左右。如果自举电容容量偏小或者自举二极管反向恢复时间太长那么在PWM占空比接近100%或调制频率太高时自举电容没能及时充电上桥臂栅极电压掉到导通阈值附近MOS管就处于“半开半闭”的线性区。这一区间内阻巨大相当于在功率路径上串了一个大电阻热量自然集中在这里。解决办法是增大自举电容到100nF甚至220nF并且换用快恢复二极管同时限制PWM最大占空比不超过95%。如果你用的是集成三路半桥栅极驱动芯片记得检查芯片手册里推荐的自举电容取值直接抄。4.2 电流采样噪声让FOC乱抖VESC的FOC控制依赖三相电流采样一般是在低边MOS管下方串接毫欧级采样电阻再用运放把微弱电压放大到ADC范围。这个采样信号极其容易受功率级开关噪声干扰。我做过一个实验把采样电阻到运放的差分走线拉长到2厘米结果FOC跑起来后电机有明显的“咔咔”声电流波形像被毛刺糊住一样。后来我重新布局把运放尽量靠近采样电阻并且用Kelvin接法直接从采样电阻两端取信号噪声立刻小了一个量级。如果你的PCB已经定稿改不了那还可以在采样信号线上加一个RC低通滤波器截止频率取100kHz到200kHz。但要注意滤波不能太狠否则高PWM频率下电流波形失真FOC会产生额外的力矩脉动。我自己最后是折中取了150kHz效果比较满意。4.3 散热和载流能力不达标炸管只是时间问题电调的功率级设计最怕“看着能行”。很多新手以为MOS管耐流标50A就真能在50A下稳定运行完全忘记了热阻和散热路径。MOS管的数据手册里有一个参数叫“最大耗散功率”那是在壳温25℃的理想条件下测出来的。实际板子上MOS管的热量要通过PCB铜箔散掉如果散热面积不够结温轻松超过150℃然后在某一次大油门时直接击穿。我的经验是在PCB布局阶段就给每个MOS管旁边多铺铜尽量扩大底层铜箔面积并打上密密麻麻的过孔连接两层铜。人体感应不到的温度热成像仪一看全明白。如果你测到满载时MOS管表面超过90℃那就要么加散热片要么把额定电流预算缩一半。别相信“短时间超一点没事”FPV电调在激烈飞行中的瞬间电流经常达到额定值两倍余量给不够迟早要哭。5. 我的测试方法和常见故障速查表5.1 上电前必做的三项检查不管你是做FPV电调还是VESC每一次上电前都建议执行固定的安全检查流程顺序不能乱。第一项看短路。用万用表蜂鸣档量电池输入两极如果听到长鸣说明有短路或者低阻通路千万别通电。这里有个细节因为有大电容刚接万用表时可能会响一下然后不响这是电容充电属于正常如果持续响那就要检查。第二项限流上电。可调电源设定到接近电调工作电压电流限制在0.2A到0.5A通电后看电流是否稳定。正常情况下单片机待机电流只有几十毫安量级如果看到几百毫安甚至电流飙升说明某个芯片短路或MOS管已经击穿立刻断电。第三项检查固件状态。BLHeli电调用下载器读版本号VESC用ST-Link读MCU信息。固件不能让bootloader正常起来后面所有测试都是空中楼阁。我遇到过好几次芯片没被识别但各电压都正常最后发现是晶振没起振换掉就好了。5.2 常见故障速查表下面这张表是我做这几款电调时整理出来的实战速查表遇到问题可以对照着排查故障现象可能原因处理办法上电瞬间电流大、冒烟MOS管击穿、电容短路断电后量各级对地阻值逐级断开排查电机不转但能听到蜂鸣声固件OK换向信号异常检查反电动势采样网络确认PWM输出到栅极推油门后MOS管发热冒烟栅极驱动电压不足、占空比过高增大自举电容限制最大占空比检查G极电阻电机低速抖、高速正常方波换向点提前或滞后用示波器看反电动势过零微调换向延迟FOC电机检测时震动剧烈电流采样噪声大、参数错误检查采样走线重新做电机检测确保电机空转VESC连不上调试工具串口/USB电平不对、引导程序损坏用ST-Link重新烧bootloader检查USB转串口大电流时电压被拉垮电池内阻大、线径细换高倍率电池加粗电源线减少接头压降5.3 实测数据与最终建议说一点实际测量的数字作参考。我做的那款6A BLHeli_S电调在2S电池、1104电机、5043三叶桨条件下悬停电流约3.2AMOS管表面最高温度68℃满油门峰值电流7.8A能持续约10秒然后温度冲到92℃。这个结果对业余制作来说能接受但我不会拿它去飞暴力3D毕竟我没上铝基板散热能力有限。VESC那边我按4.12方案做的一块板子配3S锂电池和一套250W电机在50A方波模式下做加速测试电流波形很干净再生刹车效率大致在75%左右。FOC模式下的低速扭矩明显更好堵转测试时可以感觉到电机非常紧也没有明显的顿挫。不过这些数据都跟具体电机和负载强相关我更想强调的是只要不急着上大功率业余制作完全能跑通这套流程关键是每一步都别跳。最后再推荐一个我后来养成的习惯每次上电前我都习惯性先接一个白炽灯灯泡串联在电池正极线上做限流灯泡功率选40W到60W。如果板子有短路灯泡会常亮而正常负载下它只闪烁并熄灭这招比可调电源便宜直观多了。自从用了这个土办法我再没报销过第二块电调。自己做电调这件事技术是一部分耐心和细心才是真正的护身符。