4、驱动芯片选型与使用:常用驱动芯片(DRV8873、L298N、BTN7971)对比、芯片外围电路设计、散热计算

驱动芯片选型,说白了就是给电机找个靠谱的“司机”。

这个司机既要力气大(电流够),又要反应快(PWM频率高),还得皮实耐造(保护机制完善)。我这些年折腾过不少驱动方案,从最早的L298N到后来的DRV8873,踩过的坑能写满一本笔记本。今天咱们就聊聊三款主流芯片的选型心得。

4.1 三款驱动芯片的硬核对比

先看一张对比表,心里有个底:

参数 DRV8873 L298N BTN7971
最大持续电流 3.5A(峰值6A) 2A(峰值3A) 30A(峰值50A)
供电电压 4.5V - 38V 4.8V - 46V 5.5V - 40V
导通电阻 0.5Ω(HS+LS) 约2Ω(达林顿管) 16mΩ(单管)
PWM频率上限 100kHz 40kHz(实际建议20kHz以下) 25kHz
保护功能 过流、过热、欠压、限流 无(需外接二极管) 过流、过热、欠压
封装 HTSSOP-16 MultiWatt-15 TO-263-7
价格(批量) 约8-12元 约5-8元 约15-25元

嗯,这里要注意:L298N的2A持续电流是理想散热条件下的值。我在项目中遇到过,实际跑1.5A就烫得能煎鸡蛋了。为什么?因为它的导通电阻太大,2Ω的Rds(on)意味着1A电流下就有2W的功耗,散热跟不上。

我的选型建议:

  • 腰托电机(0.5-1.5A):DRV8873是最优解,集成度高,外围简单
  • 大功率座椅调节(5-10A):BTN7971更合适,但要注意散热
  • 教学/原型验证:L298N便宜,但别指望它干重活

4.2 DRV8873外围电路设计

我个人习惯用DRV8873做腰托电机驱动。它的外围电路简单到令人感动——说白了就是几个电容加一个电阻。

典型电路如下:

// DRV8873 典型应用电路(简化版)
// 引脚连接说明

VM (Pin 1) —— 12V电源(接100μF电解电容+0.1μF瓷片电容到GND)
VDD (Pin 2) —— 3.3V逻辑电源
IN1 (Pin 3) —— MCU PWM输出(正转)
IN2 (Pin 4) —— MCU PWM输出(反转)
nSLEEP (Pin 5) —— 接VDD(使能芯片)
nFAULT (Pin 6) —— MCU中断输入(故障检测)
IPROPI (Pin 7) —— 接GND(电流检测功能禁用)
OUT1 (Pin 8) —— 电机正极
OUT2 (Pin 9) —— 电机负极
GND (Pin 10-16) —— 共地

避坑指南:我曾经在IPROPI引脚上直接悬空,结果芯片莫名其妙进入限流模式。后来查手册才发现,这个引脚悬空时内部上拉电阻会触发错误检测。正确的做法是:如果不使用电流检测功能,直接将该引脚接地。

电容选型上,我建议:

  • VM引脚:100μF电解电容 + 0.1μF瓷片电容,紧靠芯片放置
  • VDD引脚:10μF瓷片电容
  • 注意:电解电容的耐压值要留50%余量,12V系统选25V耐压

4.3 BTN7971的半桥玩法

BTN7971是个半桥芯片,要驱动直流电机需要两个芯片组成全桥。你想想看,这成本就上去了。但它的优势在于电流能力极强,16mΩ的导通电阻,30A持续电流几乎不发热。

我曾在座椅调节项目里用过BTN7971,当时客户要求电机能在堵转状态下坚持10秒不烧。L298N直接冒烟,DRV8873过热保护了,只有BTN7971扛住了——当然,散热片得跟上。

典型电路要点:

// BTN7971 全桥配置(两个芯片)
// 芯片A:控制电机正转
// 芯片B:控制电机反转

