直流有刷电机H桥驱动从原理到DR70x实战避坑指南

发布时间:2026/10/6 18:22:57
直流有刷电机H桥驱动从原理到DR70x实战避坑指南 直流有刷电机大概是每个搞嵌入式或者硬件的人绕不开的一课。不管你是做小车、做云台、做电动推杆还是搞个自动门只要涉及到让一个东西正转反转、还得能调速最后大概率都会落到H桥加PWM这套组合拳上。但说实话我见过太多人在这上面翻车——有人烧了驱动芯片有人电机一启动单片机就复位有人PWM给下去电机纹丝不动还有人正反转切换的瞬间直接冒烟。这些问题看起来五花八门根子上其实就那么几个H桥的导通逻辑没吃透、驱动芯片的自举电容没整明白、死区时间没留够、电源和地没处理好。这篇东西我打算把直流有刷电机的H桥控制从头到尾捋一遍从最基础的原理图讲起到DR70x这类集成驱动芯片的详细用法再到PWM调速的实操细节和踩坑记录。不管你是刚入门的新手还是已经用过L298N但想升级到更靠谱方案的老手应该都能从里面找到点有用的东西。我会尽量把为什么这么做讲清楚而不是只丢一堆电路图让你自己悟。1. 先搞明白H桥到底在干什么1.1 从一个开关控制正反转说起很多人第一次接触H桥的时候脑子里想的可能是不就是四个开关嘛。对确实是四个开关但这四个开关怎么摆、什么时候开哪个、为什么不能同时开某两个这里面是有讲究的。想象一下你手里有个直流电机两根线一根接正极一根接负极电机就转。现在你想让它反着转最笨的办法是把两根线对调。但实际应用中你不可能手动去对调线所以需要一套电路来电子化地完成这个对调动作。H桥就是干这个的——它由四个开关管组成形状像字母H电机横在中间那条横杠上四个开关管分别在四个竖杠的位置。具体来说左上和右下同时导通电流从左到右流过电机电机正转右上和左下同时导通电流从右到左流过电机电机反转。这就是H桥最核心的逻辑。听起来简单但问题来了如果你不小心让左上和左下同时导通了会发生什么电源正极直接通过这两个管子短路到地瞬间大电流管子直接炸。这就是所谓的直通shoot-through是H桥最致命的错误。所以H桥控制的第一原则就是任何时候都不能让同一侧的上管和下管同时导通。这个原则衍生出了一堆东西比如死区时间、互锁逻辑、专用驱动芯片等等后面会逐一展开。1.2 四种工作状态与两种调制方式H桥的工作状态其实可以分成四种正转、反转、刹车brake和滑行coast。正转和反转刚才说了刹车是指电机两端被短接比如左上和右上同时导通或者左下和右下同时导通这时候电机相当于一个发电机反电动势会产生反向电流形成制动效果。滑行是指四个管子全部关断电机两端悬空靠惯性慢慢停下来。这两种停止方式在实际项目中区别很大。刹车停得快但电流大对电源和管子都有冲击滑行停得慢但温和。你做小车的时候如果想让车快速停住用刹车如果只是正常减速用滑行就够了。再来说调制方式。PWM调速有两种基本模式单极性调制和双极性调制。单极性是指在一个PWM周期内电机两端的电压要么是正要么是零或者要么是负要么是零电流纹波小效率高但低速时线性度差一些。双极性是指电机两端电压在正负之间交替变化低速时控制更平滑但电流纹波大损耗也大。大多数应用场景下单极性调制就够用了。具体实现方式是正转时左下管常通左上管给PWM右上和右下全关反转时右下管常通右上管给PWM左上和左下全关。这样电机在PWM的开阶段得到全电压关阶段通过下管的续流二极管续流电流连续转矩平稳。注意单极性调制下续流路径是通过下管的体二极管或者专门并联的肖特基二极管。如果你用的MOS管体二极管反向恢复特性不好建议并联一个肖特基能明显降低发热。1.3 为什么分立MOS管H桥容易炸很多人一开始会想着用四个MOS管自己搭H桥觉得这样便宜、灵活。我一开始也是这么想的直到炸了十几个管子之后才明白分立H桥的坑远比想象中多。首先是栅极驱动的问题。MOS管是电压驱动没错但栅极有电容你给它PWM信号的时候实际上是在给这个电容充放电。如果驱动电流不够MOS管就会工作在线性区也就是半开半关的状态这时候管子的等效电阻很大电流流过就会产生大量热量几秒钟就能把管子烧了。所以你需要专门的栅极驱动电路要么用三极管推挽要么用专用的半桥驱动芯片。其次是死区时间。就算你逻辑上保证了上下管不同时导通但MOS管的关断是需要时间的。如果上管还没完全关断下管就导通了瞬间直通。死区时间就是在这个切换的间隙插入一段两个管子都关断的时间通常几百纳秒到几微秒。这个时间太短了没用太长了会导致电机电流断续影响低速性能。还有就是高边驱动的问题。H桥的上管是接在电源正极上的它的源极电位会随着开关状态浮动。你要驱动它栅极电压必须比源极高出10V左右对于标准MOS管这就需要一个自举电路或者隔离电源。自举电容的选择、自举二极管的选型又是一堆坑。所以我的建议很明确除非你有特殊需求比如超高电压、超大电流、或者成本极度敏感否则直接用集成H桥驱动芯片。下面要讲的DR70x就是这类芯片里比较有代表性的一个。2. DR70x驱动芯片的引脚与内部逻辑2.1 DR70x系列到底有哪些型号怎么选DR70x不是一个单一型号而是一个系列。常见的包括DR7022、DR7023、DR7033、DR7044等等不同型号在耐压、电流能力、封装形式上有所区别。选型的时候主要看三个参数工作电压范围、持续输出电流、峰值输出电流。工作电压范围决定了你能驱动什么电机。比如DR7022一般支持2.5V到12V左右适合驱动小型的空心杯电机或者玩具电机DR7033可能支持到24V甚至更高能驱动稍微大一点的直流有刷电机。持续输出电流决定了电机正常工作时的电流不能超过多少峰值电流决定了电机启动或者堵转时能扛住多大的冲击。这里有个经验电机的堵转电流通常是额定电流的5到10倍。如果你选的驱动芯片峰值电流不够电机一堵转芯片就保护了甚至烧了。所以选型的时候不要只看额定电流一定要留足余量。我一般会选峰值电流至少是电机堵转电流1.5倍的型号。另外还要看封装。DR70x系列有SOP8、ESOP8、QFN等不同封装散热能力不一样。如果你驱动的是几百毫安的小电机SOP8就够了如果电流上到1A以上建议选带散热焊盘的封装PCB上做好散热铜箔。2.2 引脚功能逐个拆解以常见的DR70x SOP8封装为例引脚大致可以分成几组电源引脚VCC、GND、逻辑输入引脚IN1、IN2或者IN、EN、输出引脚OUT1、OUT2、以及一些辅助引脚如自举电容连接端、电流检测端等。不同型号的引脚定义可能有差异但核心逻辑是相通的。VCC和GND是芯片的供电引脚。注意这里的VCC是逻辑电源还是功率电源不同芯片定义不一样。有些芯片逻辑电源和功率电源是分开的比如VM接电机电源VCC接3.3V或5V逻辑电源。分开的好处是逻辑部分不受电机电源波动的影响更稳定。如果芯片只有一个电源引脚那就要注意电源的滤波和去耦否则电机一启动芯片就可能复位。IN1和IN2是逻辑控制输入。这两个引脚的电平组合决定了H桥的输出状态。常见的真值表是这样的IN1IN2OUT1OUT2电机状态00高阻高阻滑行01低高反转10高低正转11低低刹车有些芯片还会有一个EN引脚使能EN为低时整个芯片关断输出高阻。这个引脚可以用来做PWM调速——把EN接PWM信号IN1和IN2设定方向就能实现调速。但要注意EN的开关频率不能太高否则芯片内部逻辑可能跟不上。OUT1和OUT2是输出引脚直接接电机。这两个引脚内部就是H桥的四个开关管。注意输出引脚上通常需要并联续流二极管虽然很多芯片内部已经集成了但外置肖特基二极管能进一步降低发热。2.3 自举电容最容易被忽略的关键元件如果DR70x是NMOS H桥结构大多数集成H桥都是那么高边驱动就需要自举电容。这个电容接在芯片的BST引脚和OUT引脚之间作用是给高边MOS管的栅极提供一个浮动的电源。工作原理是这样的当低边MOS管导通时OUT引脚被拉到地自举电容通过自举二极管从VCC充电电容两端电压接近VCC。当需要导通高边MOS管时自举电容的电压被抬到OUT引脚电位之上给高边栅极提供足够的驱动电压。自举电容的容值选择很关键。太小了高边MOS管还没完全导通电荷就用完了太大了充电时间不够高频PWM下可能充不满。一般推荐100nF到1μF之间具体看芯片手册。材质建议用X7R或X5R的陶瓷电容不要用Y5V温度特性太差。自举二极管也要选快恢复的反向恢复时间要短否则在高频开关时会产生额外的损耗和噪声。常见的1N4148可以用在低频场合高频建议用BAV99或者专用的自举二极管。提示如果你发现高边MOS管发热严重、或者电机高速时突然停转八成是自举电容的问题。先用示波器看BST引脚和OUT引脚之间的电压正常应该在VCC附近波动如果电压明显偏低或者不稳定就要检查电容和二极管。3. 从原理图到PCBH桥电路的落地细节3.1 电源去耦与滤波电机一启动单片机就复位怎么破这个问题我遇到过太多次了。现象很典型电机不转的时候一切正常电机一启动单片机就复位或者显示屏闪烁或者传感器读数乱跳。根本原因是电机启动瞬间电流突变在电源线上产生了很大的电压跌落和尖峰噪声通过共用电源耦合到了控制电路。解决办法分三层电源隔离、去耦、滤波。第一层是电源隔离。如果条件允许电机电源和逻辑电源最好分开供电比如电机用12V电池逻辑用一颗LDO从12V降到5V或者3.3V。但注意LDO的输入范围要够而且电机启动时的电压跌落不能低于LDO的最低输入电压否则LDO输出也会掉。第二层是去耦。在驱动芯片的VCC引脚旁边放一个100nF的陶瓷电容越近越好最好和芯片在同一个PCB面。再并一个10μF到100μF的钽电容或者电解电容提供瞬态电流。电机电源输入端也要放一个大电容通常100μF到1000μF吸收电机启动和制动时的电流冲击。第三层是滤波。在电源线上串联一个磁珠或者小电感能有效抑制高频噪声。但注意电感的额定电流要够否则会饱和。另外可以在电机两端并联一个RC吸收电路比如100Ω加100nF减少电机换向时产生的火花和噪声。我自己的做法是电机电源入口放一个220μF的电解电容并联一个100nF陶瓷电容驱动芯片VCC放100nF加10μF逻辑电源和电机电源之间用一个磁珠隔开。这套组合下来基本上不会再出现电机一启动就复位的问题。3.2 死区时间为什么你的H桥会直通死区时间这个问题用集成驱动芯片的时候通常不用太操心因为芯片内部已经处理好了。但如果你是自己搭分立H桥或者用的是一些比较老的驱动芯片比如L298N死区时间就必须自己保证。L298N就是一个典型的例子。它内部是双H桥但逻辑输入没有互锁如果你在正转切换到反转的时候没有先让电机停一下直接翻转IN1和IN2就会有一瞬间两个上管或者两个下管同时导通直通电流瞬间飙升。我见过有人用L298N驱动电机正反转切换的时候芯片直接冒烟就是这个原因。正确的做法是在改变方向之前先把两个输入都拉低滑行或者都拉高刹车保持至少几毫秒然后再设置新的方向。这个时间不用太长但一定要有。如果你用单片机控制可以在代码里加一个延时或者用状态机来管理。对于自己搭的分立H桥死区时间通常设置在200ns到1μs之间。太小了起不到保护作用太大了会导致电机电流断续低速时抖动明显。具体值要看MOS管的开关速度和电机的电感量。一般来说MOS管栅极电荷越小、开关越快死区时间可以越短。3.3 电流检测与过流保护电机堵转是另一个常见问题。电机被卡住的时候电流会飙升到额定电流的好几倍如果不加保护驱动芯片或者电机本身都可能烧毁。所以一个靠谱的H桥电路应该有电流检测和过流保护。最简单的电流检测方式是在电机回路里串联一个采样电阻shunt resistor测量电阻两端的电压。采样电阻的阻值要小通常几十毫欧到几百毫欧否则功耗太大。比如1A电流下100mΩ电阻的功耗是0.1W还能接受如果是10A功耗就是10W显然不行。采样电阻的位置有两种高边采样和低边采样。高边采样是把电阻放在电源正极和H桥之间需要差分放大器来测量低边采样是把电阻放在H桥和地之间测量简单但会引入地电位偏移。大多数集成驱动芯片用的是高边采样内部集成了放大器和比较器。DR70x系列有些型号支持电流检测输出可以通过一个引脚输出与电机电流成比例的电压接到单片机的ADC上。这样你就能实时监测电流在软件里做过流保护。如果没有这个功能也可以在电源线上串联一个采样电阻自己搭一个比较器电路超过阈值就拉低EN引脚关断输出。注意过流保护的阈值不要设得太低否则电机正常启动时的冲击电流就会触发保护。一般建议阈值设在电机堵转电流的1.2到1.5倍。4. PWM调速的实操细节与代码实现4.1 PWM频率选多少合适PWM频率的选择是一个权衡。频率太低电机会听到明显的啸叫声而且电流纹波大转矩脉动明显频率太高驱动芯片的开关损耗增加发热严重而且自举电容可能来不及充电。对于直流有刷电机常用的PWM频率范围是1kHz到20kHz。1kHz以下会有明显的音频噪声人耳能听到嗡嗡声20kHz以上超出人耳听觉范围但开关损耗会明显增加。我一般选8kHz到16kHz之间既能避开听觉敏感频段又不会让驱动芯片太热。如果你用的是DR70x这类集成芯片手册里通常会给出推荐的PWM频率范围照着来就行。如果自己搭分立H桥还要考虑MOS管的开关速度。栅极电荷大的MOS管开关时间长PWM频率就不能太高否则管子会长时间工作在线性区发热严重。另外PWM频率和电机电感也有关系。电机电感越大电流纹波越小PWM频率可以适当降低。小型的空心杯电机电感很小PWM频率建议高一些比如16kHz以上否则电流断续严重低速性能很差。4.2 调速曲线为什么50%占空比不是半速很多人第一次做PWM调速的时候会发现给50%的占空比电机转速并不是额定转速的一半而是明显偏高。这是因为电机的转速和电压不是线性关系而是受到反电动势、摩擦力、负载等多种因素影响。电机的稳态转速公式大致是n (V - I*R) / (K * Φ)其中V是电枢电压I是电流R是电枢电阻K是电机常数Φ是磁通。PWM调速改变的是平均电压V但电流I也会随负载变化所以转速和占空比的关系是非线性的。如果你需要精确的速度控制光靠开环PWM是不够的需要加编码器做闭环控制。但大多数应用场景下开环PWM已经够用了只要知道低速时占空比需要给得比预期高一些就行。还有一个实际问题死区电压。电机有一个启动电压低于这个电压电机不转。比如一个额定12V的电机可能给到2V以下就不转了。所以你的PWM占空比从0开始增加的时候会有一段空白区电机没反应。做调速的时候要注意这个可以在代码里加一个最小占空比偏移。4.3 基于单片机的PWM调速代码框架下面给一个基于STM32或者类似单片机的PWM调速代码框架。这里假设你用两个GPIO控制方向一个定时器通道输出PWM控制EN引脚或者直接控制IN引脚。// 定义电机方向 typedef enum { MOTOR_STOP 0, MOTOR_FORWARD, MOTOR_REVERSE, MOTOR_BRAKE } MotorState; // 电机控制结构体 typedef struct { MotorState state; uint16_t speed; // 0-1000 对应 0-100% 占空比 } MotorHandle; // 设置电机方向和速度 void Motor_Set(MotorHandle *motor, MotorState state, uint16_t speed) { // 限制速度范围 if (speed 1000) speed 1000; // 先停止防止直通 HAL_GPIO_WritePin(IN1_PORT, IN1_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(IN2_PORT, IN2_PIN, GPIO_PIN_RESET); __HAL_TIM_SET_COMPARE(htim, TIM_CHANNEL_1, 0); // 根据状态设置 switch (state) { case MOTOR_FORWARD: HAL_GPIO_WritePin(IN1_PORT, IN1_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(IN2_PORT, IN2_PIN, GPIO_PIN_RESET); break; case MOTOR_REVERSE: HAL_GPIO_WritePin(IN1_PORT, IN1_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(IN2_PORT, IN2_PIN, GPIO_PIN_SET); break; case MOTOR_BRAKE: HAL_GPIO_WritePin(IN1_PORT, IN1_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(IN2_PORT, IN2_PIN, GPIO_PIN_SET); break; case MOTOR_STOP: default: // 已经拉低滑行 break; } // 设置PWM占空比 uint32_t compare (htim.Init.Period * speed) / 1000; __HAL_TIM_SET_COMPARE(htim, TIM_CHANNEL_1, compare); motor-state state; motor-speed speed; }这段代码的关键点是在改变方向之前先把所有输出拉低再设置新方向。虽然DR70x内部有互锁但养成这个习惯没坏处尤其是当你换用其他芯片的时候。另外PWM的占空比计算要注意定时器的周期值。如果定时器是向上计数的比较值等于周期值时是100%占空比等于0时是0%。有些定时器有互补输出和死区插入功能可以硬件生成死区那就更省心了。4.4 软启动让电机慢慢加速直接给电机全电压启动电流冲击很大对电源和驱动芯片都是考验。软启动就是让PWM占空比从0慢慢增加到目标值比如每10ms增加1%这样电机启动电流就平缓很多。软启动的时间取决于电机的惯量和负载。小型电机可能100ms就够了大型电机可能需要1秒甚至更长。你可以根据实际应用调整。软启动不仅能保护电路还能让机械结构受力更平缓减少冲击和噪声。实现软启动很简单就是在设置目标速度之后用一个定时器或者循环逐步增加占空比直到达到目标值。注意在加速过程中如果收到停止或者反向命令要立即中断软启动先执行停止逻辑。5. 那些年我踩过的H桥坑5.1 电机反转瞬间芯片烧毁原因与修复有一次我做一个小车项目用的是一颗国产的H桥驱动芯片参数看起来都够。正转、调速都正常但每次从正转直接切到反转芯片就烧。一开始以为是芯片质量问题换了好几家都一样。后来用示波器抓了一下电机两端的电压波形发现反转瞬间有一个巨大的反向尖峰电压超过了芯片的耐压值。原因是电机在正转的时候有惯性突然反转相当于给电机加了一个反向电压电机产生的反电动势和电源电压叠加瞬间电压可能是电源电压的两倍甚至更高。解决办法有两个一是加TVS二极管或者压敏电阻钳位电机两端的电压二是在软件里加方向切换延时先让电机滑行或者刹车到停止再切换方向。我两个都做了之后再也没有烧过芯片。TVS二极管的选择要注意钳位电压要低于芯片的耐压值但高于电源电压。比如12V系统芯片耐压20VTVS钳位电压可以选15V到18V之间。功率要够至少能吸收电机反电动势的能量。5.2 PWM调速时电机啸叫频率与电感的匹配另一个常见问题是电机在PWM调速时发出刺耳的啸叫。这通常是PWM频率落在了人耳敏感范围内2kHz到5kHz或者是PWM频率和电机的机械共振频率重合了。解决办法很简单把PWM频率调到16kHz以上超出人耳听觉范围。但要注意频率提高之后驱动芯片的开关损耗会增加如果芯片发热明显可能需要加散热片或者降低频率到8kHz左右同时接受轻微的噪声。还有一种情况是电机本身的电感太小PWM频率再高电流也是断续的这时候电机会有滋滋声。这种只能通过增加电感来解决比如在电机回路里串联一个电感或者在电机两端并联电容。但串联电感会影响电机的动态响应要权衡。5.3 低速时电机抖动死区电压与PWM分辨率低速抖动是开环PWM调速的固有问题。原因有两个一是前面说的死区电压占空比太低时电机根本得不到足够的电压二是PWM分辨率不够占空比的最小变化步长太大导致速度调节不连续。解决死区电压的办法是在代码里加一个最小占空比偏移比如占空比从5%开始才算有效。解决分辨率问题的办法是提高PWM频率或者提高定时器的计数精度。比如用16位定时器PWM分辨率可以做到很高低速时也能平滑调节。如果对低速性能要求很高那就只能上闭环控制了。加一个编码器或者霍尔传感器用PID算法调节PWM占空比低速时也能很稳。但这又是另一个话题了这里不展开。5.4 驱动芯片发热严重从波形找原因驱动芯片发热严重通常有几个原因开关损耗大、导通损耗大、或者散热设计不好。开关损耗大是因为PWM频率太高或者栅极驱动电流不够导致MOS管在开关过程中停留在高阻区的时间太长。用示波器看输出波形如果上升沿和下降沿很缓那就是驱动能力不够需要换驱动芯片或者加栅极驱动电路。导通损耗大是因为MOS管的导通电阻太大或者电流超过了额定值。检查电机的实际工作电流如果接近或者超过芯片的持续电流能力那就需要换更大电流的芯片或者降低电机的负载。散热设计不好是最容易解决的。检查PCB上的散热焊盘有没有做好过孔够不够铜箔面积大不大。如果芯片底部有散热焊盘一定要焊接到PCB的铜箔上并且多打过孔到背面的大面积铜箔。必要的时候加一个小散热片。6. 从DR70x到更复杂的电机控制方案6.1 什么时候该换用更高级的驱动方案DR70x这类集成H桥芯片适合中小功率、成本敏感的应用。但如果你的项目需要驱动更大的电机或者需要更精确的控制那就需要考虑更高级的方案了。比如栅极驱动加分立MOS管的方案适合大电流、高电压的场合。你可以选择专用的半桥驱动芯片比如IR2104、EG2133等配合大功率MOS管驱动几十安培的电机都没问题。但设计难度也相应增加需要处理自举、死区、过流保护等一系列问题。再比如专用电机驱动模块比如基于FOC磁场定向控制的驱动方案虽然主要用于无刷电机但有些也支持有刷电机。这类方案集成度高控制精度好但成本也高适合对性能要求高的场合。选择哪种方案核心看三个指标电流、电压、控制精度。电流几百毫安以内、电压12V以内、开环控制就够的DR70x这类芯片是最优解。电流几安培、电压24V以上、需要闭环控制的就要考虑更高级的方案了。6.2 仿真验证用ANSYS做直流有刷电机仿真在实际搭电路之前用仿真工具验证一下控制逻辑和电路参数能省不少时间和物料。ANSYS的Simplorer或者Maxwell可以做直流有刷电机的仿真包括电磁场分析和控制回路仿真。仿真的好处是你可以快速试不同的PWM频率、不同的死区时间、不同的电源电压看看电流波形和转矩波形怎么样而不用真的去焊板子。特别是对于大功率电机仿真能帮你提前发现潜在的问题避免烧管子。当然仿真不能完全替代实测因为仿真模型和实际电机总有差异。但作为一个辅助工具仿真能帮你快速缩小参数范围减少试错成本。我一般会在仿真里确定PWM频率和死区时间的大致范围然后在实测中微调。6.3 从有刷到无刷控制思路的延续与变化如果你已经搞定了直流有刷电机的H桥控制想进一步玩无刷电机其实很多思路是相通的。无刷电机的三相逆变桥本质上就是三个半桥控制逻辑比有刷H桥复杂但核心概念——PWM调速、死区时间、自举驱动、过流保护——都是一样的。区别在于无刷电机需要换相也就是根据转子位置依次导通不同的半桥。最简单的六步换相法就是按照一定的顺序切换六个开关状态让电机转起来。更高级的FOC控制则需要实时检测转子位置和电流用坐标变换和PID调节来实现平滑控制。如果你已经理解了H桥的死区、自举、续流这些概念学无刷控制会快很多。反过来如果你连H桥都没搞明白直接上无刷大概率会一头雾水。所以我的建议是先把有刷H桥吃透再往无刷进阶。7. 一些实用的调试技巧和工具7.1 示波器怎么用才能看到关键波形调试H桥电路示波器是必不可少的。但很多人买了示波器却不知道怎么用或者只看输出电压不看电流。其实调试H桥最关键的波形有三个电机两端电压、电机电流、驱动芯片的输入PWM信号。看电机两端电压能判断H桥的开关是否正常、死区时间是否合适、有没有异常尖峰。看电机电流能判断是否过流、续流是否正常、电流纹波大不大。看输入PWM信号能确认单片机的输出是否正确、频率和占空比是否符合预期。测电流需要电流探头或者采样电阻加差分探头。如果没有电流探头可以在电机回路里串联一个小电阻用普通探头测电阻两端电压再换算成电流。注意普通探头的地是接大地的如果测高边电流探头地不能直接接电路需要用差分探头或者隔离探头。提示测电机两端电压的时候建议用差分探头因为电机两端都是浮地的普通探头的地接上去可能会短路。如果没有差分探头可以分别测OUT1和OUT2对地的电压然后在示波器里做数学运算相减。7.2 电子负载和可调电源的配合使用调试电机驱动的时候可调电源和电子负载是很好的帮手。可调电源可以限制最大电流防止电路故障时烧毁更多东西。电子负载可以模拟不同的负载条件测试驱动电路在不同负载下的表现。我一般会把可调电源的电流限制设在电机额定电流的1.5倍左右这样即使电路有短路也不会造成太大损失。然后逐步增加负载观察电流和温度的变化。如果发现某个负载下芯片温度急剧上升那就要检查是驱动能力不够还是散热有问题。电子负载还可以用来测试电机的堵转保护。把电子负载设成恒流模式逐渐增加电流看驱动芯片的过流保护是否在预期值触发。如果没有保护或者触发值不对就要调整采样电阻或者保护阈值。7.3 热成像仪快速定位发热点热成像仪不是必需品但有了它调试效率会高很多。电路一上电哪里发热一目了然。我见过很多次芯片表面温度看起来不高但热成像仪一照发现是PCB上的某个过孔或者走线在发热说明电流密度太大了。用热成像仪的时候要注意很多元件的表面发射率不一样读数会有偏差。比如金属表面的发射率很低热成像仪测出来的温度会偏低。可以在元件表面贴一点黑色胶带提高发射率测出来的温度更准。对于H桥驱动芯片重点看芯片本体、续流二极管、采样电阻、电源滤波电容这几个地方。如果芯片温度超过80度就要考虑加强散热或者降低负载了。续流二极管发热严重说明续流电流大可能需要换更大电流的二极管或者并联肖特基。7.4 常见故障速查表现象可能原因排查方法电机不转电源未接通、EN未使能、PWM占空比为0测电源电压、测EN引脚电平、测PWM信号电机只往一个方向转方向控制引脚接错、芯片逻辑与预期不符查真值表、测IN1和IN2电平电机转速不可调PWM信号未接入、EN引脚常高测PWM引脚波形、确认EN连接芯片发热严重开关损耗大、导通损耗大、散热不良测输出波形、测工作电流、检查散热电机启动时单片机复位电源耦合、去耦不足加去耦电容、分离电源、加磁珠正反转切换时烧芯片直通、反电动势尖峰加死区、加TVS、软件延时低速抖动死区电压、PWM分辨率低加最小占空比、提高PWM分辨率电机啸叫PWM频率在人耳敏感范围调整PWM频率到16kHz以上这张表是我自己调试的时候总结的基本上覆盖了80%的常见问题。遇到问题的时候按表排查能省不少时间。8. 写在最后的一些个人体会做电机驱动这些年我最大的感受是理论很重要但动手更重要。H桥的原理图看起来很简单四个开关管而已但实际调试的时候会遇到各种各样的问题电源噪声、死区、自举、散热、EMI每一个都可能让你卡好几天。我的建议是刚开始的时候不要追求一步到位。先用集成驱动芯片把电机转起来理解PWM调速和方向控制的基本逻辑。然后逐步深入研究死区时间、自举电路、电流检测这些细节。最后再尝试自己搭分立H桥或者上更复杂的无刷控制。另外多测波形少猜。很多问题光靠想是想不明白的示波器一测就清楚了。我见过太多人凭感觉调电路调了半天没进展一测波形发现是PWM信号根本没输出。工具用好了效率能提高好几倍。最后说一句电机驱动这个领域坑是踩不完的但每踩一个坑你就对这个东西理解更深一层。希望这篇东西能帮你少踩几个坑或者至少在你踩坑的时候知道往哪个方向找原因。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询