ARTICLE DETAIL

资讯详情

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

HCR8871内置限流:有刷电机驱动板堵转保护设计与实测

HCR8871内置限流:有刷电机驱动板堵转保护设计与实测 干电机驱动这些年最怕听到“又烧了”。不管是因为负载卡死还是转子卡住只要电机堵转驱动芯片和MOS管就像鞭炮一样噼里啪啦。排查下来十有八九是堵转瞬间电流失控管子过流烧穿。MOS管烧了还能换连着MCU一起干掉就麻烦。最近用HCR8871做了一款12V有刷电机驱动板这颗芯片比较特别不需要MCU介入也不用外挂采样比较器一颗电阻就能把堵转限流做进芯片内部。这篇文章就把我对HCR8871这颗驱动芯片的堵转限流理解、电阻选型计算和实测经验完整写一遍给正在被堵转烧板折磨的同行一点参考。HCR8871并不是什么新概念但它的设计思路值得聊一聊。传统方案里过流保护要么靠MCU软件里做ADC判断要么靠外部运放和比较器搭一个保护电路前者慢半拍后者占板子、调起来费劲。HCR8871把电流采样、比较器和关断逻辑全部做进同一颗芯片只需要在外部放一颗电阻就能把堵转电流限制在设定值。下面的内容都是基于我实际测试和调试过程写的不是抄手册适合正在做有刷电机驱动板、电池工具、小型智能家居设备的工程师参考。1. 堵转烧驱动本质是反电动势消失后的电流失控1.1 堵转瞬间电流为什么能比正常高好几倍先讲理论基础。直流电机稳定运转的时候绕组在磁场里转动会产生一个反电动势。反电动势的方向和电源电压相反相当于一个和电源对着干的电压源。于是回路里的电流不是简单的电源电压除以电阻而是电源电压 - 反电动势/绕组电阻 驱动管导通电阻。正常转速下反电动势很接近电源电压电流就被限制在一个比较小的范围这也是电机能连续工作的前提。堵转就完全不一样了。转子被卡死转速为零绕组不再切割磁感线反电动势直接变成零。这时候回路里剩下的只有绕组的直流电阻和MOS管的导通电阻这两个都不是很大。12V的电机如果绕组电阻2Ω驱动管导通电阻0.2Ω堵转电流就是12V / 2.2Ω ≈ 5.45A如果绕组电阻再小一点比如0.6Ω那堵转电流能冲到15A以上。电机堵转电流与绕组电阻的关系可以看这个表电源电压绕组电阻驱动管导通电阻堵转电流12V2Ω0.2Ω约5.45A12V0.6Ω0.2Ω约15A24V2Ω0.2Ω约10.9A这个电流远超驱动芯片的正常工作范围。一般小型有刷马达驱动芯片额定电流也就2~3A堵转时十几安培灌进去就是直接踩油门撞墙。所以电机一堵转首当其冲的就是驱动管。1.2 为什么很多驱动板撑不过几秒电流失控的直接后果是MOS管发热。MOS管的耗散功率等于电流平方乘以导通电阻注意是平方。堵转电流10A时如果Rds(on)是0.1Ω耗散功率就是10W。一片SOP-8封装的热阻大概在40~60°C/W也就是说10W可以把芯片结温顶上去几百度几秒钟就烧穿。就算芯片没炸引脚和焊盘也会过热铜箔起泡、焊点开裂都见过。更麻烦的是堵转不是都能靠直觉发现。负载卡死、齿轮卡住、转子被异物堵住这些都在系统运行中随机发生。等到操作员闻到焦味板子已经没了。传统驱动芯片不带限流时只能靠驱动管硬扛普通低压MOS管的雪崩耐量有限过流时间一长热失控几乎是必然。这也是为什么很多驱动板故障率高的原因。1.3 传统软件限流的短板很多工程师的第一反应是我用MCU做软件过流保护。思路是低边串采样电阻ADC采电压超了就关PWM。听起来合理但实际响应速度是硬伤。ADC采样要几十微秒软件滤波又要时间关断还要等下一个PWM周期。对直流电机来说电流从正常值冲到十倍堵转电流只需要微秒到几十微秒级别软件根本追不上。有人用外部比较器搭硬件保护响应快了但电路复杂。运放、基准、分压电阻、比较器一大堆元件PCB面积大了成本也上去了调起来还容易出问题。HCR8871的思路就是把这一套东西浓缩进芯片检测和关断逻辑全部在芯片内部完成外面只剩一颗决定限流点的电阻。后面我就把这条链路彻底拆开讲。2. HCR8871的限流链路从镜像电流到比较器关断2.1 芯片内部是怎么感知电流的HCR8871是单通道H桥驱动内部是四颗MOSFET组成的全桥。和普通全桥驱动最大的区别是它多了一个电流检测通路。输出级的高侧或低侧MOSFET旁边芯片设计了一个小尺寸的镜像管把主功率管的电流按固定比例复制一份送到IPROPI引脚。这个复制电流非常小比如主回路5A的时候镜像电流可能只有几毫安。你用外部电阻把电流转成电压当电压达到芯片内部的基准电压比较器就翻转。比较器输出的信号直接进逻辑电路关断输出管整个过程全部在模拟域完成没有ADC代码也没有软件延时。这里有个容易误解的点这颗电阻不是直接串联在电机回路里的采样电阻而是把镜像电流转成电压的电阻。所以电阻的功率不用大普通贴片电阻就够了和那种大功率采样电阻完全不是一回事。2.2 固定关断时间的斩波过程限流比较器动作之后芯片不会傻乎乎地一直关着。关断一段时间让电流降下去然后重新导通再检测再关断这样反复循环电流就被控制在限流值附近。这个模式叫固定关断时间斩波关断时间由芯片内部定时器决定不同厂家的值不一样通常在几微秒到几十微秒。斩波的好处是堵转时电机仍然有平均电流能持续输出力矩不会一堵就彻底断电。很多实际场景需要这种特性比如电动推杆堵在死点的时候要维持一个推力同时不能烧。坏处是电机可能会啸叫。如果斩波频率落在2kHz到20kHz人耳就会听到吱吱声。这种声音在限流时出现往往是正常工作现象。如果接受不了可以考虑调整限流点或者换电机但不要试图去改动芯片内部定时器你改不了。2.3 为什么一颗电阻能决定限流值回到那颗电阻的问题。镜像电流按比例跟随主电流电阻值固定后镜像电流在电阻上产生的电压就和主电流一一对应。芯片内部基准电压是固定的比如1.2V当镜像电流在电阻上的电压超过1.2V时芯片就认为主电流到了限流点。电阻越大同一个主电流对应的镜像电压越高越容易触发限流所以限流值越小。反过来电阻越小需要更大的主电流才能触发限流值越大。这和你想象的可能不太一样不是电阻越大越安全而是电阻越大电机越容易显得“没劲”。这个设计最见功夫的地方在于闭环速度。从主电流瞬间超限到比较器关断输出延迟可能是几十纳秒到几百纳秒比软件快几个数量级。把限流做进芯片里本质上是把保护动作的时间尺度从毫秒级压到了纳秒级。这也是为什么HCR8871能在堵转场景里真正顶得住。3. 外面这颗电阻怎么算限流点设定的工程取舍3.1 计算式与示例HCR8871的数据手册上限流电阻和限流电流的关系一般可以写成RLIM K / ILIMK是芯片内部基准电压和镜像比例的乘积由芯片设计决定。这里我不写死具体K值因为不同批次和型号可能不同你拿到手册后找到那个K值就行。为了演示计算过程假设K8.8kΩ·A注意这个数只是示例实际以你的芯片手册为准。目标限流 ILIM计算 RLIM可选用标称电阻0.5A17.6kΩ17.4kΩ 或 18kΩ1.0A8.8kΩ8.66kΩ 或 9.1kΩ1.5A5.87kΩ5.9kΩ 或 6.2kΩ2.0A4.4kΩ4.42kΩ注意限流值本身有误差。电阻精度1%芯片内部基准电压有2%~5%的偏差比较器还有失调加起来实际限流点和计算值差±10%都很正常。所以目标限流值不要卡在芯片额定边缘一定要留出20%以上的余量。3.2 限流点设多少才合适先说下限。限流点一定要高于系统正常运行时的最大峰值电流。电机启动瞬间电流通常是额定电流的3到5倍如果限流点设成额定电流的1.5倍每次启动都会触发限流上电就无力甚至转不起来。你需要用示波器实测正常启动和带负载时的电流峰值再往上留30%到50%的余量。再说上限。限流点是硬指标必须低于驱动芯片的持续电流额定值。比如HCR8871如果持续输出额定电流是3A限流点设到5A那等于没保护。另外还要看电机的堵转耐受能力堵转功率等于限流值平方乘以绕组电阻限流值越大电机发热越快也许几十秒就冒烟了。工程上常用的起步公式是限流点 min(1.2倍最大正常负载电流0.8倍驱动芯片额定电流)。这个公式不是绝对但用来确定首版设计足够稳之后再根据实测温度和启动表现调整。3.3 电阻选型别只看阻值第一精度至少1%。限流点的误差有一半来自电阻用5%的电阻等于自己给自己加误差。第二温漂要关注。如果你的产品在户外或工业现场环境温度可能从-20°C到85°C普通电阻50ppm/°C已经不错但更稳妥的是选择100ppm以内的薄膜电阻避免限流点随温度漂移。第三不要选绕线电阻。绕线电阻虽然功率大但寄生电感也大在PWM开关边沿会感应出尖峰叠加到IPROPI引脚上有可能导致限流误触发。普通贴片厚膜电阻高频特性好是首选。还有一个细节限流电阻旁边如果预留一个并联位置调试时会方便很多。我习惯先在原理图里加一个空焊盘用可调电位器或者并联电阻实测确定最终值后再贴固定的精密电阻。这样就不用一次次洗板换料了。4. 把限流电阻放好PCB布局与抗干扰细节4.1 IPROPI引脚走线要当“信号线”对待很多朋友把限流电阻当成普通电阻随手一放结果限流误触发、电机声音不对、电流波形乱七八糟。问题往往不在电阻阻值而在PCB布局。IPROPI引脚走线本质上是一个高阻抗小信号节点旁边就是几安培甚至十几安培的功率回路稍微有点耦合就是灾难。布局要求很明确限流电阻尽可能贴近芯片IPROPI引脚让连接线短到不能再短。电阻的接地端、滤波电容的地都要直接回到芯片的GND引脚或者热焊盘不要绕到功率地的大电流路径上去。如果数据手册给了推荐RC滤波电路比如串联100Ω和并一个1nF电容老老实实画上去。这里补充一下有些芯片手册里IPROPI引脚内部有电流源外部电容太大反而会让响应变慢所以RC参数要按手册的推荐值来不要盲目加大滤波电容否则限流动作会变得迟钝。4.2 地弹和噪声如何把限流点带偏电机驱动电路的地线上有巨大的di/dt。功率MOSFET开关瞬间电流变化率可达每微秒几安培地线上即使只有几纳亨寄生电感也会产生几十毫伏甚至更高的电压尖峰。如果限流电阻的参考地接在这条功率地线上那么地弹噪声就会直接叠加到检测电压上。保护的办法只有一个让IPROPI的参考地远离功率地采用单点接地。芯片的GND引脚通常分为功率地和模拟地限流电阻和RC滤波的地接到模拟地或热焊盘再在芯片下方单点汇合。这样镜像电流的参考电位不被功率回路污染。另外IPROPI引脚周围尽量不要走时钟线、PWM线等跳变信号保持净空。如果实在躲不开可以在限流电阻和芯片之间加一小段包地线两边打孔形成屏蔽。这些细节看起来不起眼但往往就是限流误动作和正常工作的分界线。4.3 大电流环路的面积也要控制前面都是讲保护现在讲干扰源头。电机驱动板的大电流回路——电源正极到功率管、到电机、再回电源负极——这个环路面积越大寄生电感越大开关尖峰就越高。尖峰通过空间耦合到IPROPI轻则限流点偏移重则芯片直接误关断。布局时让VCC和GND尽量平行贴近环路像一块薄薄的传输线而不是一个大圈。电机接口的电解电容放在电源入口一颗0.1μF陶瓷电容放在芯片电源引脚旁边用来吸收高频开关噪声。实际测试的时候如果你发现电流波形上有尖锐毛刺先别怀疑芯片把示波器探头地线缩短再量一次。很多时候毛刺纯粹是测量方式引入的不是真实信号。先把测量做干净再判断电路有没有问题。5. 实测与调试堵转测试怎么做得安全又不炸板5.1 测试前的准备工作堵转测试不是直接把电机卡死然后上电那样炸板概率太高。正确的步骤是先准备一个限流可调电源。把电源的电流限制先设到计划限流值的1/3比如你算出来限流点1A电源就先限0.3A。这样即使电路出问题电流也冲不上去。电机这边用台钳夹住转轴或者用一块硬橡胶压住转子。注意电机体要固定好堵转时力矩很大别让电机飞出去。示波器建议用电流探头没有的话就在低边串0.05Ω大功率采样电阻用差分方式量电压并换算成电流。普通探头夹在采样电阻两端容易带进共模噪声波形不好看。还有一个经常被忽略的准备工作给驱动芯片上散热片。如果板子没有预留散热片安装孔至少用一只小风枪对着芯片吹。堵转测试是故意让芯片在极限状态下工作散热条件不够测试结论就不准。5.2 看波形限流斩波长什么样上电后让PWM输出常开或者给一个100%占空比电机轴已经被卡死。示波器上看到的电流应该是锯齿波电流先快速上升到限流点后断崖式下降然后停一段时间再重新上升。实际波形不会理想但因为芯片关断很快锯齿波的形状还是能看清楚的。第一步看峰值波形最高点应该接近你计算的限流值。如果偏高检查电阻精度和芯片基准电压如果明显偏低可能是电阻旁边有漏电流或者滤波电容太大拖慢了比较器。第二步看频率相邻两个锯齿波峰的时间间隔就是斩波周期。不同芯片的固定关断时间不一样通常几十kHz。如果频率太低电流起伏大电机抖动会很明显。特别提醒堵转时电流波形上的毛刺很多不要看到一个尖峰就以为限流失效。先给示波器开带宽限制比如20MHz或者看平均趋势。真正的限流保护是每个开关周期都有效的而不是偶尔一次。5.3 温度对比数据我拿一块没有限流的普通驱动板和HCR8871板子做过对比12V电机堵转电流自然状态大约6A。无限流版上电10秒芯片表面温度已经超过85°C15秒冒烟。HCR8871把限流点设到1.5A同样堵转10秒后芯片表面大概50°C出头20秒也就60°C左右。测试项无限流普通板HCR8871限流板堵转电流6A1.5A堵转10s芯片温度大于85°C约50°C堵转15s状态冒烟稳定堵转20s状态已烧毁约60°C可继续运行这里要诚实说明芯片不烧不代表电机不烧。堵转功率是限流电流在电机绕组和驱动管上一起耗散的限流点设1.5A电机还是会发热只是速度慢一些。如果你的产品可能长时间堵转光靠芯片限流不够后面还要做软件保护。6. 别把硬件限流当万能系统级堵转保护还要做6.1 硬件限流的边界HCR8871内置限流确实能防止堵转瞬间把管子冲爆但它做的事是把电流限制在一个设定值不是把堵转这个状态消除。只要电机堵着功率一直在消耗。如果你把限流点设到接近芯片上限长时间堵转照样可能热失控。硬件限流的本质是给系统争取时间不是代替系统做判断。举个例子一台直流电机额定2A你设限流点2.5A驱动芯片额定3A看起来没问题。但堵转电流2.5A乘上电机绕组电阻0.5Ω堵转功率3W电机线圈是一个封闭的铜块热量很难散出去几分钟就烫手再过一会儿可能退磁甚至烧漆包线。所以硬件限流只能解决“瞬间过流烧驱动”这一个问题。6.2 软件侧配合堵转检测可靠的系统至少要有两层硬件限流负责瞬间电流峰值软件负责判断堵转状态并主动停车。软件怎么判断堵转最简单的方式电机使能PWM输出正常但转速反馈为零或者电流持续处于限流值附近超过几百毫秒。伪代码示意if (motor_enabled pwm_duty 0) { if (speed_feedback 0 current_sense limit_threshold) { stall_counter; if (stall_counter STALL_TIMEOUT) { disable_output(); set_error_flag(); } } else { stall_counter 0; } }这里的STALL_TIMEOUT根据系统需求设有的产品要求堵转后立即停车有的允许堵转几秒。注意如果电机是永磁直流电机还可以用反电动势检测转速不一定需要编码器。6.3 针对HCR8871的几个常见误区最后说几个我见到的坑。第一有人为了“更安全”把限流电阻选得很大结果电机空载都转不起来。电阻越大限流越小没有错但限流点必须高于正常负载峰值不然它误动作比保护动作还频繁整机表现为无力、声音异常。第二把限流点设在芯片的最大额定电流上。这是最危险的操作等于把芯片推到极限边缘任何一点电阻误差或者温度漂移都可能击穿。限流点应该低于芯片持续电流的80%左右。第三完全依赖硬件限流连软件保护都不做。HCR8871是好东西但芯片能保证的是堵转时电流不失控不能保证电机和系统永远不过热。把硬件限流当成保险丝软件当作刹车两个都要有。我自己在调试时习惯先把限流电阻计算值贴上去然后用可调电源从低压慢慢往上加实测波形确认峰值接近设定值再结合温度表现微调电阻。这个流程看着慢但能避免一次炸一片板的尴尬。
返回列表