// 每个芯片的引脚配置:
INH (Pin 1) —— 使能引脚,接PWM
IN (Pin 2) —— 方向控制
OUT (Pin 3) —— 电机输出
SR (Pin 4) —— 压摆率控制(接GND为最快)
GND (Pin 5) —— 地
VS (Pin 6) —— 电源
GND (Pin 7) —— 地(散热片连接)

警告:BTN7971的SR引脚千万别悬空!我曾经犯过这个错,结果电机启动时电流尖峰直接把MCU复位了。SR引脚接GND时压摆率最快,适合PWM调速;接高电平则压摆率变慢,适合软启动。腰托电机建议接GND,响应更快。

4.4 L298N的“老将”用法

说实话,L298N现在基本被我淘汰了。但如果你手头正好有库存,或者在做低成本方案,它也不是不能用。关键是要做好两件事:续流二极管和散热。

L298N内部是达林顿管,没有集成续流二极管。我见过太多人直接拿它驱动电机,结果关断瞬间的反向电动势把芯片击穿。正确的做法是:

// L298N 续流二极管配置
// 每个输出端对电源和地各接一个快恢复二极管

// 电机A:
OUT1 —— 1N4007阳极 —— 12V
OUT1 —— 1N4007阴极 —— GND
OUT2 —— 1N4007阳极 —— 12V
OUT2 —— 1N4007阴极 —— GND

// 电机B同理
// 注意:二极管要靠近芯片引脚放置

嗯,这里还要注意:1N4007是普通整流管,开关速度慢。我建议用UF4007(快恢复)或者SS34(肖特基),压降更小,发热更低。

4.5 散热计算——别让芯片“发烧”

散热计算是驱动芯片选型的核心。我见过太多工程师只关注电流参数,忽略了热设计,结果样机测试时芯片直接冒烟。

基本公式很简单:

P = I² × Rds(on)
Tj = Ta + P × Rθja

其中:
P —— 芯片功耗(W)
I —— 电机电流(A)
Rds(on) —— 导通电阻(Ω)
Tj —— 结温(℃)
Ta —— 环境温度(℃)
Rθja —— 结到环境的热阻(℃/W)

举个例子,DRV8873在1A电流下:

P = 1² × 0.5 = 0.5W
Tj = 50 + 0.5 × 40 = 70℃

(假设环境温度50℃,Rθja=40℃/W,无散热片)
70℃ < 150℃(芯片最大结温),安全!

但如果电流到2A:

P = 2² × 0.5 = 2W
Tj = 50 + 2 × 40 = 130℃

130℃接近150℃上限了,必须加散热片!

我的经验法则:

  • 结温控制在100℃以下,留50℃余量
  • 腰托电机工作电流0.5-1A,DRV8873不加散热片也OK
  • 如果环境温度高(比如车内夏天60℃),必须降额使用
  • BTN7971虽然导通电阻小,但大电流下也要算一算

4.6 PCB布局的“潜规则”

最后聊几个PCB布局的要点,这些都是我拿示波器“烧”出来的经验:

  • 大电流回路要短:电源到芯片、芯片到电机,走线宽度至少2mm,最好铺铜
  • 电容紧靠芯片:100μF电解电容和0.1μF瓷片电容,距离芯片引脚不超过5mm
  • 地线要分开:功率地和信号地单点连接,避免大电流干扰控制信号
  • 散热焊盘要开窗:DRV8873底部的散热焊盘必须焊接到PCB上,并通过过孔连接到背面铜皮

我记得有一次,客户反馈电机运行时MCU会随机复位。排查了半天,发现是功率地回路太长,PWM开关噪声通过地线耦合到了MCU。把地线分开后,问题立刻消失。

嗯,驱动芯片选型和使用,说到底就是平衡电流、散热、成本三者的关系。腰托电机这种小功率应用,DRV8873是我的首选。如果你有特殊需求,比如需要超低功耗或者超高可靠性,咱们再单独聊。