这块板子我前后摸了小半年,从最开始照着例程让电机空转,到后面为了做闭环调速,被迫把原理图从头到尾捋了一遍,功率管、栅驱、采样电阻、运放、ADC通道,每个节点都用示波器戳过。今天这篇就当是还账,把BLDC驱动板里最关键的两块内容拆开讲透:功率级电路怎么搭,采样设计为什么这么搞。文章会顺着原理图逐步走,过程中所有计算都给出具体数字,踩过的坑也一并列出来,给正准备搞无刷电机驱动、或者想从六步换相往FOC方向走的朋友做个参考。
这块板子的整体思路可以浓缩成一句话:用STM32做大脑,半桥栅极驱动芯片做肌肉,六个N沟道MOS管组成三相全桥去推电机,再从采样电阻和分压电阻里把电流、电压信息反馈回MCU。硬件上一点不花哨,但每个环节都有讲究,尤其采样部分,直接决定了电机转得稳不稳、堵转保护灵不灵敏。
1. 整体架构与设计思路拆解
1.1 驱动板在电机控制系统里的位置
先看信号流向。MCU产生六路PWM,这六路PWM不是直接去推MOS管,而是先进栅极驱动芯片,由驱动芯片完成电平转换和功率放大,再送到六个MOS管的栅极。MOS管组成的桥臂把直流母线电压“切成”三相交变电压,驱动BLDC电机运转。
采样回路的信号流向刚好相反。相电流流过采样电阻,在电阻两端形成一个毫伏级压降,这个微弱信号经过运算放大器放大后,进入MCU的ADC引脚,MCU据此算出当前相电流。母线电压则通过分压电阻网络分压,再经过RC滤波和电压跟随器,同样送进ADC。整块板子的硬件核心就是这两条链路:一条正向的功率链路,一条反向的采样链路。
用术语说,这就是典型的“强电与弱电混合系统”。功率链路走的是大电流、高电压、高dv/dt,采样链路走的是毫伏信号、微安电流。两块电路放在同一块板子上,最容易出现的问题就是采样信号被功率电路污染。这也是为什么我看一块电机驱动板,第一眼永远是看采样电路的地怎么处理、采样信号怎么走线,而不是先看主控芯片是什么型号。
1.2 为什么选“MCU+分立栅驱+MOS管”而不是集成驱动模块
正点原子这块板子没有用DRV8301、L6234这类全集成驱动芯片,而是用“半个桥驱动芯片+独立MOS管”的组合。这个选型放在学习板卡上非常合理,因为要把每一个环节暴露出来让你看清原理。三个半桥驱动芯片各管一相,六个MOS管各管一个开关,哪个环节出问题一目了然。
对比一下两种方案的差异。集成方案的优点是外围元件少、布板面积小、上下管匹配好,缺点也很明显:贵、可替换性差、一旦炸管往往整颗芯片报废。分立方案的优点则反过来,MOS管选型灵活,可以根据电机功率随时更换不同规格的管子,栅极电阻、自举电容也都能单独调整,烧了哪相换哪相,成本低得多。
对于学习和做原型验证来说,分立方案还有一层隐性好处:你可以用示波器单独测低端MOS的Vgs波形、单独看自举电容两端的电压,把每个开关动作都看得清清楚楚。这在集成方案里几乎不可能做到,因为芯片内部的栅极驱动节点你根本够不到。
1.3 这套硬件同时兼容六步换相与FOC
很多初学者把六步换相(方波控制)和FOC当成两种完全不同的硬件方案,其实用到的基本电路是完全一致的。六步换相只需要检测反电动势过零点或者霍尔信号,而FOC需要准确的相电流信息。也就是说,FOC对采样链路的要求比六步换相高得多,硬件上的差异主要就体现在电流采样环节做得够不够好。
这块板子的采样电路用了“低端采样电阻+运放放大”方案,天生就是为了伺候FOC这类需要连续相电流的应用。因为低端采样电阻在PWM的任意时刻都串联在电流回路里,只要采样时机对,就能拿到连续的电流波形,不像高端采样那样还要考虑共模电压问题。从后续扩展角度看,这套采样链路的设计余量是够的,后面想从方波控制版本升级到FOC版本,核心硬件不需要大改。
2. 功率级电路逐段拆解
2.1 三相全桥的结构与导通逻辑
三相全桥是驱动板最核心的功率拓扑。六个MOS管分成三组,每组两个管子上下串联,串联中点就是电机相线输出。上管接直流母线正极,下管接采样电阻再到地,上下管绝对不能同时导通,否则就是直通短路炸管。
具体到导通逻辑,六步换相在任何时刻都只有一个上管和一个下管导通,形成“电流从某相流入,从另一相流出”的回路。比如U相上管和V相下管导通时,电流从U相进电机,从V相流回地,电机在这一步被通电。六个换相状态轮流切换,就形成了旋转磁场。
这里有个新手特别容易误解的地方:MOS管栅极信号虽然只有高和低两个状态,但电机的相电压不是简单的方波。因为PWM在持续快速地开关,相电压是一串占空比可调的脉冲,经过电机绕组的电感滤波后,电流才会变得平滑。这也是为什么我说功率级“不花哨但讲究”——每个MOS管的开通和关断时序都要精确控制,死区时间是必须加的,否则上下管换流瞬间会有贯穿电流,轻则发热,重则直接炸管。
2.2 半桥驱动芯片如何工作:电平转换与自举原理
MCU输出的PWM高电平一般是3.3V,而驱动板上管需要让MOS管的栅源电压达到10V左右才能完全导通。低端MOS管还好说,源极接地,10V驱动电压相对好办。高端MOS管就麻烦了,源极跟着输出相电压上下跳,低的时候是0V,高的时候接近母线电压几十伏,3.3V的信号根本够不着。
半桥驱动芯片解决这个问题的办法是“自举”。芯片内部的驱动逻辑把输入信号转换成高端驱动输出,用一个悬浮的高压侧通道去驱动上管。这个悬浮通道的电源从哪里来?就是自举电容。当下管导通时,自举电容通过自举二极管从驱动芯片的电源端充到一定电压;当下管关断、上管需要导通时,电容放电,为上管的栅极驱动提供能量。
用我调试时的实际体验来解释更直观。有一段时间,板子的上管出现不规则的不导通现象,后来排查发现是自举电容焊错了封装,容量只有标称的十分之一。换回正确电容后,示波器看HO引脚对VS引脚的电压,从掉电状态恢复到稳定的11V左右,问题立刻消失。所以不要小看那颗小小的电容,它是整个高端驱动的能量来源。
2.3 自举电容与栅极电阻的参数计算
自举电容的容量怎么定?核心依据是MOS管栅极的总电荷量Qg,加上开关过程中的漏电流和驱动芯片自身的静态电流。公式不复杂:
C_boot ≥ Qg / ΔV_boot
其中Qg是MOS管栅极电荷,可以从数据手册查到,ΔV_boot是允许的自举电容电压降落。一般取0.5V到1V比较合适,降落太大会导致上管栅极电压不足,进入线性区发热。
假设选用的MOS管Qg是45nC,允许压降0.5V,那么C_boot至少需要90nF。实际工程上还要留出3到5倍余量,加上考虑电容老化和温度变化,取1μF到2.2μF比较稳妥。这里建议用X7R或X5R材质的陶瓷电容,容量随电压和温度变化小,不要用便宜的Y5V。
栅极电阻的选择同样有讲究。栅极电阻用来控制MOS管的开关速度,阻值太大,开关变慢,开关损耗上升;阻值太小,开关过快,会产生明显的电压振铃和电磁干扰。通常在10Ω到33Ω之间。我在这块板子上实测,22Ω栅极电阻配IRLR2905这类管子表现稳定,开关波形没有明显过冲。
2.4 输入保护与滤波电路
驱动板的电源入口通常不是直接接母线,而是经过一个二极管做防反接,再并联TVS管吸收浪涌,后面再接一大一小两个滤波电容。大电解电容负责储能和抑制低频纹波,小陶瓷电容负责滤高频噪声。
防反接这个设计很多人会忽略,但在实际使用中极其重要。实验室里电源线插反是高频操作事故,如果没有防反接二极管,一瞬间就可能把板子上好几颗芯片报销掉。用二极管防反接的代价是导通压降带来一点功率损耗,但对学习板来说是完全可以接受的。TVS管则是给母线电压上了一道保险,防止电机急停或者反电动势抬升母线电压时击穿MOS管。
3. 采样系统深度分析与参数计算
3.1 电流采样为什么放在低端而不是高端
低端采样就是在下管和地之间串联一颗小阻值采样电阻,电流从电机经过下管、采样电阻回到电源负极。因为电阻一端直接接地,运放的输入共模电压很低,放大电路设计简单可靠,这是它最大的优点。
高端采样虽然能直接测到相电流,但采样电阻两端的电压是悬浮在母线电压上的,动辄几十伏,需要用到昂贵的差分放大器或者隔离放大器,信号链路的成本直接翻倍。对于学习板和大多数中小功率应用场景,低端采样是完全够用的,性价比最高。
低端采样也有它的软肋:当PWM关断时,电流通过体二极管续流,此时采样电阻上可能没有电流或者电流方向反转,导致采样到的电流波形是断断续续的。所以ADC采样时机必须对齐到PWM开通且下管导通的阶段,这个同步问题我在第4章详细讲。
3.2 采样电阻阻值与运放增益的实际计算
采样电阻的阻值选择是个折中:阻值越大,信号越强,但功耗也越大,还会降低电机端电压;阻值越小,功耗小,但信号太微弱,容易淹没在噪声里。一般原则是让电阻在最大电流时的压降控制在100mV到200mV之间。
拿一个很典型的参数来算。假设电机额定电流2A,堵转电流5A,选择50mΩ采样电阻。堵转时电阻上的压降是5A × 0.05Ω = 0.25V。如果运放增益取10倍,放大后输出2.5V,在STM32的3.3V ADC量程内还有余量。如果增益取太高,比如20倍,堵转时输出5V,早就超出ADC量程了,采样值会削顶。
这里面有个新手常犯的错:只看额定电流来定增益,结果启动瞬间堵转电流一上来,运放输出直接打到电源轨,ADC读到的全是满量程。正确做法是拿最大可能电流来校核,并且留出至少20%的余量。同时要注意,运放输出端到ADC之间还要加一个小阻值串联电阻和电容组成的低通滤波,截止频率大概在几百千赫兹,滤掉开关噪声但保留电流的基波信息。
3.3 母线电压采样与分压滤波计算
母线电压采样电路在原理图上非常好认:一串电阻从母线正极拉下来,中间节点接电容到地,再接运放电压跟随器,输出进ADC。用分压电阻把几十伏的母线电压降到3.3V以内,再用电压跟随器隔离阻抗,避免ADC采样瞬间的分流影响分压精度。
以48V母线为例,假设分压电阻选51kΩ和3.3kΩ,分压比就是3.3 / (51 + 3.3) = 0.0608,48V时分压点电压是48 × 0.0608 ≈ 2.92V,在ADC量程内留了余量。这里电阻选值还有一个讲究:因为分压电阻直接消耗母线功率,阻值不能太小。51kΩ这个量级下静态电流不到1mA,功耗可以忽略。
分压点后面的RC滤波,时间常数根据PWM频率来定。20kHz的PWM,开关周期50μs,RC取100Ω和10nF,时间常数1μs,能有效滤掉高频开关噪声,又不至于让电压信号严重滞后。实际测试中,加了这个滤波电路后,ADC读到的母线电压稳定性明显改善。
3.4 温度采样与保护逻辑联动
除了电流和电压,驱动板上一般还会有一个NTC热敏电阻贴在MOS管附近,用于功率级温度监测。NTC电阻和固定电阻串联分压,温度变化时NTC阻值变化,分压点的电压跟着变化,MCU采样后就能换算成温度。
这个温度信号通常不只是拿来显示的,它要和过流保护、过压保护一起组成一套完整的保护逻辑。比如温度达到85℃时开始降功率运行,达到100℃时直接封锁PWM输出。要是没有温度保护,长时间大电流运行后MOS管热量堆积,最后的结果就是炸管。
我遇到过最典型的案例是风扇停转后没发现,电机继续带载运行,温度一路飙升到110℃以上,然后下管先击穿,紧接着母线短路,三个桥臂全部烧毁。后来在代码里加了温度保护逻辑,并且把温度阈值调低了一点,就再没出过这种事。硬件上的保护电路,配合软件上的保护逻辑,才能真正把板子保护住。
4. 原理图阅读实战:拿到图纸先看哪里
4.1 用“电源→功率→采样→控制”四步快速过图
拿到一份电机驱动板的原理图,不要从头到尾顺序读,那样会被各种外围电路绕晕。我的习惯是分成四个模块,按顺序过一遍,很快就能建立整板的轮廓。
第一步看电源:找到电源输入端子,看防反接二极管、TVS、滤波电容,然后顺着电源网络看栅极驱动芯片的供电是怎么来的,MCU的3.3V是从哪里降压来的。第二步看功率:找到三相全桥的六个MOS管,确认它们的源漏方向,找到每相输出点,确认栅极电阻和自举电容连在哪个芯片。第三步看采样:顺着每相下管的源极找采样电阻,看它连接到哪个运放,运放输出又进到哪个ADC引脚。第四步看控制:看MCU的PWM输出引脚是怎么连到栅极驱动芯片的输入端的,死区时间是在芯片外围由硬件实现还是靠MCU的定时器实现。
这套读图顺序的本质是“信号流优先”,在脑海里先建立电流从哪儿来、信号往哪儿走的大框架,再回填细节参数。实际读图时,我会在关键是节点上(采样电阻、自举电容、母线电压分压点)停下来,多停留一会儿,把对应的计算在纸上验算一遍,确认元件取值没有明显不合理。
4.2 关键元件参数速查与选型意图
工程上有个经验习惯:看到元件值,先快速判断它的“角色”,再验证取值是否合理。比如100Ω电阻出现在栅极驱动输出走线上,通常是栅极电阻,用于控制开关速度;10nF电容出现在采样运放输出端,多半是和电阻配合组成低通滤波;而一个几百μF的大电解电容出现在母线端,一定是储能电容,负责维持母线电压稳定。
我在看正点原子这块驱动板原理图的时候,会特别留意几个参数。采样电阻的阻值决定了电流采样的放大系数,栅极电阻决定了开关速度,自举电容容量决定了高端驱动能力,母线分压电阻的阻值决定电压采样精度。这四类元件在原理图上基本一眼就能分辨,读数也快,是快速评估一块驱动板设计水平的关键抓手。
顺便说一句,原理图上每一个电阻电容都对应着具体的设计意图,不是随便焊上的。如果在看原理图时遇到一个“说不出为什么”的元件,就先查它的位置和连接方式,然后回到对应的功能模块里去推,很多时侯这个元件恰恰是整个电路的精妙之处。
4.3 ADC采样时机与PWM同步的关键问题
这是采样链路里最隐蔽的坑。STM32的ADC采样需要一定时间,如果你在PWM的任意时刻都去采样电流,得到的值可能是“时有时无”“杂乱无章”的,因为低端采样电阻上只有在特定开关状态下才有电流流过。
正确的做法是让ADC触发时刻对齐到PWM载波的底部或顶部。用六步换相和FOC中常用的中心对齐PWM模式,一个PWM周期内有两个ADC触发点:在计数器归零时触发,或者在计数器到达周期值时触发。这时候对应的是下管持续导通、电流流经采样电阻的稳定窗口,采到的电流值才有意义。
我在实际调试时用过一个很笨但很有效的方法:先用示波器量采样电阻两端的电压波形,再把ADC采样完成的位置通过GPIO拉高拉低引到示波器上,对齐观察采样点是否落在了PWM导通窗口的中间区域。位置不对就调整PWM定时器的重复计数寄存器设置,直到采样点稳稳落在窗口中心。这个问题不解决,后面无论怎么调PID、改滤波参数,电机都会抖得像筛子一样。
5. 调试实录:常见问题与排查方法
5.1 电机一启动就报过流
这个现象非常典型,九成原因是电流采样链路有偏差,而不是真的有电流过流。先检查运放输出的零点是否偏了。不知道大家有没有遇到过,用万用表量运放输出,在电机静止时应该有接近0V或者某个固定偏置的电压,如果偏移很大,可能就是运放输入端的偏置电流被某个烧坏的电阻影响了。
另一个常见原因是采样时序不对。如果ADC在开关噪声最大的时刻采样,读到的电流可能是真实电流的好几倍。排查方法用我前面说的示波器对齐大法,确认采样点在PWM窗口的中心。还有一种可能就是采样电阻被大电流冲击后阻值漂移了,这个只能换电阻来验证。过流保护阈值不要设得太小,我通常把阈值放到堵转电流的1.2倍左右,既能保护MOS管,又避免正常启动电流误触发。
5.2 采样波形毛刺大、零点漂移
毛刺大说明采样到的高频噪声多,零点漂移说明运放偏置或者PCB布局有问题。先从硬件滤波下手,把运放输出端的RC低通滤波做重一点,但要注意别把电流波形的高频部分滤掉太多,否则闭环控制带宽会受到影响。
PCB布局的影响更大。正常驱动板都会做分区,功率地、模拟地、数字地先在合适位置汇合,采样电阻的地网络要走粗线直接回到母线电容负端,绝对不要让采样信号线和大电流走线平行长距离挨着走。我有一块板子是自己画的,一开始毛刺大到没法看,后来把采样电阻地线的路径改了,绕过功率部分单独回到电容负极,毛刺立刻小了一个数量级。
零点漂移则要在代码里做校准:上电时电机还没运转,先采几十次运放输出,取平均值存起来作为零点补偿基准。这个方法几乎所有商用驱动器都会用,非常有效。
5.3 上管不导通:自举电容没充起来
上管不导通的现象很容易和栅极驱动芯片损坏混淆。先用示波器看栅极驱动芯片的VB引脚和VS引脚之间的电压,正常时应稳定在11V到15V之间。如果这个电压只有几伏甚至更低,说明自举电容没有充起来,或者自举二极管损坏、电容容量严重不足。
自举电容充不上电还有一个常见原因:PWM占空比过大或者长时间保持输出。因为自举电容只在低端MOS导通时才能充电,如果占空比接近100%,低端导通时间太短,自举电容来不及补电,高端就供不上能量。这时候就要考虑是不是PWM限制设置没做好,或者控制策略本身有问题。
5.4 MOS管莫名炸管:母线尖峰与泵升电压
炸管是电机驱动调试里最让人崩溃但也最能学到东西的事故。排查炸管原因时不要只盯着管子本身,先用示波器看母线电压波形。电机急停或减速时,电机会把能量回馈到母线,导致母线电压泵升,严重时可能比电源电压高出好几倍。如果没做能量泄放和保护,高压直接击穿MOS管。
泵升电压的应对办法一般有三个方向:一是把母线电容加大,吸收一部分回馈能量;二是加电压检测电路和泄放电阻,电压超过阈值时接通电阻把能量消耗掉;三是在软件里控制减速斜率,别让电机刹得太猛。
另外还要检查栅极电阻取值是否合适,如果开关瞬间栅极电压振铃过大,导致管子进入了线性区,瞬间功耗巨大,也会炸管。这个可以用示波器看栅极波形,如果有明显的振铃和过冲,就把栅极电阻调大一点,或者加一个反向钳位二极管。
5.5 示波器实测判断采样质量的几个标准
判断一套采样系统好不好,我的经验是看三个波形:运放输出端在PWM周期内的波形是否干净、ADC采样值换算后的电流波形是否平滑、堵转瞬间电流响应是否迅速准确。
正常情况下,运放输出应该能看到清晰的锯齿状电流波形,每个PWM周期重复一次,波形包络平滑,尖刺幅度不超过主信号的5%。用串口把ADC换算后的电流数据发出来,画成波形,电流跟踪速度应该能跟上指令变化,不出现明显台阶和跳变。堵转测试时,电流应该能快速被限制到设定值,不发生振荡,也不误触发过流保护。
我一直觉得采样调试是电机驱动整个过程中最磨人的环节,它不像写控制算法那么“抽象”,也不像换MOS管那么“粗暴”,需要的是耐心、仔细和一点点玄学般的直觉。但一旦采样系统调到理想状态,后面的控制算法工作就会非常顺手,所以这个时间是值得花的。
6. 往FOC方向扩展,需要改动哪些电路
6.1 六步换相和FOC对采样需求的差异
如果现在跑的代码基于六步换相,只需要反电动势检测就能正常工作,对电流采样的利用率其实不高。但FOC需要实时的相电流重构,而且对采样时序、精度、噪声的要求都高了一个档次。硬件改动不算大,但采样的每一处细节几乎都要重新校一遍。
首先是采样时机,FOC要求在一个PWM周期内的固定时刻对两相或三相电流同时采样,这对MCU定时器和ADC的同步能力提出更高要求。其次是运放带宽,FOC的电流环带宽通常在1kHz以上,运放和RC滤波的截止频率都必须相应提高,否则电流信号会有明显相位滞后,直接影响控制效果。
6.2 从这块板子升级需要关注的重点
如果你手头就是类似正点原子这样的学习板,想往FOC方向升级,我建议按优先级做三件事。第一,把采样链路的噪声和失真解决干净,这决定了电流环能做多快。第二,确认MCU的ADC采样率是否够用,至少要在PWM每个周期内完成两相电流采样,对STM32F1系列来说,一般需要合理的DMA配置才能实现。第三,做好母线电压和温度监测,FOC长时间运行时,保护机制要比学习板时代更可靠。
如果采样电阻和运放的增益配比不够,或者运放输出噪声偏大,直接改板子上的元件参数也是可以接受的。学习板的好处就在这,哪个参数不合适就换哪个,焊盘都在,调试起来自由度比集成驱动芯片高得多。
这个方向扩展完之后,你会发现当初花在采样调校上的功夫完全没白费。电机控制的核心从来不只是那些看起来玄乎的数学变换,底层一定是一套扎实可靠、经得起实测的硬件采样系统在托底。把这套东西摸透了,换任何板子心里都有底。