1. 项目缘起与整体设计思路
智能车竞赛里,电机驱动板是绕不开的一道坎。很多队伍在调试阶段发现车子跑起来一顿一顿的、弯道响应慢半拍、电机发热严重,追根溯源,问题往往不在控制算法,而是驱动板本身没设计好。我这次做的双路电机驱动板,核心驱动芯片选的是DRV8701,一颗单通道 H 桥栅极驱动器,配合外置 MOS 管组成完整的 H 桥功率级。两块 DRV8701 并排布局,就能独立控制左右两个直流有刷电机,实现差速转向。
为什么不用现成的 L298N 或者 TB6612 模块?这是很多新手第一个会问的问题。L298N 是老牌方案,内部双 H 桥,接线简单,但它的导通压降大得离谱,典型值在 1.8V 到 3V 之间,大电流下发热非常夸张,效率低。TB6612 比 L298N 好不少,导通内阻小,支持 PWM 频率更高,但它本质是一颗集成 MOS 的驱动芯片,持续电流能力有限,通常在 1.2A 左右,峰值 3.2A,对于稍微大一点的电机或者需要瞬时大扭矩的场景就力不从心了。DRV8701 不一样,它只负责驱动外置 MOS 管的栅极,功率级完全由你选的 MOS 决定。你选 IRF3205,那就是 110A 的电流能力;你选 AO3400,那就是小电流紧凑方案。灵活性是它最大的优势,而且外置 MOS 的导通内阻可以做到毫欧级别,发热控制远好于集成方案。
这次设计的定位很明确:双路独立驱动、支持 7.4V 到 12V 供电、持续电流 5A 以上、峰值 15A、支持 20kHz 以上 PWM 频率、板载电流采样、带完整保护逻辑。目标是用在智能车竞赛的 B 型车模或者自制车模上,驱动 RS-380 或者类似的直流有刷电机。整板尺寸控制在 45mm × 35mm 以内,四层板设计,方便固定在车模底盘上。
整体架构上,我把板子分成几个功能区:左侧是电源输入和滤波,中间是两路独立的 DRV8701 驱动电路,右侧是电机输出端子和电流采样网络,底部是控制信号接口。这种分区布局的好处是功率路径短、信号路径清晰,减少强弱电之间的干扰。电源输入先经过一个防反接 MOS 和 TVS 管,然后进入大容量电解电容和陶瓷电容组成的滤波网络,再分别供给两路 H 桥。每路 H 桥由四个 N 沟道 MOS 管组成,DRV8701 负责驱动上桥臂和下桥臂的栅极,内部集成了电荷泵,所以上桥臂不需要额外的自举电容,这一点比 IR2104 那种半桥驱动器方便很多。
控制接口方面,每路 DRV8701 需要三个信号:PH/EN 或者 PWM 加方向,具体取决于你配置的模式。DRV8701 支持两种控制模式,一种是 PH/EN 模式,PH 控制方向,EN 控制使能或者 PWM;另一种是 PWM 模式,两个输入分别控制上下桥。我选的是 PH/EN 模式,因为智能车的控制逻辑通常是方向加 PWM 调速,这种模式最直观。另外还有 nSLEEP 引脚用于低功耗休眠,nFAULT 引脚用于故障反馈,这两个信号我都引出来了,方便主控监测驱动板状态。
注意:DRV8701 的供电范围是 5.9V 到 45V,但逻辑电平是 3.3V 兼容的,可以直接和 STM32 或者 TC264 这类主控连接,不需要电平转换。这一点在选型时很关键,省去了额外器件。
2. 核心电路细节与关键参数解析
2.1 DRV8701 外围电路设计要点
DRV8701 的外围电路不算复杂,但有几个地方容易踩坑。先看电源引脚,VM 是电机供电输入,VCP 是电荷泵输出,需要接一个 1μF 的陶瓷电容到 VM,这个电容必须是 X7R 或者 X5R 材质,耐压至少 25V。我见过有人用 Y5V 的电容,结果温度一高容量掉得厉害,电荷泵工作不稳定,上桥臂驱动波形直接畸变。VCP 和 VM 之间的电容是电荷泵的飞跨电容,布局时要尽量靠近芯片引脚,走线越短越好。
GVDD 引脚是栅极驱动电压输出,典型值 10V 左右,需要接一个 1μF 到 10μF 的电容到地。这个电压决定了 MOS 管的栅极驱动幅度,直接影响导通内阻。GVDD 电压越高,MOS 管导通越充分,但也不能超过 MOS 管的 VGS 最大值。大部分逻辑电平 MOS 管的 VGS 最大是 ±20V,10V 驱动完全没问题。如果你选的 MOS 管是标准电平的,VGS 阈值在 4V 左右,10V 驱动也能让它完全导通。
SH 引脚是上桥臂源极,也就是 H 桥的输出节点,需要连接到上桥臂 MOS 的源极和下桥臂 MOS 的漏极。这个节点是功率开关节点,dv/dt 很高,布局时要特别注意,走线要短而粗,减少寄生电感。寄生电感大了会导致开关瞬间电压尖峰,严重时直接击穿 MOS 管。我一般会在这个节点加一个 RC 吸收电路,10Ω 电阻串联 1nF 电容到地,抑制高频振铃。
GH 和 GL 分别是上桥臂和下桥臂的栅极驱动输出,各串联一个 10Ω 到 22Ω 的栅极电阻。这个电阻的作用是限制栅极充电电流,控制开关速度。电阻太小,开关速度快,但 EMI 大、振铃严重;电阻太大,开关损耗增加,MOS 管发热。我实测下来,20kHz PWM 频率下,15Ω 的栅极电阻是比较平衡的选择。上桥臂和下桥臂的栅极电阻可以选一样的,也可以下桥臂稍微小一点,因为下桥臂的源极接地,开关行为更可控。
2.2 功率 MOS 选型与 H 桥布局
MOS 管的选择直接决定了驱动板的电流能力和发热水平。我选的是IRF3205,N 沟道,VDSS 55V,RDS(on) 8mΩ,ID 110A。这个管子有点大材小用,但胜在便宜、好买、耐造。实际工作时,电机持续电流 5A,峰值 15A,IRF3205 的导通损耗是 I²R,5A 时是 0.2W,15A 时是 1.8W,加上开关损耗,总体发热在可接受范围内。如果你追求更小的体积,可以选AO3400或者SI2302这类 SOT-23 封装的 MOS,但电流能力会降到 5A 以下,适合小功率场景。
H 桥的布局是 PCB 设计的重头戏。四个 MOS 管组成一个 H 桥,上桥臂两个,下桥臂两个。布局时要把上桥臂 MOS 放在靠近电源输入的一侧,下桥臂 MOS 放在靠近电机输出的一侧,这样功率路径最短。每个 MOS 管的漏极和源极走线要尽量宽,我一般用 80mil 到 100mil 的线宽,或者直接铺铜。如果是四层板,功率路径走在顶层和底层,中间两层分别是地和电源平面,这样寄生电感最小。
提示:H 桥的四个 MOS 管不要对称布局,而是要按照电流流向布局。电流从电源正极进入,经过上桥臂 MOS,到电机,再经过下桥臂 MOS,回到电源负极。布局时让这个环路面积最小,是降低 EMI 和电压尖峰的关键。
自举电容的问题前面提过,DRV8701 内部集成了电荷泵,不需要外部自举电容。但电荷泵需要外部飞跨电容,就是 VCP 和 VM 之间的那个 1μF 电容。这个电容的布局非常关键,必须紧贴芯片,走线长度控制在 5mm 以内。我见过有人把这个电容放在板子另一头,结果上桥臂驱动电压不足,MOS 管工作在线性区,几分钟就烧了。
2.3 电流采样与保护电路
电流采样是智能车控制里的重要环节。有了电流反馈,你可以做力矩控制、堵转保护、电流环 PID。DRV8701 本身不带电流采样,需要外置采样电阻。我在每路 H 桥的下桥臂源极和地之间串了一个5mΩ 的采样电阻,用差分运放放大后送给主控 ADC。5mΩ 的阻值选择是权衡的结果:阻值太大,功耗和压降大;阻值太小,信号弱,容易被噪声淹没。5A 电流下,5mΩ 产生 25mV 压降,功耗 0.125W,用 2512 封装的合金电阻完全能承受。
差分运放我选的是INA240,专门为电流采样设计的,共模抑制比高,支持 -4V 到 80V 的共模电压,增益有 20V/V、50V/V、100V/V 几个版本。我用的是 50V/V 的版本,5A 电流下输出 1.25V,正好在 3.3V ADC 的量程内。INA240 的 REF 引脚接 1.65V 基准,这样正负电流都能采样,不过智能车场景下电机电流基本是单向的,REF 接 GND 也可以。
保护电路方面,DRV8701 自带过流保护、过温保护、欠压锁定。过流保护的阈值由外接采样电阻和内部比较器决定,具体公式在数据手册里有。我设置的是 20A 触发过流保护,对应采样电阻上的压降是 100mV。过温保护是芯片内部结温超过 150°C 时自动关断,这个不需要外部配置。欠压锁定是 VM 低于 5.9V 时关断输出,防止 MOS 管在低电压下工作在线性区。
另外我在电源输入端加了一个SMBJ15A 的 TVS 管,钳位电压 24.4V,用来吸收电机反电动势和电源浪涌。电机在急停或者换向时会产生很高的反电动势,如果没有 TVS 管吸收,很容易超过 MOS 管的 VDSS 导致击穿。SMBJ15A 的响应时间在皮秒级,能有效保护功率级。
3. 实操过程与核心环节实现
3.1 原理图绘制与元件选型清单
原理图绘制我用的是嘉立创 EDA,主要是因为它元件库全、封装库和立创商城打通,选型方便。整个原理图分三页:第一页是电源输入和滤波,第二页是两路 DRV8701 驱动电路,第三页是电流采样和接口。分页的好处是逻辑清晰,评审的时候一目了然。
电源输入部分,我用了XT30 接口,支持 15A 持续电流,比 JST 或者杜邦线靠谱得多。输入后先经过一个AO3401 P 沟道 MOS做防反接,栅极通过一个 10kΩ 电阻下拉到地,源极接输入正极,漏极接负载。正常接入时,MOS 管导通,压降只有几十毫伏;反接时,MOS 管关断,电路不通。这个防反接方案比二极管好,二极管有 0.7V 压降,大电流下发热严重。
滤波网络用了两个 470μF 的电解电容并联,再加四个 10μF 的陶瓷电容和两个 100nF 的陶瓷电容。电解电容负责低频滤波,陶瓷电容负责高频去耦。布局时电解电容靠近电源输入,陶瓷电容靠近 DRV8701 的 VM 引脚。这种大小电容搭配的方式,能覆盖从几十赫兹到几十兆赫兹的噪声频段。
DRV8701 的外围元件清单如下:
| 元件 | 参数 | 数量 | 说明 |
|---|---|---|---|
| DRV8701 | 栅极驱动器 | 2 | 每路一颗 |
| IRF3205 | N-MOS | 8 | 每路 H 桥四颗 |
| 采样电阻 | 5mΩ 2512 | 2 | 每路一颗 |
| INA240 | 电流采样运放 | 2 | 增益 50V/V |
| 飞跨电容 | 1μF 25V X7R | 2 | VCP 到 VM |
| GVDD 电容 | 4.7μF 16V X7R | 2 | GVDD 到地 |
| 栅极电阻 | 15Ω 0603 | 8 | 每路四个 |
| 去耦电容 | 100nF 50V X7R | 4 | VM 和 GVDD 各两个 |
| TVS 管 | SMBJ15A | 1 | 电源输入保护 |
| 防反接 MOS | AO3401 | 1 | P 沟道 |
注意:采样电阻一定要选合金电阻,温漂小。普通厚膜电阻的温漂在 100ppm/°C 以上,电流采样精度会随温度漂移。合金电阻的温漂在 50ppm/°C 以内,5mΩ 的阻值在 50°C 温升下变化不到 0.5%。
3.2 PCB 布局与走线实战
PCB 布局我采用的是四层板,叠层结构是:顶层信号和功率、第二层地平面、第三层电源平面、底层信号和功率。四层板比两层板贵不了多少,但性能提升明显。地平面完整,回流路径短,EMI 小很多。智能车竞赛对 EMI 有要求,四层板是稳妥的选择。
布局顺序是这样的:先放 XT30 接口和电源滤波电容,再放两路 DRV8701 和 H 桥,最后放电流采样和信号接口。两路 H 桥左右对称布局,中间用地平面隔开,减少相互干扰。每路 H 桥的四个 MOS 管按照电流流向排列,上桥臂两个 MOS 靠近电源平面,下桥臂两个 MOS 靠近电机输出端子。
功率走线全部用100mil 以上的线宽,或者直接铺铜。我实测过,100mil 的 1oz 铜厚走线,载流能力在 5A 左右,温升 10°C。如果走 15A 峰值电流,线宽要加到 200mil 或者用 2oz 铜厚。为了保险,我在功率路径上直接铺铜,不依赖走线宽度。铺铜的时候注意,功率地和信号地要分开,最后在电源输入处单点连接,这就是常说的星型接地。
信号走线方面,DRV8701 的控制信号线(PH、EN、nSLEEP、nFAULT)走 6mil 到 8mil 线宽,尽量短,远离功率走线。如果空间允许,在信号线两侧包地,减少串扰。电流采样运放的差分输入线要走等长、靠近,最好走成差分对,减少共模干扰。INA240 的输出线走模拟信号,远离 PWM 信号线,避免耦合噪声。
过孔的使用也有讲究。功率路径上的过孔要多打几个,每个过孔载流能力在 1A 左右,5A 电流至少打 6 个过孔。过孔孔径用 0.3mm 到 0.4mm,太大占空间,太小加工成本高。信号过孔用 0.2mm 到 0.3mm 就够了。过孔不要打在焊盘上,除非做塞孔工艺,否则焊接时锡会流走过孔,导致虚焊。
3.3 焊接调试与上电测试
焊接顺序是先焊矮的元件,再焊高的元件。先焊 MOS 管、电阻、电容,再焊 DRV8701,最后焊接口和电解电容。DRV8701 是 HTSSOP 封装,引脚间距 0.65mm,焊接时容易连锡。我的做法是先用烙铁给焊盘上锡,然后放芯片,用热风枪 300°C 吹,锡融化后芯片自动对齐。吹的时候不要用力压芯片,表面张力会让它自动归位。吹完后用放大镜检查引脚,有连锡的地方用助焊剂和吸锡线清理。
上电测试分三步:第一步,不焊 MOS 管,只焊 DRV8701 和外围元件,上电测 GVDD 电压。正常应该是 10V 左右,如果偏差超过 0.5V,检查飞跨电容和 GVDD 电容。第二步,焊上 MOS 管,不接电机,用示波器看 GH 和 GL 的波形。给 EN 引脚 20kHz PWM 信号,GH 和 GL 应该有互补的方波输出,死区时间在 100ns 左右。如果波形畸变或者没有输出,检查 nSLEEP 是否拉高、nFAULT 是否正常。第三步,接电机,从小占空比开始慢慢加大,观察电流采样输出和电机运转情况。
提示:第一次上电一定要用限流电源,限流值设在 500mA。如果板子有短路,限流电源会保护,不会烧板子。我见过有人直接上锂电池,结果 MOS 管焊反了,一上电就冒烟。
调试过程中,我用示波器抓了 GH 和 GL 的波形。20kHz PWM 下,上升沿和下降沿都很干净,过冲在 2V 以内,说明栅极电阻和布局都合理。电机空载电流 0.3A,堵转电流 8A,电流采样输出对应 0.15V 和 4V,线性度很好。满载运行 10 分钟,MOS 管表面温度在 45°C 左右,DRV8701 表面温度在 40°C 左右,都在安全范围内。
4. 常见问题与排查技巧实录
4.1 上电无输出或输出异常
这是最常见的问题,排查思路要按顺序来。先测 VM 电压,如果 VM 正常但 GVDD 没有输出,检查 nSLEEP 引脚是否拉高。DRV8701 的 nSLEEP 是低电平有效休眠,必须拉高才能工作。很多人忘了这个引脚,以为悬空就行,实际上悬空时电平不确定,芯片可能处于休眠状态。我一般用 10kΩ 电阻上拉到 3.3V,确保高电平。
如果 GVDD 正常但 GH 和 GL 没有输出,检查 PH 和 EN 信号。PH/EN 模式下,EN 为高时输出使能,PH 决定方向。如果 EN 一直是低,输出就是关断的。用示波器看 EN 引脚,应该有 PWM 波形。如果没有,检查主控的 PWM 输出配置,或者信号线是否虚焊。
如果 GH 有输出但 GL 没有,或者反过来,检查对应的栅极电阻和 MOS 管。栅极电阻虚焊或者阻值不对,会导致栅极驱动电压不足。MOS 管焊反了,栅极和源极短路,也会导致没有输出。用万用表二极管档测 MOS 管的体二极管,正常应该有一个 0.5V 左右的压降,如果短路或者开路,说明 MOS 管坏了。
4.2 电机发热严重或驱动板发烫
电机发热严重,通常是 PWM 频率太低或者驱动波形有问题。PWM 频率低于 10kHz 时,电机电流纹波大,铜损和铁损都增加。我建议 PWM 频率设在 20kHz 以上,超出人耳听觉范围,电机运行也更平滑。如果 PWM 频率已经很高但电机还是烫,检查驱动波形是否有振铃或者死区时间不够。死区时间不够会导致上下桥臂直通,瞬间大电流烧 MOS 管。
驱动板发烫,先摸 MOS 管和 DRV8701。MOS 管发烫,检查导通内阻和开关损耗。IRF3205 的 RDS(on) 是 8mΩ,5A 电流下功耗 0.2W,不应该烫。如果烫,可能是栅极驱动电压不足,MOS 管工作在线性区。测 GVDD 电压,正常 10V,如果只有 5V,检查飞跨电容和 GVDD 电容。DRV8701 发烫,检查 VM 电压是否超过 45V,或者输出电流是否超过芯片的驱动能力。DRV8701 的栅极驱动电流是 1A 峰值,驱动 IRF3205 这种大管子有点吃力,如果 PWM 频率很高,芯片会发热。解决办法是降低 PWM 频率,或者换用栅极电荷更小的 MOS 管。
4.3 电流采样噪声大或不准
电流采样噪声大,首先是布局问题。采样电阻的走线要开尔文连接,即从采样电阻的两个焊盘分别引出两根线到运放,不要从电阻中间引线。开尔文连接能消除焊盘和走线的寄生电阻影响。INA240 的差分输入线要走等长、靠近,最好包地。如果噪声还是大,在运放输出加一个 RC 低通滤波,截止频率设在 10kHz 左右,能滤掉大部分开关噪声。
采样不准,检查采样电阻的阻值精度和温漂。5mΩ 的电阻,如果精度是 1%,误差就是 0.05mΩ,5A 电流下误差 0.25mV,对应运放输出误差 12.5mV,ADC 采样误差在 1% 左右。如果精度要求高,选 0.5% 或者 0.1% 的电阻。另外检查 INA240 的 REF 引脚电压,如果 REF 不是精确的 1.65V,输出会有偏置。我用的是 TL431 产生的 1.65V 基准,精度 0.5%,够用了。
4.4 常见问题速查表
| 现象 | 可能原因 | 排查方法 | 解决办法 |
|---|---|---|---|
| 上电无输出 | nSLEEP 未拉高 | 测 nSLEEP 电压 | 10kΩ 上拉到 3.3V |
| GVDD 无电压 | 飞跨电容虚焊 | 测 VCP 到 VM 通断 | 重新焊接电容 |
| GH 无输出 | PH/EN 信号异常 | 示波器看 EN 引脚 | 检查主控 PWM 配置 |
| 电机发热 | PWM 频率低 | 测 PWM 频率 | 提高到 20kHz 以上 |
| MOS 管发烫 | 栅极驱动不足 | 测 GVDD 电压 | 检查 GVDD 电容 |
| 电流采样噪声大 | 布局不合理 | 检查采样走线 | 开尔文连接,加 RC 滤波 |
| 电流采样不准 | 采样电阻精度低 | 测电阻阻值 | 换 0.5% 精度电阻 |
| 上电冒烟 | MOS 管焊反 | 测体二极管 | 重新焊接 MOS 管 |
注意:调试时一定要用限流电源,这是保命的手段。我见过太多人直接上电池,一烧就是一片。限流电源设在 500mA,即使有短路也不会烧板子,最多就是电源进入恒流模式,电压拉低。
5. 实测性能与优化方向
板子打样回来焊好之后,我做了完整的性能测试。供电用 3S 锂电池,电压范围 9V 到 12.6V。电机用 RS-380,空载电流 0.3A,堵转电流 8A。PWM 频率 20kHz,死区时间 100ns。测试项目包括空载运行、满载运行、堵转保护、电流采样线性度、温升测试。
空载运行时,电机运转平滑,噪音很小。示波器看电机两端电压,PWM 波形干净,过冲在 1V 以内。满载运行时,电机电流 5A,驱动板温升 15°C,MOS 管表面温度 45°C,DRV8701 表面温度 40°C。堵转测试时,电流迅速上升到 8A,过流保护在 20A 触发,实际堵转电流没到保护阈值,电机和驱动板都安全。电流采样线性度测试,从 0A 到 8A,采样输出从 0V 到 4V,线性拟合 R² 达到 0.999,精度满足控制需求。
优化方向有几个。一是把采样电阻换成 2mΩ,降低功耗和压降,但需要运放增益更高,INA240 有 100V/V 的版本可以用。二是把 MOS 管换成CSD18540或者BSC0902NS这类低栅极电荷的管子,降低开关损耗,允许更高的 PWM 频率。三是把 DRV8701 换成DRV8703,它支持 SPI 配置,可以动态调整过流阈值和死区时间,更灵活。四是把电流采样从下桥臂采样改成 inline 采样,放在 H 桥中间,这样正反转都能采样,不过需要支持高共模电压的运放。
我个人在实际操作中的体会是,DRV8701 这颗芯片非常适合智能车竞赛的电机驱动场景。它的外围电路简单,不需要自举电容,电荷泵集成在内部,布局难度低。外置 MOS 的设计让功率级完全可定制,你可以根据电机功率选合适的管子。唯一需要注意的是栅极驱动能力有限,驱动大栅极电荷的 MOS 管时芯片会发热,选型时要看 MOS 管的 Qg 参数,尽量选 Qg 小于 50nC 的管子。
最后再分享一个小技巧:PCB 打样的时候,可以多打几块,焊接的时候先焊一块测试板,验证原理图和布局没问题,再批量焊接。测试板上电前,先用万用表测一遍电源和地的通断,确认没有短路。上电时用限流电源,观察电流是否正常。这些步骤看起来繁琐,但能帮你省下不少烧板子的钱和时间。