ARTICLE DETAIL

资讯详情

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

Microchip高集成电机驱动:H桥与电流检测全解析

Microchip高集成电机驱动:H桥与电流检测全解析 做电机驱动的同行应该都有过这种经历明明MCU那边的控制算法写得挺顺结果一到功率级就翻车。栅极驱动要配、死区时间要调、电流采样要自己搭运放、过流保护靠软件硬扛最后PCB上一堆分立元件调试时示波器一夹全是振铃。最近Microchip放出的两款高集成电机驱动新品正好打在这些痛点上——一颗芯片把H桥/栅极驱动、电流检测运放、保护逻辑和PWM调理全装进去外围元件大幅缩减对做空心杯电机、机器人小车、泵阀和低压BLDC的工程师来说是个值得认真看看的方案。这篇文章会把这两款新品的技术思路、核心电路细节和配套软件策略拆开讲清楚同时也聊聊和L298N、TB6612这些常见模块的差异适合正在做电机驱动选型、或者想把手上的分立方案换成集成方案的工程师参考。1. 产品定位与整体设计思路1.1 两颗芯片各自瞄向什么场景先说结论这次Microchip的布局非常清楚一颗管“小功率有刷”一颗管“中功率无刷/步进”。小功率这颗目标就是空心杯电机、微型泵、电动玩具、手持工具里的微型电机工作电压基本在2V到12V之间封装小能塞进空间受限的板子。它的核心是把一个完整H桥、电流采样运放、PWM逻辑和过流/过温保护全部集成进去MCU只需要输出两路PWM或者一路PWM加方向信号电机就能转起来。另一颗则瞄准中功率三相无刷电机和步进电机应用集成度更高内部有三相栅极驱动、电荷泵、电流检测放大器和比较器可以直接搭配外部MOSFET使用适合电池供电的BLDC工具、小型风机、工业泵这类需要持续运行又对功耗敏感的场合。两颗芯片形成了清晰的搭配关系小功率的做简单驱动中功率的配合外部功率管做更大电流输出客户从低压微电机一直做到几十瓦的电机都能用同一家方案。从Microchip自己的产品线逻辑来看这两颗芯片补上了“MCU到功率级”之间最麻烦的那段。因为很多工程师在选STM32、PIC或者AVR做控制时驱动部分常常要另外找供应商不同芯片之间的电平、时序、保护逻辑都要自己去对接。现在驱动芯片和MCU做成一家方案至少在参考设计、代码库和调试工具上能少踩很多坑。1.2 为什么选择“高集成”而不是分立MOSFET方案之前做小型电机驱动很多人习惯用分立MOSFET搭H桥觉得成本低、管子可以随便选。这个思路在评估阶段没问题但到了量产和可靠性验证阶段分立方案的隐性成本会慢慢浮出来栅极驱动器的选型要考虑峰值电流和米勒平台死区时间要自己算过流保护要额外加比较器PCB布局稍不注意母线寄生电感就能让管子炸给你看。集成方案就是把这些“经验活”全部固化到芯片内部外部需要关心的只剩电源、逻辑输入、采样电阻和电机。当然集成方案不是没有代价。首先是灵活性下降你不能随便换更大电流的MOSFET来硬扛负载其次是单颗成本通常比分立方案略高。但换个角度算账省下的PCB面积、调试时间、物料种类和故障率对大多数中小批量产品来说综合成本反而更低。尤其是空心杯电机这类低电感、高转速负载对驱动器的开关速度和过流响应要求很苛刻自己搭分立电路很难做到芯片内部那种纳秒级关断这就是高集成方案的核心价值。2. H桥与电流检测运放读懂芯片内部的关键电路2.1 H桥的基本工作逻辑先说小功率那颗芯片里的H桥。所谓H桥就是四个开关管接成“H”形状电机接在中间横臂上。两个上管分别接电源正极两个下管分别接地通过对角导通来改变电机电流方向从而实现正反转。实际工作时不能四个管子全开否则就是电源到地直通瞬间烧毁所以芯片内部必须做死区控制——也就是在切换导通管时先关断当前导通的管子等一小段安全时间再打开另一只。对于使用者来说你不需要自己去搭那四个管子但要理解芯片输入的逻辑。典型接法是一个PWM引脚控制调速一个方向引脚控制正反转还有一个使能引脚控制整个桥的通断。有些芯片也支持独立半桥模式两个输入分别控制左右桥臂这样可以用一个H桥同时驱动两台直流电机。这些工作模式通常由芯片的输入引脚电平组合决定选型时要确认是否兼容你MCU上现有的引脚资源。H桥内部的同步整流也值得注意。电机是感性负载PWM关断瞬间电流不能突变必须给续流回路。很多集成芯片用的是同步整流即PWM关断期间由MOSFET的沟道而非体二极管来续流这样压降小、发热低。这一特性对空心杯电机特别重要因为空心杯电机电感量很小电流纹波大如果靠体二极管续流效率会很难看芯片和电机都会发烫。2.2 H桥接运算放大电路到底有什么用不少初学者看到电机驱动芯片内部框图里有个运放不理解为什么要加这么一块。其实这个运放存在的唯一目的就是处理电流采样电阻上的微弱信号。H桥底部通常会串联一个毫欧级的采样电阻电机电流流过这个电阻时会产生一个很小的电压比如10A电流配5毫欧电阻压降也只有50mV。这么小的信号直接送给MCU的ADC一是分辨率不够二是极易受功率地噪声干扰。运算放大电路在这里起到三个作用一是放大把几十毫伏的小信号放大到ADC适合采集的电压范围比如0到3.3V二是滤波通过外围电容把电流信号中的高频开关噪声滤掉三是电平平移有些运放结构还能把双极性的电流信号转换为单极性输出让MCU可以判断电机是正转还是反转。用个生活化类比电流采样就像在一根很细的线上量距离直接用肉眼读刻度肯定误差巨大运放就是那把放大镜把刻度放大到你读得清、记得准。没有这把放大镜你后面做的所有限流、堵转保护、转矩估算都是空中楼阁。现在很多集成驱动芯片把这个放大镜直接内置了你只需要在外部放一个采样电阻和两个增益设定电阻甚至在部分型号里连增益电阻都做好了直接输出一个与电流成比例的电压。2.3 采样电阻布局与增益设定的实操细节虽然芯片集成度高但采样电阻和运放的增益电阻这些“外围”仍需自己接。这里有一条铁律采样电阻必须靠近芯片的采样引脚用开尔文接法单独走线不能和功率回路共用一根粗线。因为采样电阻两端如果有功率电流流过PCB铜箔本身的电阻也会产生压降混入采样信号里导致电流读数偏高偏低保护误动作。我曾经见过一个案子采样电阻和功率地线共用了一段3厘米长的走线空载电流读数就有0.8A的误差怎么调增益都拉不回来最后切开铜皮单独飞线才解决。增益电阻的选择则取决于你的采样范围和ADC参考电压。比如采样电阻取10毫欧最大目标电流5A那么满量程压降是50mV如果希望满量程时运放输出2.5V留一点裕量需要的放大倍数是50倍。有些芯片的运放增益是固定的有些需要外部电阻设定后者在量产时就要注意电阻精度和温漂误差会直接影响过流保护点。我的习惯是先设定一个偏保守的保护阈值实测带载波形后再微调而不是一上来就按理论值把增益拉满。3. 软件侧配合PWM调速与保护程序的设计思路3.1 空心杯电机的PWM频率选择芯片选定之后软件端第一件事就是定PWM频率。空心杯电机因为有转子惯量小、电感量小的特点PWM频率不能太低。如果PWM频率在几百赫兹电流纹波会非常大电机会发出尖锐的啸叫而且换向火花会加速电刷磨损。我自己做微型无人机桨叶电机时一般把PWM频率放在20kHz以上一是避开人耳可听范围二来电流纹波明显减小。但同时要注意MCU的PWM分辨率会随频率升高而下降比如工作在64MHz的MCU20kHz PWM下分辨率大约只有12位左右如果频率升到100kHz分辨率可能就掉到不够用了。对于铁芯有刷电机因为本身电感大电流连续性好PWM频率可以适当低一些8kHz到20kHz之间都能接受。但低频率会让电流纹波变大对采样电流做滤波时要权衡延迟。这里有一个通用经验采样电流的滤波时间常数不要超过PWM周期的十分之一不然电流环响应会滞后太多容易造成堵转保护不及时。3.2 电流反馈的读取与软件滤波不管芯片内置运放有多好送到MCU ADC的电流信号总会有噪声。ADC采样时机建议与PWM同步在PWM导通中间点采样这样采到的是电流纹波的平均值附近。很多MCU支持PWM触发ADC采样也就是在PWM定时器溢出或匹配事件时自动启动转换省了中断里反复等待的麻烦。软件滤波方面我的做法通常是在同步采样的前提下再加一阶低通滤波公式大概是filtered_value filtered_value * 0.9 raw_value * 0.1系数可以根据实际噪声调整。如果要做堵转保护不能直接看瞬时电流而要看一段时间内的平均电流比如连续50ms电流超过额定值的150%就认为堵转需要进入保护流程。这个时间和阈值不能一刀切因为电机启动瞬间电流本来就很大如果把启动电流误判为堵转设备一上电就保护也是问题。3.3 用PIC16F实现过流保护的状态机驱动芯片内部有硬件比较器可以快速关断输出但MCU侧仍然需要一套保护状态机来决定“何时恢复、何时彻底停机”。以PIC16F系列为例可以先把内部比较器配置为参考电压比较采样电流一旦超过阈值就触发中断中断里立刻关闭PWM输出。此时不要立即自动恢复而应该进入一个故障等待状态等100ms再尝试重启。如果多次重启仍然过流就锁死输出等待人工断电或上位机指令。一个简化版的伪代码逻辑是这样的typedef enum { RUN, FAULT_WAIT, FAULT_LOCK } state_t; void motor_control_isr() { if (overcurrent_flag) { PWM_Disable(); state FAULT_WAIT; fault_timer 100; // 100ms后尝试恢复 } } void motor_control_main_loop() { switch (state) { case RUN: PWM_Update_Duty(target_speed); break; case FAULT_WAIT: if (fault_timer 0) { if (current_reading() limit_threshold) { PWM_Enable(); state RUN; } else { retry_count; if (retry_count 3) state FAULT_LOCK; } } break; case FAULT_LOCK: PWM_Disable(); // 等待外部复位指令 break; } }这段代码里最容易被忽略的是PWM的重新使能时序重新使能前一定要确认电流已经降下来而不是时间一到就开。如果电机此时仍然堵转一开PWM就会再触发过流反复重启容易把驱动芯片或电机烧坏。另外故障锁死后最好通过串口或LED给出明确指示方便现场排查这个细节在量产设备里特别重要。4. 从L298N、TB6612到新集成驱动选型的现实问题4.1 几类常见驱动方案的特性对比很多电子爱好者入门时用的都是L298N、L293D或者TB6612模块这些模块在教学中非常经典但和新一代高集成驱动芯片放在一起比较差距就很明显了。方案典型电压最大电流集成度主要痛点适合场景L298N5V-35V2A峰值分立功放H桥压降大、发热严重、开关速度慢教学实验、简单小车L293D4.5V-36V0.6A双H桥电流小、内置续流二极管压降大小电流玩具、教学TB66122.7V-13.5V1.2A双H桥逻辑电流有限无内置保护小型机器人小车Microchip新集成驱动小功率2V-12V数A级H桥运放保护货期/价格需确认空心杯电机、手持设备Microchip新集成驱动中功率6V-48V外部MOSFET决定三相栅驱运放保护需自配MOSFETBLDC、步进、风机、泵从表格里能看出一个趋势L298N这类方案在工作电压范围上并不差但它的功率管饱和压降太大大电流下的发热和损耗是硬伤。TB6612做得小巧逻辑电平兼容好但电流规格限制了使用上限。新的集成驱动则把运放、保护、PWM统统做进去在外围元件数量上至少能少掉十几个电阻电容这对产品小型化的意义不言而喻。4.2 替换现有驱动模块时最容易踩的坑如果你现在用的是TB6612模块想换成Microchip这颗小功率驱动有几个地方需要特别核对。一是逻辑电平老模块很多是3.3V和5V兼容新芯片虽然也兼容但输入引脚的拉电流能力可能不同MCU引脚驱动不足时要加缓冲。二是PWM模式有的芯片是“一路PWM一路方向”有的是“两路PWM独立半桥”代码里的定时器配置和输出逻辑都要改不能直接把TB6612的库函数搬过来用。三是芯片的休眠/待机引脚别悬空按数据手册接法处理好否则可能出现上电不工作或者静态电流异常。另一个隐形问题是散热焊盘的处理。小封装芯片底部的散热焊盘不只是一个电气连接点更是主要的散热通道PCB上必须有对应的铜皮和过孔阵列。我做样机时就吃过亏手里这颗芯片第9脚和底部焊盘是同一个网络结果layout时图省事只连了一个过孔电机一跑起来芯片热到烫手电流稍大就触发过温保护后来重新铺了铜皮和阵列过孔才好转。集成驱动省的是分立元件但热设计这门功课一点都省不掉。5. 从零搭建一块驱动板的实操注意点5.1 最小系统电路的接线步骤花点时间讲一下如何用这颗小功率集成驱动搭出最小系统步骤其实不复杂但每一步都有讲究。第一步电源输入。芯片的VM引脚电机电源和VCC引脚逻辑电源要分开走线两者之间各放一个10uF陶瓷电容加0.1uF高频电容。陶瓷电容要尽可能靠近芯片引脚距离超过3mm效果就会打折扣。电机的启动电流瞬间很大电源电压会被拉低如果电源离得远建议在VM引脚再加一个100uF电解电容做储能。第二步逻辑接口。把MCU的PWM、方向、使能引脚分别接到芯片对应引脚中间不需要串联电阻除非MCU和驱动芯片的电压域不一致这时候要用电平转换。注意上电时序先给逻辑电源再给电机电源很多芯片要求逻辑电源先稳定否则内部逻辑可能进入未知状态。第三步采样电阻。按前面说的开尔文接法采样电阻两端的走线分别引到芯片的采样引脚不能在电阻下面走功率线。在采样电阻两端并联一个几十皮法的电容做高频滤波电容太大会让电流信号变圆滑影响过流保护的响应速度这个取舍要平衡。第四步电机接线。电机两根线可以直接接到芯片的OUT1、OUT2但电机本身是噪声源如果电机引线较长建议在电机端子处并联一个0.1uF瓷片电容和一个小电感做EMC滤波。否则传导发射可能过不了认证也容易让MCU复位。5.2 调试时示波器该看哪些点硬件焊好之后先别急着写完整代码。上电后先确认逻辑电源电压正常、待机电流在数据手册范围内。然后用示波器同时夹住PWM输入和电机输出空载点动看输出波形是否跟随输入。很多集成芯片内部有灌入死区/延时输出沿会比输入沿略晚这个正常但如果输出上升沿出现明显振铃就要检查电源去耦和地线回路。接着看电流采样输出。用示波器DC耦合夹住运放输出引脚在电机堵转时应该能看到电压突然抬高这个抬升值要和采样电阻、增益的理论计算值吻合。如果实测比理论低很多多半是采样电阻焊错或者运放增益配置不对如果比理论高先怀疑地线噪声耦合。最后再带载测试把电流波形和速度波形对应起来确认没有异常的毛刺和振荡。5.3 常见问题与排查速查表这里把我在调试集成驱动时遇到过的典型问题整理成一张速查表方便大家遇到类似现象时快速定位。现象最可能原因排查方向上电即过流保护电机线短路、H桥直通、使能引脚电平错误断开电机量电压检查输入逻辑确认EN引脚状态电流采样读数明显偏高采样电阻走线和功率地共用、参考电压不准改用开尔文接法核对ADC参考电压电流采样读数偏低采样电阻阻值不对、增益电阻错焊万用表量电阻按数据手册重新计算增益轻载时芯片发热严重散热焊盘没焊好、PWM频率过低导致开关损耗大检查底部焊盘焊接、提高PWM频率电机低速抖动死区时间/换向逻辑问题、PWM分辨率不够调整PWM频率或增加分辨率确认方向切换逻辑一加负载就触发过温散热设计不足、电流超过实际规格增大铜皮面积检查负载电流是否超标偶尔上电不转逻辑电源和电机电源上电时序问题调整上电时序增加逻辑电源先稳定的延时6. 一些个人体会这颗芯片真正改变的是什么如果你过去几年一直用分立元件做电机驱动第一次用这种高集成度芯片时最直观的感受不是板子变小了而是调试过程变得“无聊”了——以前PWM一开就炸管、一堵转就烧驱动的情况变少了。芯片把最危险的功率级部分用内部电路保护起来让工程师能把精力集中在控制算法和系统行为上。这个变化对产品开发节奏的影响很大样机从画板到跑通的时间能缩短不少。不过我也要说句公道话集成驱动不是万能灵药。它救不了不合理的供电设计也替代不了对电机本身特性的理解。空心杯电机也好、普通有刷电机也罢你仍然得知道负载的启动电流、堵转电流和温升曲线才能设定好保护阈值。芯片给了你一整套“安全网”但真正决定产品能不能长期可靠运行的还是你对系统整体的把握程度。最后分享一个我在评估板阶段经常用的小技巧新芯片到手后第一件事不是看数据手册里的绝对最大额定值而是先找官方的应用笔记里关于“电路板布局建议”那一章照着里面的推荐布局画一版最小系统板。等板子跑起来再逐步改动观察参数变化。很多集成驱动芯片的“秘密”都藏在官方参考设计里比自己埋头琢磨PCB布局省力得多。这次Microchip的两款新品如果配套的评估板和示例代码到位应该也能让你少走不少弯路。
返回列表