ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

FOC硬件选材实战:MOSFET、栅极驱动与STM32选型避坑指南

FOC硬件选材实战:MOSFET、栅极驱动与STM32选型避坑指南 1. 硬件选材的整体设计思路与方案取舍做FOC磁场定向控制硬件第一步不是画原理图而是想清楚这套板子到底要驱动什么负载、跑多高的母线电压、持续电流多大、散热条件如何。我见过太多人一上来就抄别人的原理图结果MOSFET选了个导通电阻极小的型号栅极电荷却大得离谱STM32的定时器互补输出根本推不动最后波形一塌糊涂。硬件选材这件事本质上是在性能、成本、可制造性、调试便利性这四个维度之间找平衡点。1.1 从应用场景倒推硬件规格先明确你的目标场景。如果是教学验证或者小功率云台电机母线电压12V到24V持续电流3A以内那选材可以非常宽松甚至用现成的DRV8313这类集成驱动芯片就能搞定。但如果你要做的是电动工具、风机或者伺服驱动器母线电压可能到48V甚至更高持续电流十几安培这时候三相逆变桥的MOSFET选型、栅极驱动电路、电流采样方案都要重新算一遍。我个人的习惯是先列一张需求表把关键参数写死参数项典型值说明母线电压12V/24V/48V决定MOSFET耐压等级持续相电流3A/10A/20A决定MOSFET导通电阻和封装峰值电流持续电流的2倍用于过流保护阈值设定PWM频率20kHz/40kHz影响开关损耗和电流纹波控制芯片STM32F1/F4/G4决定定时器资源和ADC采样速度电流采样方式单电阻/双电阻/三电阻影响算法复杂度和成本这张表一旦定下来后面的选型就是按图索骥。比如母线48V那MOSFET耐压至少选75V或者100V留出足够的裕量。持续电流10A那导通电阻最好在10毫欧以下否则光导通损耗就有1W封装得用TO-220或者PowerPAK这种能贴散热片的。1.2 为什么STM32是FOC控制的主流选择热词里反复出现STM32这不是偶然。FOC算法对MCU的要求集中在三点定时器要能产生带死区的互补PWM、ADC要能跟定时器同步触发采样、运算能力要能在一个PWM周期内跑完Clarke/Park变换和两个PI环。STM32的TIM1和TIM8是专门为电机控制设计的高级定时器支持互补输出、死区插入、刹车输入这些功能用普通定时器模拟起来非常别扭。ADC方面STM32的注入通道组可以跟定时器的更新事件或者比较事件联动实现精确的电流采样时刻控制。至于运算能力F1系列72MHz做低速FOC勉强够用F4系列带FPU跑起来就舒服很多G4系列更是专门针对电机控制优化过带CORDIC协处理器算三角函数几乎不占CPU时间。注意如果你用的是STM32F1系列一定要确认芯片型号带高级定时器。比如STM32F103C8T6有TIM1但STM32F103C6T6就没有选型的时候别只看价格。1.3 三相逆变桥的拓扑选择三相逆变桥有几种常见拓扑三相全桥、三相半桥加电容分压、集成驱动芯片内置桥。全桥拓扑需要6个MOSFET每个桥臂上下管互补导通中间加死区时间防止直通。这种拓扑效率高、控制灵活是FOC最常用的方案。集成驱动芯片比如DRV8323把栅极驱动、电流采样放大器、保护电路都集成进去了外围电路简单适合快速验证。但集成芯片的电流能力有限通常持续电流在几安培到十几安培而且散热是个问题。如果你要做大功率还是得用分立MOSFET加专用栅极驱动芯片的方案。我个人的经验是第一版验证用集成芯片把算法跑通第二版再换分立方案优化成本和散热。这样风险最低调试周期也最短。2. 核心元器件选型细节与实操要点选型这件事数据手册上的参数是基础但真正决定成败的往往是那些手册里不显眼、但实际调试中会要命的细节。下面我按MOSFET、栅极驱动、电流采样、STM32外围这几个模块分别说。2.1 MOSFET选型的五个关键参数MOSFET是三相逆变桥的核心选型时不能只看导通电阻。我通常按以下顺序筛选第一耐压等级VDS。母线电压48VMOSFET耐压至少75V最好100V。为什么因为电机绕组是感性负载关断瞬间会产生电压尖峰加上母线电压波动实际承受的电压可能比母线高50%以上。留足裕量是保命的第一原则。第二导通电阻RDS(on)。这个参数决定了导通损耗。持续电流10ARDS(on)选5毫欧导通损耗就是10×10×0.0050.5W。如果选20毫欧损耗就是2W散热片得加大一倍。但RDS(on)越小芯片面积越大栅极电荷Qg也越大驱动难度增加。所以这是个权衡。第三栅极电荷Qg。这个参数经常被忽略但它直接决定了栅极驱动电路的驱动能力。Qg越大开关速度越慢开关损耗越大。STM32的IO口输出电流通常只有20mA左右直接驱动MOSFET栅极会非常慢。所以必须加栅极驱动芯片而且驱动芯片的峰值电流要满足Ipeak Qg / t_rise其中t_rise是你期望的上升时间。举个例子Qg50nC期望上升时间100ns那驱动电流至少需要50nC/100ns0.5A。实际选驱动芯片时留一倍裕量选1A以上的。第四封装热阻RθJA。这个参数决定了MOSFET的散热能力。TO-220封装的热阻大约60°C/WPowerPAK 5×6封装大约40°C/W。如果损耗是1W环境温度25°C那结温就是256085°C还算安全。但如果损耗2W结温就125°C了接近极限。所以大功率场合必须加散热片或者选热阻更低的封装。第五输出电容Coss。这个参数影响开关损耗和EMI。Coss越大开关过程中充放电损耗越大。在硬开关拓扑中Coss损耗是P0.5×Coss×VDS²×fsw。48V母线Coss500pF20kHz开关频率损耗就是0.5×500p×48²×20k11.5mW单个管子不大但六个管子加起来也有70mW不能完全忽略。综合以上我常用的MOSFET型号是IRF320555V/110A/8mΩ用于低压大电流场合IRF540N100V/33A/44mΩ用于48V母线中等功率场合。这两个型号便宜好买资料多适合入门。2.2 栅极驱动芯片怎么选栅极驱动芯片的作用是把STM32的3.3V逻辑信号转换成足够电流的驱动信号同时实现电平转换和死区控制。选型时关注以下几点驱动电流至少1A峰值大功率场合选4A以上。死区时间有些驱动芯片内置死区有些需要外部配置。内置死区的芯片用起来省事但灵活性差。自举电路高侧驱动需要自举电容和二极管选型时注意自举电容的耐压和容量。保护功能过流保护、欠压锁定、过热保护这些功能能救命。常用的栅极驱动芯片有IR2104半桥驱动内置死区、DRV8301三相驱动集成电流采样、EG2133国产替代便宜好用。IR2104需要外部配置死区通过RC网络调节我用下来觉得响应速度一般适合低频场合。DRV8301功能全但价格高适合做产品。EG2133性价比高但资料相对少一些。实操心得自举电容选100nF到1μF之间耐压至少25V。自举二极管选快恢复二极管反向恢复时间要短否则高侧驱动会出问题。我踩过的坑是用普通1N4148做自举二极管结果高侧波形上升沿严重变形换了UF4007之后波形立刻干净了。2.3 电流采样方案对比FOC控制需要知道三相电流采样方案有三种单电阻采样、双电阻采样、三电阻采样。单电阻采样成本最低但算法最复杂需要在PWM周期内选择特定的时刻采样而且存在盲区。双电阻采样折中成本适中算法复杂度一般。三电阻采样最简单每个桥臂下管都串一个采样电阻任意时刻都能采到两相电流第三相通过基尔霍夫定律算出来。我建议初学者从三电阻采样入手虽然成本高一点但调试简单波形直观。采样电阻的阻值选择要兼顾功耗和信噪比。持续电流10A选10毫欧功耗就是10×10×0.011W太大了。选5毫欧功耗0.5W采样电压在10A时是50mVSTM32的ADC分辨率12位参考电压3.3V最小分辨电压是3.3/40960.8mV50mV对应62个码值精度勉强够用。如果选1毫欧功耗0.1W但采样电压只有10mV对应12个码值精度太差。所以采样电阻的选择要在功耗和精度之间找平衡。我通常选5毫欧到10毫欧之间配合运放做放大。运放选INA240或者INA181增益可配置共模抑制比高适合电机控制场合。2.4 STM32外围电路的关键细节STM32最小系统包括晶振、复位、电源、调试接口。这些电路看起来简单但细节没处理好调试时会莫名其妙出问题。晶振电路8MHz主晶振加两个22pF电容负载电容要根据晶振手册调整。我遇到过晶振不起振的情况换了负载电容就好了。32.768kHz晶振用于RTC如果不用RTC可以不焊。复位电路10k上拉电阻加100nF电容复位按键并联在电容两端。这个电路很成熟照抄就行。电源电路STM32需要3.3V供电如果母线是12V或24V需要降压。用LDO比如AMS1117-3.3输入输出加滤波电容。注意LDO的压差24V降到3.3V压差20.7V如果电流100mALDO功耗就是2.07W会烫得厉害。这种情况建议用DC-DC降压到5V再用LDO降到3.3V。调试接口SWD接口只需要SWDIO和SWCLK两根线比JTAG省引脚。但注意STM32的SWD引脚默认是调试功能如果要用作普通IO需要在代码里禁用调试功能。我踩过的坑是把SWDIO配置成普通IO后再也连不上调试器了只能通过BOOT0拉高进入系统存储器启动模式用串口擦除芯片。注意STM32的BOOT0和BOOT1引脚决定启动模式。BOOT00从Flash启动BOOT01从系统存储器启动。如果程序跑飞了连不上调试器把BOOT0拉高重新上电就能用串口或者USB DFU擦除芯片。3. 实操过程与核心环节实现理论说再多不如动手焊一块板子。下面我按实际调试顺序把硬件选材到验证的完整流程走一遍。3.1 原理图设计与PCB布局要点原理图设计阶段我习惯把功率部分和控制部分分开画中间用0欧电阻或者磁珠连接。这样调试的时候可以先断开功率部分单独验证控制部分。功率部分三相逆变桥的六个MOSFET要对称布局每个桥臂的上下管尽量靠近减少寄生电感。自举电容紧贴驱动芯片放置走线要短而粗。采样电阻放在下管源极和地之间走线要开尔文连接避免走线电阻影响采样精度。控制部分STM32的晶振尽量靠近芯片负载电容对称放置。ADC参考电压引脚加100nF和10μF电容滤波。PWM输出走线远离模拟信号避免串扰。PCB布局功率地和信号地分开单点连接。MOSFET的散热焊盘要足够大最好铺铜加过孔到背面。电流采样走线要差分走线长度匹配。我画过一版板子功率地和信号地没有分开结果ADC采样噪声很大电流波形毛刺严重。后来改成单点接地噪声立刻降下来了。这个坑希望大家不要踩。3.2 焊接与上电前检查焊接顺序先焊控制部分再焊功率部分。控制部分焊完后先上电测3.3V是否正常晶振是否起振SWD是否能连上。确认无误后再焊功率部分。功率部分焊完后上电前一定要用万用表测一下三相输出对地是否短路母线正负极是否短路。我见过有人焊反了MOSFET上电直接炸管声音很响吓一跳。上电时用可调电源限流设小一点比如100mA。如果电流异常立刻断电检查。正常情况空载电流应该在几十毫安以内。3.3 互补PWM波形验证STM32的TIM1配置成中央对齐模式通道1和通道1N互补输出死区时间设为500ns。用示波器看两路波形确认死区时间是否正确上升沿和下降沿是否干净。死区时间的计算STM32的死区时间由BDTR寄存器的DTG位配置。假设定时器时钟72MHz死区时间500ns对应的计数值是72M×500n36。查手册的DTG编码表选择合适的配置。我实测下来死区时间太小会导致上下管直通电流飙升死区时间太大会导致输出波形畸变电流谐波增加。500ns到1μs是比较合适的范围具体看MOSFET的开关速度。3.4 电流采样校准电流采样电路焊好后先不接电机给一个已知电流看ADC读数是否准确。比如用电子负载拉1A电流看ADC采样值对应的电流是否接近1A。如果有偏差调整运放增益或者软件校准系数。我通常会在代码里做一个校准流程上电时采样零电流对应的ADC值作为零点偏移然后根据采样电阻和运放增益计算实际电流。这样能消除温漂和器件误差。3.5 开环测试与闭环切换硬件验证完毕后先跑开环。给一个固定的电压矢量让电机转起来看电流波形是否正弦。如果波形畸变严重检查PWM死区、电流采样相位、MOSFET开关速度。开环正常后切换到闭环。先调电流环PI参数再调速度环。电流环带宽通常设1kHz到2kHz速度环带宽设100Hz到200Hz。参数整定我一般用试凑法先加比例加到临界振荡然后降到一半再加积分消除稳态误差。实操心得调PI参数时先调电流环再调速度环。电流环没调好就调速度环会越调越乱。我习惯用阶跃响应看超调和调节时间超调控制在10%以内调节时间在几个毫秒以内就算合格。4. 常见问题与排查技巧实录硬件调试过程中遇到的问题五花八门我整理了一张速查表覆盖了大部分常见故障。4.1 上电就炸管怎么排查炸管是最吓人的故障但排查思路其实很清晰。首先断电用万用表测MOSFET的D-S之间是否短路。如果短路拆下来换新的。然后检查栅极驱动电路看驱动芯片输出是否正常。最后检查死区时间是否足够自举电路是否工作正常。我遇到过一次炸管原因是自举电容焊反了高侧驱动电压不足MOSFET工作在线性区发热严重最后炸掉。所以焊接后一定要仔细检查极性。4.2 PWM无输出或波形异常PWM无输出先检查定时器配置是否正确BDTR寄存器的MOE位是否使能。MOE位是高级定时器的主输出使能位不使能的话PWM没有输出。这个坑我踩过调了半天才发现是MOE没开。波形异常比如上升沿变缓通常是驱动电流不足。检查栅极驱动芯片的供电是否正常自举电容是否失效。如果波形有振铃可能是走线电感太大加栅极电阻可以抑制振铃但会增加开关损耗。4.3 电流采样噪声大电流采样噪声大首先检查采样电阻的走线是否开尔文连接。其次检查运放的电源滤波是否充分。再次检查ADC的参考电压是否稳定。最后检查采样时刻是否跟PWM同步采样时刻不对会采到开关噪声。我通常会在ADC采样后加一个低通滤波器截止频率设1kHz到5kHz能有效滤除开关噪声。但滤波器会引入相位延迟影响电流环带宽所以截止频率不能设太低。4.4 STM32连不上调试器连不上调试器先检查供电是否正常复位引脚是否被拉低。然后检查SWDIO和SWCLK是否被配置成普通IO。如果配置成了普通IO把BOOT0拉高重新上电用系统存储器启动模式擦除芯片。还有一种情况是芯片进入了低功耗模式调试器连不上。这时候需要拉低复位引脚同时上电让芯片保持在复位状态然后连接调试器。4.5 电机启动困难或抖动电机启动困难先检查转子初始位置检测是否准确。无感FOC需要检测转子初始位置如果检测不准启动时会抖动甚至反转。有感FOC检查霍尔传感器或者编码器的安装位置是否正确。抖动问题通常是电流环参数不合适或者电流采样有偏差。先确认电流采样准确再调PI参数。如果还是抖动检查PWM频率是否太低电流纹波太大。故障现象可能原因排查方法解决方案上电炸管死区不足、自举失效、MOSFET焊反测D-S短路、查驱动波形换管、调死区、查极性PWM无输出MOE未使能、定时器配置错误查BDTR寄存器、查时钟使能MOE、重配定时器波形振铃走线电感大、驱动电流过大看波形、查走线加栅极电阻、优化布局电流噪声大采样时刻不对、运放滤波不足看采样波形、查电源同步采样、加滤波器连不上调试器SWD被占用、低功耗模式查引脚配置、查复位拉高BOOT0、复位上电电机抖动电流环参数差、采样偏差看电流波形、查校准调PI、重新校准这张表是我调试过程中慢慢积累的每次遇到新问题就加一行。现在基本上看到现象就能猜到原因省了很多时间。4.6 元器件选型的几个避坑经验最后分享几个选型上的避坑经验。第一不要贪便宜买拆机件尤其是MOSFET和驱动芯片拆机件参数漂移严重批量生产会出大问题。第二电容要选低ESR的母线电容和自举电容尤其重要普通电解电容在高频下等效串联电阻大滤波效果差。第三采样电阻选合金电阻温漂小精度高普通厚膜电阻温漂大电流采样会随温度漂移。第四连接器要选电流余量足够的电机相线连接器如果接触电阻大发热严重长期运行会氧化。我在实际项目中还发现MOSFET的栅极电阻对EMI影响很大。栅极电阻越大开关速度越慢EMI越小但开关损耗越大。通常选10欧到100欧之间具体看开关频率和EMI测试结果。如果EMI超标先加大栅极电阻试试不行再考虑加吸收电路。这个硬件选材的内容后续还可以这样扩展把不同功率等级的方案做成模块化设计比如12V/5A、24V/10A、48V/20A三个版本共用控制部分只改功率部分。这样调试一套代码就能覆盖多个场景效率高很多。
返回列表