ARTICLE DETAIL

资讯详情

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

基于DRV8701E栅极驱动器的双路有刷电机驱动板设计:从选型到调试全解析

基于DRV8701E栅极驱动器的双路有刷电机驱动板设计:从选型到调试全解析 1. 为什么放弃L298N/TB6612选择DRV8701E先说我这个板子的来历。之前接了一个项目需求是驱动两台直流有刷电机要求PWM频率能跑到25kHz以上为了避开人耳可听频段电流能力预留到10A级别板子尺寸还不能太大。当时手头正好有L298N和TB6612的库存但仔细算了下账这俩方案根本扛不住这个需求。L298N是老前辈了双全桥理论电流2A实际连续工作1A都烫得不行。它内部用的是达林顿管饱和压降在2V左右电机电流一大功耗全堆在芯片上散热片必须有板子体积直接失控。TB6612是东芝的MOS方案性能比L298N好不少但连续电流也就1.2A左右适合小型机器人、玩具车这种工况10A对它来说是灾难。真正的破局点是DRV8701E这颗芯片。严格来说它不是电机驱动而是栅极驱动器Gate Driver内核是电荷泵加逻辑电路负责把控制信号变成足够强的栅极驱动电压再去驱动外部的大功率MOS管。负载能力由你选的MOS决定芯片本身几乎不发热这就把电流上限彻底解开了。TI这颗料内部还有电流检测放大器、PWM斩波电流调节、各种保护逻辑功能密度相当高。双路设计用两颗DRV8701E再加八个N-MOS就能搭出一块性能远超成品模块的板子成本也就几十块钱。这块板子最后做出来实际验证过供电14.8V四串锂电两路电机同时跑10A峰值热水澡温度不到60℃PWM 25kHz满载运行噪声几乎听不见SPI实时改电流阈值和增益调试体验比跳线帽爽太多。下面把这套设计从选型到坑位完整拆开讲。2. 双路驱动架构设计与方案选型2.1 为什么用“2颗栅极驱动器 8个外置MOS”而不是集成全桥市面上很多集成全桥方案比如DRV8873、BTN7970其实也做得不错但有几个问题。第一集成度高的芯片电流规格是固定的比如BTN7970标称50A实际用起来发烫严重还要外加散热片因为它把MOS和驱动做在一起整个板子的热都集中在芯片上。第二它们大多是半桥输出要么两片拼成全桥要么用内置大电流的半桥加反接保护可扩展性差。DRV8701E的思路完全反过来。它只管逻辑和栅极驱动电流路径全部避开芯片本体MOS选型很自由。低速大扭力场景选大封装低导通电阻的MOS紧凑场景选小封装散热可以分摊到PCB铜皮和MOS各自的散热焊盘上热量分布均匀不会出现单个芯片过热降额的窘境。我这边两路电机每路需要4个N-MOS组成H桥两路就是8个。有人会问4个N-MOS的H桥高侧两个怎么驱动电荷泵。DRV8701E内部自带电荷泵把VM电压升上去提供高侧MOS需要的栅源电压。这个设计把BOM复杂度和成本压下去了不需要额外的自举电路。还有个点SPI接口。DRV8701E支持SPI配置寄存器包括电流检测放大器增益、PWM斩波阈值、死区时间等调试时直接写寄存器就行不用像硬件版本DRV8701D那样靠电阻跳线改参数量产时灵活性高很多。2.2 双路板子的整体系统框图拿我这块板子举例系统划分成这么几个大块供电入口DC 6V~24V宽压输入板载大容量电解电容加陶瓷电容吸收MOS开关带来的电压尖峰。逻辑电源一颗稳压芯片把VM电压稳到5V或者3.3V给DRV8701E和MCU供电。DRV8701E的VCC引脚就是要接这个逻辑电压等会儿细说。两路驱动单元每路一颗DRV8701E加4个N-MOS组成完整的H桥正常态驱动电机正反转带PWM调速。电流采样低侧串联采样电阻信号进DRV8701E内部的CSA放大器SPI配置增益后输出SO引脚给MCU的ADC。MCU接口PWM引脚IN1/IN2、Sleep引脚、SPISCLK/SDI/SDO/nCS还可以留几个GPIO做状态反馈。电源设计这块有个细节容易被忽略DRV8701E的电荷泵工作时会有开关噪声VM脚需要至少加一个0.1uF陶瓷电容靠近芯片引脚放。大电流路径上的电解电容也不能省MOS管瞬间导通时电流变化率非常大没有储能电容的话电源线电感会导致VM电压跌落波形上全是毛刺。3. 核心硬件设计细节与元器件选型3.1 DRV8701E的引脚功能和最低系统连接先把DRV8701E的必要引脚过一遍不看Datasheet也能心里有数VM电机电源输入我的板子接了10V~20V范围Datasheet给出的工作范围记得是5.9V到45V别超。VCC逻辑供电脚这个是从VM或者外部稳压出来的一般3.3V或5V对MCU电平有要求。GH1/GL1H桥第一半桥的高/低侧栅极驱动输出。GH2/GL2同理第二半桥。四个引脚直接接MOS的栅极。SH1/SH2半桥中点也就是高侧MOS源极和低侧MOS漏极的连接点这里接电机一端。这两个引脚也是检测高侧MOS压降的输入。SN1/SN2低侧MOS源极接采样电阻到GND。IN1/IN2PWM控制输入。逻辑组合决定电机状态刹车、正转、反转、滑行。nSLEEP休眠引脚拉低后芯片进入低功耗驱动输出全部关闭。SO电流检测放大器输出接MCU ADC。SCLK/SDI/SDO/nCSSPI配置接口。数据的逻辑组合方面我用的是标准H桥模式简单列个表IN1IN2状态电机行为00低侧刹车电机两端通过低侧MOS接地急停01反转电机电流反方向10正转正常驱动11高侧刹车电机两端接VM急停注意这个模式少用高侧刹车对电源冲击大PWM调速我习惯在IN1上做PWMIN2固定电平。比如正转就是IN1PWMIN20占空比决定平均电压。不要同时对两个引脚做PWM否则死区搞不好会把MOS烧了。3.2 MOSFET选型为什么我选了IRLB3034MOS是整个系统的灵魂DRV8701E只是大脑。选MOS主要看几个参数VDS耐压、连续漏极电流ID、导通电阻RDS(on)、栅极电荷Qg、封装散热能力。我做这块板子时VM最大电压20V电机堵转电流峰值可能到12A所以留了50%以上裕量。VDS选40V以上。最后选的是IRLB3034VDS 40VID 195A这个数值比较理想化实际要看散热条件RDS(on)典型值1.4mΩQg大约60nCTO-220封装方便贴散热片。30V耐压的MOS在该工况下太危险20V电源过压一点就容易击穿40V就从容很多。DRV8701E的栅极驱动能力和Qg的关系要算一下。我记得DRV8701E的拉灌电流大概在1A附近具体值以Datasheet为准算出来的开关时间大约是Qg / Igate 60nC / 1A 60ns。这个开关速度不算特别快但对EMI反而友好电压尖峰也小。如果选的是大功率工业MOSQg上几百nC开关损耗会明显变大高PWM频率下驱动能力会不足。栅极电阻也很关键。我每路栅极串联了10Ω电阻目的有两个抑制振铃、限制di/dt。如果栅极电阻太小MOS开关瞬间电流冲击太大会产生严重的电磁干扰MCU的ADC采样都会被干扰电阻太大则开关速度太慢MOS长时间处于线性区发热明显增加。10Ω是我调出来的折中点。3.3 电流采样和CSA增益配置有刷电机控制里电流环是挡不住的痛点。DRV8701E内部集成了一个电流检测放大器外部只需要一个采样电阻。我用的采样电阻是3mΩ2512封装功率余量按最大持续电流10A算P I²R 10² × 0.003 0.3W连续运行也没问题。采样电阻压降在10A时是30mVDRV8701E的CSA放大后有几种增益可选5V/V、10V/V、20V/V、40V/V通过SPI配置。我选了20V/V这样10A对应的SO引脚电压是30mV × 20 0.6VMCU ADC参考电压如果是3.3V这个范围留了足够余量精度也够。关于CSA有个大坑采样电阻的PCB走线必须用开尔文接法。采样电阻有四个焊盘两个大焊盘是电流主路径两个小焊盘或者从焊盘单独引出细线接CSA的输入引脚这样电流路径上的铜皮电阻就不会叠加到采样信号里。我第一次打样图省事直接从主路径上拉线结果增益一大满电流时测到的电压偏了将近5%校准了半天才发现是走线电阻的问题。3.4 保护电路TVS、续流和过流有刷电机是强感性负载断电瞬间的感应电动势非常恐怖。电机电流突然切断时储能会通过MOS体二极管泄放但如果电流变化率太快寄生电感上的L·di/dt电压尖峰会直接击穿MOS。我的处理方式电机两端并联一个TVS管双向的钳位电压略高于VM具体选型用SMBJ30A30V钳位比40V耐压的MOS低能把尖峰吃掉。H桥每个MOS旁边0.1uF到1uF的高频去耦电容尽量靠近漏源极。电源输入端并联一个大容量电解470uF/35V加低ESR陶瓷电容吸收母线浪涌。DRV8701E自身还有VDS过流保护原理是检测MOS导通时漏源电压如果超过设定阈值判定为过流自动关断输出并上报。这个阈值可以在SPI寄存器里配置按MOS的RDS(on)和电路最大允许电流反推。比如3mΩ电阻对应电流保护点VDS阈值为0.6V时保护电流大约是0.6V / 1.4mΩ ≈ 428A不对这个算法只对低侧MOS有效且要配合内部逻辑理解。我在实际调试中直接用了默认配置配合测试一步步改具体过程在第5节展开。4. 开源方案参考与实战优化细节4.1 我参考的开源方案以及它的问题开源社区里DRV8701的方案不少原理图大同小异基本都是参考TI官方的EVM来画的。TI的DRV8701E-EVM是很完善的设计值得学习的有三点电源去耦的电容组合、栅极电阻的位置、采样电阻的开尔文走线。但我照着EVM画完第一版之后实测发现了几个问题问题一EVM的布局是以单路驱动为目标设计的双路板子直接照抄导致两路互相干扰。两路栅极驱动的高频开关信号叠在一起电源线上出现了差模干扰一路PWM变化时另一路的电流波形上能看到明显的串扰毛刺。解决办法是把两路的功率地分开在输入端汇合形成星形接地然后把信号地单独铺一层只在MCU附近单点连接功率地。问题二EVM用的采样电阻是2mΩ但实际我的应用电流更大发热更猛。直接把采样电阻改成3mΩ后发现CSA输出在低电流时噪声变得很厉害。后来发现是因为采样电阻的引脚焊盘面积不够热量导致电性能漂移。换成2512之后问题解决。问题三栅极驱动电压在VM电压较高时出现了明显压降。DRV8701E的电荷泵在高侧MOS开启后需要持续补充电荷。EVM在VM引脚附近放了10uF的电荷泵储能电容但我的板上这个电容距离芯片引脚走线过长等效串联电感太大。调整布局把电容贴近VM脚后波形明显变干净高侧MOS的VGS稳定在10V上下。4.2 具体优化点一栅极驱动强度与EMI平衡第一个版本的原理图我栅极电阻用了4.7Ω开关速度非常快栅极波形上升沿接近50ns。用示波器测SH点电压开关瞬间的超调量超过了5V直接把电机绝缘层打穿的惨案都有当然电机本身品质也一般。后来把栅极电阻加大到10Ω波形变圆润了超调控制在1V以内开关损耗增加了一点点但板的EMI表现好了非常多传导骚扰测试轻松过。这里分享一个经验不要迷信“栅极电阻越小越好”开关损耗和频谱尾迹是一对矛盾。如果你的应用不追求极限PWM频率把开关沿控制在100ns到200ns左右整个系统的可靠性和电磁兼容性都会好很多。我另外在后级加了一颗小的铁氧体磁珠在PWM信号线上进一步滤除高频分量。4.3 具体优化点二死区时间的争议DRV8701E内部集成了死区时间管理逻辑可以防止上下管直通。这块芯片的死区时间我记得大概在100ns左右硬件决定SPI无法调节。理论上这个死区时间没问题但实际调试时发现由于高侧和低侧MOS的栅极电荷不一样两波的关断延迟不完全一致极端情况下还是出现了短暂直通。加栅极电阻后死区效应被放大低电流时波形出现平台电机声音发闷扭矩抖动。我处理的方式死区时间尽量用芯片的默认值但通过软件在PWM切换时做了额外处理保证IN1和IN2不会在同一个时钟周期内同时变化。简单说就是PWM信号生成时加入一个软件滞后避免边沿竞争。这个优化做完后直通问题彻底消失MOS温度也降了10℃上下。4.4 具体优化点三散热设计与PCB铜皮双路10A持续电流MOS的散热处理必须认真做。我用了这几种手段结合加大MOS漏极铜皮面积正反面都铺铜过孔阵列把热量导到另一面。底层对应位置铺一大块地铜作为自然散热器实测温升比单纯靠TO-220散热片还均匀。采样电阻下方不留死铜避免涡流发热。板厚1.6mm过孔内径0.3mm外径0.6mm热过孔数量按每路15个布置。这个板块子做了2oz铜厚比常规1oz的散热能力强一倍成本也多不了几块钱。如果预算允许2oz铜厚是功率板的基本操作。5. 调试过程与常见问题排查实录5.1 第一块板子点亮记录上电之前把能踩的坑都预扫了一遍万用表量电源对地阻抗确认没有短路用可调电源限流0.5A慢慢往上加确认nSLEEP引脚被拉高再开始配置寄存器。第一次上电电流纹波稳定但电机只转了半圈就停了。查了一圈发现是SPI初始化时CSA增益没配置成功监管寄存器里默认增益是5V/V电流检测电压太小MCU读到的ADC数值一直是0误判成电流过大触发了保护。解决方法是先把增益配置到20V/V确认完成后再逐个寄存器写。另一个坑第一次用示波器测SH波形时探头地线夹子太长地环路引入大量噪声波形看起来“毛刺严重”还以为是MOS自激振荡。换上弹簧接地探头后波形干净得不像样。经验就是测量高频功率电路探头的接地方式直接决定了你看到的是真实信号还是干扰信号。5.2 运行中MOS烧毁的排查笔记踩坑实录有一版板子在满载测试时连续烧了两次低侧MOS症状完全一样GS短路。排查思路先用万用表量栅极和源极电压发现MOS的VGS在关断状态下出现了负压尖峰幅度超出了手册允许的绝对最大值。这个负压来自高边开关关闭瞬间寄生电感产生的负压毛刺叠加到低边MOS的栅极上。对策是在每个MOS的GS之间加了1N4148二极管阴极接栅极把负压钳位在-0.7V左右。同时在栅极电阻旁边并联一个1nF的陶瓷电容降低栅极阻抗减少寄生电感效应。改了之后这版板子再没烧过任何一只MOS。这类问题在集成驱动芯片的报告里不常见但外置MOS方案里非常典型大家在设计时一定要想到MOS体二极管反向恢复和寄生电感的影响。5.3 电流环纹波大排查采样结果的噪声客户反馈说电流闭环控制时电机在低速阶段有“咕咕咕”的异常声。我怀疑是电流采样噪声被MCU放大。检查SO引脚波形发现PWM开关频率处有尖刺幅度达到100mV级。我把采样电阻附近的走线改成开尔文接法、布线做了屏蔽处理之后波形峰值降到10mV以内。但低速下依然有轻微声音。深挖后发现问题出在采样点位置SO输出端没有加低通滤波30kHz的PWM纹波直接进了ADC。ADC采样瞬间如果在开关波形的高点采到的电流值会偏大。我的解法是在SO和ADC之间加了一级RC低通滤波截止频率设定在PWM频率的1/102.5kHz左右另外MCU的ADC采样触发点和PWM同步选用PWM波形的中点附近采样。这样低速段的噪声彻底消失电流环稳得一匹。5.4 常见问题速查表双路驱动板维护手册故障现象可能原因排查方法处理方案上电即大电流电源短路保护MOS击穿、极性接反断电用万用表二极管档检查八个MOS换MOS、检查TVS方向电机不动但MCU显示有电流PWM死区过大低占空比启动扭矩不足示波器测SH点波形确认有效占空比降低软件死区或增加启动boost一路工作正常另一路噪声大两路地线走线不合理耦合断开故障路单独供电测试星形接地改进信号地单点汇合SDO无输出SPI通信失败nSLEEP被拉低、VCC电压不对、引脚电平不匹配测VCC和nSLEEP检查SPI模式极性配置确认SPI模式模式1nSLEEP拉高电机电流越大采样值偏差越大采样电阻发热、开尔文走线不当测采样电阻两端温升检查PCB铜皮换大功率采样电阻开尔文布线刹车时电源电压飙升刹车能量回灌到母线示波器测VM纹波增加母线电容或改用占空比软刹车5.5 避坑经验清单不要只看理论计算上板实测必须做。比如Qg参数和实际开关损耗的关系必须用示波器看实际波形不同MOS实际参数差距很大。采样电阻的温漂是隐藏杀手。廉价采样电阻的温度系数一般在±50ppm/℃以上大电流连续工作温升30℃后就影响采样精度推荐用金属合金采样电阻温漂做到±10ppm/℃以内。SPI配置需要做回读校验。DRV8701E支持寄存器读操作写配置时最好先写入再读出来对比防止时序不够精确导致配置出错。两路驱动共用一个电源时一定要做电源隔离或至少独立去耦。否则一路刹车产生的负压会干扰另一路工作。6. 这套方案还能怎么扩展这块双路驱动模块目前已经在两个项目里跑着一个做移动底盘云台控制一个做桌面机械臂关节驱动反馈都不错。回头总结下这套“MOS外置 栅极驱动器 SPI配置”的架构延展性确实是集成全桥方案给不了的。如果后续要做三相无刷电机驱动DRV8701E这路骨架还能继续用。只需要把控制信号改成梯形波或FOC的六步换向PWM功率级换个三相逆变桥其他逻辑电源、采样、保护全都复用。哪怕不做电机驱动把DRV8701E当成一个高压大电流的开关驱动单元去驱动电磁铁、加热丝、大功率LED也是顺手的。封装尺寸上也还能再优化。现在这版板子尺寸控制在了45mm×35mm左右相比L298N的“大块头”已经小巧很多但换成贴片MOS和贴片栅极电阻后还能缩小一半。如果是做无人机或微型机器人可以考虑。最后分享一个小经验如果第一次做这类栅极驱动器方案建议先买TI官方的EVM评估板在评估板上把SPI读写、电流采样配置、问题排查路径都摸透再自己打板。EVM的文档和测试软件能省掉你一整个月的弯路。等自己的板子出来直接移植寄存器配置即可前后衔接会非常顺。
返回列表