简介:本资源是一套面向智能车竞赛与嵌入式电机驱动开发者的双电机驱动硬件设计参考方案,基于NXP智能车平台需求,采用BTS7960B大电流H桥MOS管驱动芯片,解决双直流电机的独立PWM控制、方向切换与过流保护等核心问题。压缩包共26个文件,包含5份原理图(.SchDoc)、1份PCB设计(.PcbDoc)、2份CAM光绘输出文件、1份Altium Designer工程结构文件(.PrjPcbStructure)及配套预览文件,整体大小25.03MB,所有文件均可用Altium Designer直接打开、编辑与投产。已有552人学习下载,适用于高校智能车竞赛备赛、课程设计或电机驱动模块二次开发。用户可直接复用该工程的器件选型逻辑、双路隔离供电设计、BTS7960B外围滤波与散热布局、以及PCB层叠与走线规范,尤其适合掌握中高级PCB设计能力的学习者快速理解高功率电机驱动板的可靠性设计要点。 作为把智能车从大一带到大四的老油条,第一次看到BTS7960B这个名字,是在校赛规则发布会那天。散会之后学长丢过来一个压缩包,文件名写着"NXP智能车双电机 BTS7960B MOS管驱动板AD原理图+PCB文件.rar",说拿去参考,先把驱动板搞明白再谈调车。后来我才慢慢理解,这套板子的核心就是用英飞凌BTS7960B半桥驱动芯片,搭出两路全桥来驱动两个直流电机,整套设计文件基于Altium Designer完成,原理图和PCB都有现成的工程可以参考。对智能车竞赛党来说,这套板子可以说是最经典的电机驱动方案之一;对刚想入门电机驱动的朋友来说,它又是一个特别完整的实战案例,能把MOS管怎么被驱动、H桥怎么换向、大电流PCB怎么布这类问题一次讲透。
这块板子我不是画完就完事了,而是前前后后改了三版才稳定下来。从方案选型到原理图绘制,再到PCB布局布线和最后的调试排障,每个环节都有不少值得记录的东西。这篇文章就把整套设计思路和实操过程拆开讲一遍,顺便把我踩过的坑也一并说出来,希望准备做智能车或者想自己画电机驱动板的朋友能少走点弯路。
1. 项目整体设计与方案选型思路
1.1 为什么选BTS7960B而不是分立MOS管方案
做智能车驱动板,最常见的路线有两条:一条是直接用集成驱动芯片,比如BTS7960B、BTN7970、DRV8701加外部MOS管;另一条是用分立MOS管自己搭H桥,再加一个栅极驱动芯片,比如IR2104、EG2104这类。标题里的方案明显走的是前者。
BTS7960B本质上是半桥驱动芯片,内部把高边的P沟道MOS管、低边的N沟道MOS管,以及对应的高边驱动电荷泵、逻辑控制电路全部封装在一起。对于绝大多数参加智能车竞赛的队伍来说,这几乎就是开箱即用的选择,不需要自己去折腾栅极驱动电路和复杂的死区时间设计,只要把电源、地、逻辑输入接对,就能输出PWM驱动电机。
那这个标题里为什么会有MOS管这三个字?因为BTS7960B内部就是两个MOS管。它的导通和关断原理、体二极管的存在、开关过程中米勒平台导致的损耗,和用分立MOS管搭的H桥完全一致。看懂这颗芯片,基本也就看懂了MOS管驱动电路的本质。
这块芯片的参数放在智能车场景里非常合适:
- 供电电压范围5.5V到27.5V,覆盖常见的7.2V镍氢电池组、11.1V锂电池组
- 持续工作电流能力在散热充足时可以达到几十安培级别,实验室小车的电流峰值完全扛得住
- PWM支持到25kHz,常见的10kHz到20kHz开关频率都跑得动
当初选这个方案还有一个很重要的原因:它对控制信号很友好。逻辑输入兼容3.3V和5V,意味着无论是用K60、TC264还是RT1064这类NXP单片机,都能直接对接PWM引脚,不需要额外加电平转换电路,这在画板子的时候能省掉一堆麻烦。
1.2 双电机驱动板整体架构
标题里明确写了双电机,所以这套板子是给后轮双电机驱动的车模用的。常见的智能车驱动拓扑有三种:
- 单电机驱动:一个全桥驱动一个电机,适合三轮车模或舵机转向车型
- 双电机独立驱动:两路全桥互相独立,左右后轮各一个电机,可以差速转向
- 四电机驱动:常见于宽体车模,需要四路全桥或者改用带MOS管的集成模块
双电机独立驱动是竞赛中最主流的动力布局。它的核心优势是转向灵活,左右轮能独立控制转速差,过弯的时候不需要复杂的机械舵机结构,算法上做差速就好。代价是板子上需要两套全桥,也就是四片BTS7960B,对布局、散热和电源管理的要求更高。
整套板的信号链路是这样的:单片机PWM输出到板载逻辑电路,经BTS7960B输入引脚控制内部MOS管开关,在电机端输出电压,电机转速变化后由编码器反馈回单片机,形成闭环。电源链路则是电池经过电源入口、滤波电容,到BTS7960B的VS引脚,再从OUT引脚流向电机。
每片BTS7960B负责半桥中的一个开关臂,两片组合成一路全桥,输出端A和输出端B直接接在电机两端。电机正转时,A端通过高边MOS管接到电源,B端通过低边MOS管接地;反转时反向操作。这样电机两端就得到了可换向的电压,配合PWM占空比就能控制平均电压大小,实现转速调节。
2. BTS7960B芯片原理与MOS管驱动机制
2.1 半桥结构、内部MOS管与体二极管
这里我要多说一句,很多新手第一次看BTS7960B的框图会困惑:一颗芯片不是一个全桥,它只是半桥。所谓半桥,就是两个MOS管串联,一个接电源、一个接地,中间抽头是输出端。要驱动一个直流电机正反转,必须把两个半桥拼成一个全桥,电机跨接在两个半桥的输出端之间。这个两片拼全桥的思路,和网上常见的分立MOS管H桥是一样的,BTS7960B只是把管子、驱动、保护全部集成好了而已。
芯片内部的高边是P沟道MOS管,低边是N沟道MOS管。为什么要这么组合?因为N沟道MOS管的导通电阻普遍比P沟道低、开关速度更快、性价比更高,所以低边一定要用N沟道。但高边如果用N沟道,栅极电压必须比源极高至少一个开启电压,而源极会跟着输出端电压浮动,所以需要专门的电荷泵电路来抬高栅极驱动电压,这个麻烦事BTS7960B已经在内部搞定了。
至于网上那么多人搜mos管为什么会出现体二极管,答案其实很简单:MOS管的源极和漏极之间天然存在一个PN结,这是工艺决定的结构,不是设计者特意加进去的。在全桥驱动里,体二极管有时候是坑,因为电感负载续流要靠它;有时候又是帮手,因为电机断电时电流不能突变,必须给反向电流一个通路,这时候体二极管就充当了续流二极管。BTS7960B内部的体二极管规格能承受和主功率路径相当的电流,所以调试时不额外加外部续流二极管也基本没问题。
2.2 控制逻辑、真值表与压摆率设置
BTS7960B对用户可见的控制引脚有四个:INH是高电平使能引脚,IN是PWM输入引脚,SR是压摆率调整引脚,IS是电流检测输出。每片芯片的逻辑关系其实很清晰:
- INH为低电平时,芯片进入休眠状态,两个MOS管都关断
- INH为高、IN为高时,高边MOS管导通,输出OUT接到VS电源
- INH为高、IN为低时,低边MOS管导通,OUT接地
- 输出OUT就是半桥的中间抽头
在双电机板子上,左后轮电机由两片BTS7960B拼成一路全桥,右后轮由另外两片拼成一路全桥。假设电机接在半桥A的OUT1和半桥B的OUT2之间:正转时OUT1接电源、OUT2接地,电流从A侧流向B侧;反转时OUT1接地、OUT2接电源,电流反向流动。想实现PWM调速,可以让其中一片输入PWM,另一片固定导通或固定关断。
死区时间是在全桥驱动里必须严肃对待的东西。同一路全桥的两个半桥,也就是四颗MOS管,如果出现上下管同时导通,等于把电源直接短路,瞬间的贯穿电流能把芯片打坏。BTS7960B在内部已经处理了半桥自身上下管的互锁和死区逻辑,这是集成驱动芯片相对分立MOS管方案最大的优势。如果自己用分立MOS管搭H桥,死区设置就是一件必须自己处理的事,做不好轻则效率降低,重则炸管。
SR引脚通过一个外部电阻到地来控制MOS管栅极的开关速度。电阻越大,开关过程越平缓,电磁干扰越小,但开关损耗也越大;电阻越小,开关越快,损耗小,但EMI噪声更大。常用取值在10kΩ到22kΩ之间。智能车这种功率不大、对噪声敏感的场景,我通常用12kΩ到15kΩ,兼顾效率与噪声。
2.3 电流检测与保护机制
BTS7960B的IS引脚是电流检测输出,它内部把输出电流按比例缩小,以电流源的形式从IS引脚流出。我们只需要在IS引脚和地之间接一个采样电阻,就能得到一个随输出电流线性变化的电压信号,送给单片机的ADC读取,从而实时知道电机电流。
采样电阻的取值逻辑是这样的:IS引脚的输出电流大约是负载电流的1/8500左右,如果希望满载约43A时采样电压为3.3V,那么采样电阻约等于3.3V除以43A除以8500,算出来大概是652Ω。实际设计时留出余量,常取560Ω到680Ω。
芯片同时带有过流、过温、欠压保护。过流保护触发后,芯片会关断输出,并通过IS引脚输出一个编码信号,方便单片机检测故障状态。这在调试中特别有用,如果上电后电机不转,先读一下IS引脚的电压,如果明显异常,多半是保护了,先检查电源和接线,而不是怀疑单片机程序。
3. AD原理图设计关键环节
3.1 元器件库与封装检查
拿到这套AD工程文件,第一件事不是急着改电路,而是先核对库和封装。这是很多新手最容易跳过、也最容易出问题的一步。BTS7960B的封装叫TO-263-7,也就是D2PAK家族的七脚版本,中间还有一个大的散热焊盘。原理图库里的引脚编号、PCB封装里的焊盘编号、Datasheet里的引脚定义,三者必须一一对应。
在Altium Designer里打开原理图库,逐引脚核对VS、GND、IN、INH、SR、IS、OUT这七个功能引脚,外加散热焊盘。如果发现引脚顺序和实际芯片不一致,画完PCB拿回来焊接的时候大概率要飞线,严重一点直接报废一板子。我自己的习惯是画完封装之后,把PDF版本的Datasheet截图放在屏幕边上,一边看一边比,比完再截图存档,这样后面做PCB时还能对照。
这里还有一个非常实用的技巧:用AD的SCH Inspector面板和PCB Library面板同时对比检查,可以快速发现封装和原理图映射问题。具体是打开原理图库,双击器件,在Models区域确认Footprint名称,然后打开PCB库,确认这个封装的焊盘序号和原理图引脚一一对应。
3.2 外围电路搭建:从最小系统到完整设计
BTS7960B外围电路简单到什么程度呢?一个芯片正常工作只需要四样东西:电源、地、使能信号、PWM信号。但如果只按最小电路画,板子能用但不好用。实际项目中我会额外加这些东西:
- 电源入口:电池正极进板子之前,先过保险丝,然后并一个大容量电解电容,推荐470uF以上,再在每个BTS7960B的VS引脚附近放一个100nF陶瓷电容,用于滤除开关噪声
- 滤波电容一定要靠近芯片的VS和GND引脚放,这是高频开关电路的铁律。如果放远了,导线电感会在开关瞬间产生电压尖峰,严重的能把芯片打坏
- 逻辑输入:IN引脚和INH引脚可以直接接单片机,也可以串一个100欧姆左右的小电阻,起到限流和阻尼作用,防止高频振铃
- SR引脚:按前面说的,接12k欧姆到15k欧姆电阻到地
- IS引脚:接采样电阻到地,然后把采样点引到单片机ADC引脚,中间可以加一个RC低通滤波器,时间常数取1到10微秒,滤掉开关纹波
- 状态指示灯:每个电源轨和逻辑电压轨加一个LED,上电一眼就能看出板子有没有正常工作
电源部分有一个容易踩的坑:智能车电池组电流峰值可能到十几安培,如果只靠一个大容量的电解电容,ESR会偏高,高频纹波滤波效果其实不好。正确的做法是大电解电容负责储能,多个小陶瓷电容负责高频去耦,两者配合。大电解尽量靠近电源输入口,陶瓷电容尽量靠近每片芯片。
3.3 网络连接检查与AD操作技巧
原理图画完,别急着转PCB,先检查有没有漏连网络。很多新手用AD画完原理图,编译时看到一堆Warning不当回事,实际转PCB后经常出现少了一根线的尴尬情况。我自己常用的检查流程是:
- 先执行Project菜单下的Compile PCB Project编译整个工程,看Message面板里的Violations,把所有Error和Warning逐个看一遍。警告级别不一定代表有问题,但每个都必须理解它为什么出现
- 用Report菜单下的Bill of Materials生成BOM,核对元件数量是否符合预期,比如BTS7960B应该有4片、采样电阻应该有4个
- 在原理图里用Tools菜单下的Maintain Net Identifier检查网络标识符是否一致,特别是电源网络和地网络,VCC、VDD、+5V这些命名必须统一
- 网络名检查:我习惯让所有电源网络带上电压值,比如+12V、+5V、VCC_3V3,这样看图一目了然,后面画PCB设规则也更方便
关于ad怎么检查所有的线全部连了这个问题,其实是每个AD新手都会问的。核心方法是用DRC检查加网络高亮:在PCB编辑器里按DC打开DRC检查,勾选Un-Routed Net检查项,运行后会列出所有没布通的网络。更快的办法是按U、N快捷键,或者用Route菜单里的Un-Route Net逐个检查。原理图阶段的预防,比PCB阶段补救成本低得多,所以画完原理图一定不要跳过编译检查。
4. PCB设计布局与布线要点
4.1 叠层选择与关键参数规划
双电机驱动板这种功率板,优先考虑两层板就足够了,没必要上四层。两层板成本低、打样快、焊接也方便,只要把功率路径和逻辑路径规划好,性能完全够用。板厚一般选1.6mm,这是大多数PCB厂家的默认工艺。表面处理建议用沉金,因为BTS7960B的散热焊盘对焊接可靠性要求高,沉金的可焊性和导热性都比喷锡好一些。
如果觉得两层板铺铜面积不够,或者高速信号和功率信号干扰严重,可以升级到四层板,标准叠层是顶层信号、中间层GND、中间层POWER、底层信号。对智能车驱动板来说,四层的核心价值是有一个完整的参考地平面,能更好地抑制EMI,但成本和设计复杂度都会上来。标题里的这个项目用两层板是合理的选择,因为BTS7960B的开关频率不算高,对阻抗控制没有严格要求。
关于PCB层叠厚度,两层板就是铜箔加基材的常规结构,1.6mm板厚搭配1盎司铜厚是默认配置。如果大电流走线很宽,可以选2盎司铜厚,但价格会高一些。我实际用下来,1盎司铜厚加2mm以上宽的走线,40A瞬间电流也能扛得住,因为智能车正常行驶时的电流远远到不了这个值,只有起步和堵转瞬间才会冲到峰值。
4.2 布局核心:功率区与逻辑区分隔
PCB布局的核心思想就一句话:把大电流路径和小信号路径分开,不要让它们互相干扰。BTS7960B这类功率芯片的引脚本身就是大电流通道,VS、OUT、GND这几个引脚附近要走尽量短而宽的铜皮,电机端子要放在板子边缘方便引出线。
比较推荐的布局是这样的:
- 电源输入口在板子一侧,两个电机输出端子在另一侧
- 四片BTS7960B分成两组,每两片靠在一起组成一路全桥,分别靠近对应的电机端子
- 每对BTS7960B的VS引脚前放一组大电解电容和陶瓷电容,组成一个电源去耦小组
- 所有逻辑器件、采样电阻和接口排针放远离功率器件的一侧,最好和功率区有一个明显的分割线
- 采样电阻和IS引脚的走线尽量短,因为采样信号本身比较弱,长走线容易引入噪声
布局顺序也有讲究。先摆连接器,也就是电源、电机、单片机排针,再摆四片BTS7960B,然后摆去耦电容,最后摆逻辑器件。电容的摆放位置比朝向重要,但有个细节是电容要尽量垂直于功率路径,这样能缩小高频电流回路的面积。有一次我图省事把电容全部竖着排成一列,结果电源纹波明显偏大,后来改成垂直功率路径放置,纹波立刻降下来了。
4.3 布线规则设置与大电流走线技巧
在AD PCB里画功率板,第一步是建立规则。PCB Rules And Constraints Editor里需要设几个关键规则:
- 走线宽度:信号线0.25mm到0.3mm,电源线至少0.5mm,BTS7960B的VS到电容、到电机端子的大电流路径建议1.5mm到2mm以上
- 间距规则:两层板建议0.2mm以上,如果有条件0.25mm更稳妥,特别是高低压区域之间要留够安全间距
- 过孔:信号过孔0.3mm孔径、0.6mm外径,大电流过孔0.5mm孔径、1.0mm外径,散热过孔可以更小更密
- 覆铜连接方式:大电流覆铜用直接连接Direct Connect,过孔和焊盘用十字连接Relief Connect,这样既能保证导热又能方便焊接
大电流走线有一个原则:能走铜皮就不要走细线。在AD里对功率网络单独设一个线宽规则,然后直接给网络分配2mm甚至更宽的走线,或者干脆用多边形覆铜直接铺满整个功率区域。电流在铜皮里的分布不是平均的,表面和边缘电流密度更高,所以加宽铜皮比增加铜厚更有效。
关于ad快捷键的问题,其实是熟练度问题。我最常用的一组快捷键是:P-T进入布线模式,Shift+W切换线宽,乘号键切换布线层,L打开板层设置,Ctrl+D显示设置,E-M-P多边形铺铜管理。布线完成后按T-D-R跑一遍DRC,再检查未布线网络列表。用熟了之后,画这种功率板的效率会高很多。
4.4 敷铜、散热与EMC设计
BTS7960B的散热焊盘在芯片底部,为了把热量导出去,PCB上必须给这枚芯片做一整套散热通道。芯片正下方焊盘处不要覆盖阻焊,让铜皮直接露出来焊接。从散热焊盘向下打一组过孔阵列,孔径0.3mm到0.5mm,孔间距0.8mm到1.0mm,把过孔连接到背面的大面积覆铜。背面覆铜区域尽量大,最好就是整层铺地铜,形成散热片效应。
如果板子空间允许,可以在背面再加一层大面积的GND覆铜,同时在板子边缘加几个散热通孔,让正反面铜皮形成热桥。热桥的意义在于把芯片底部的热量快速传导到整个板面,散热面积越大,芯片温升越低。实测下来,同样的满载情况下,散热设计到位的板子比裸奔的板子芯片温度能低20度以上,这直接影响竞赛中长距离跑图时的稳定性。
EMC方面,功率板最常见的干扰源是PWM开关节点,也就是BTS7960B输出OUT引脚接电机的那一条走线。它的电压在电源和地之间快速翻转,如果走线长或回路面大,就会向外辐射噪声。处理办法是让OUT到电机端子的走线尽量短、尽量粗,同时让配套的GND回流路径贴着它走,减小回路面积。
还有一个小细节:电机是感性负载,换相瞬间产生的反向电动势会通过体二极管产生很大的尖峰电流,这是板子上噪声的主要来源。为了让这个尖峰电流回路尽可能小,电机端子旁边的去耦电容网络一定要就近放置,不能为了布局好看把它挪到板子另一侧。这个回路面积只要大一点点,单片机ADC出来的电流检测数据就会明显抖动。
5. 打样焊接与调试问题排查
5.1 焊接前的检查清单
拿到打样的PCB,先别急着上烙铁。我有一次就是因为忽略了一个封装方向问题,四片BTS7960B全部焊反,损失惨重。所以现在每次焊接前都按这个清单过一遍:
- 用放大镜或摄像头检查PCB走线有没有短路、断线、铜皮凸起
- 对照BOM核对元器件,特别是BTS7960B的正面朝向,芯片上的丝印小圆点或缺口要和PCB上的丝印一致
- 检查封装是否居中,散热焊盘是否对位
- 用万用表蜂鸣档测电源入口到地的电阻,正常应该是一个较大电阻或者电容充电过程,不能直接短路
BTS7960B的封装是D2PAK类,焊接的时候芯片底部的散热焊盘很容易空焊。我自己的方法是先在散热焊盘上涂一层薄薄的低熔点锡膏,再用热风枪加热到锡膏融化后放上芯片,然后补焊其他引脚。热风枪温度320度左右,风量调到中等,吹的时候不要对着芯片吹太久,避免把封装吹变形。没有热风枪的话,也可以用烙铁加少量锡膏从侧面往里灌,但效果不如热风枪均匀。
5.2 上电调试步骤与波形验证
焊接完成后的上电测试,顺序很重要,不能一上来就接电机让它跑。我的标准流程是这样的:
- 先不装保险丝或串一个限流电阻,用稳压电源设置一个低压比如5V,看电流是否在合理范围内。如果电流异常大,说明板子有短路或芯片有问题,马上断电检查
- 确认板子没有短路后,恢复到正常工作电压,测电源轨是否正常
- 用示波器看BTS7960B的IN引脚PWM波形,确认单片机输出的信号正常
- 然后看电机的OUT引脚波形,正常应该是一个幅值接近电源电压的PWM方波,占空比和输入一致
- 接上电机,先小占空比比如20%跑一下,再逐步加大,期间持续监控芯片温度
用示波器观察OUT引脚波形时,有个容易忽略的细节:探头地夹一定要就近接在BTS7960B的GND引脚附近,不要夹在板子远端的地线上。否则测量回路太长,会看到很多噪声,容易被误判为电路问题。我见过很多人拿示波器看功率板波形,地线夹夹在电源输入口的GND端子,结果测出来的波形一顿乱跳,其实板子本身工作正常,是测量方式的问题。
5.3 常见问题与排查技巧速查
调试过程中我碰到过很多问题,有些问题现在想想还挺搞笑的,但当时确实卡了很久。整理成一张表,方便大家对照排查。
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| 上电后芯片发烫 | 电源接反、VS和GND短路、INH悬空 | 断电测电源入口电阻,检查焊接 |
| 电机不转 | PWM没到、芯片保护触发、电机线断路 | 示波器看IN和OUT波形,读IS引脚电压 |
| 电机转速抖动 | 电源电容不足、PWM频率太低 | 加大电容容量,提高PWM频率到15kHz以上 |
| 电机只有单向转动 | 有一片BTS7960B没工作或接线错误 | 检查半桥控制逻辑,确认四片芯片的IN信号 |
| 电流检测读数异常 | 采样电阻偏移、IS引脚接线太长 | 用万用表测采样电阻两端电压,核对阻值 |
| 满载测试芯片过热 | 散热设计不足、SR电阻太小 | 检查散热过孔和背面覆铜,适当增大SR电阻 |
还有一个高频问题,关于驱动板地在哪。很多新手会把功率地、信号地、单片机的地混在一起,导致单片机复位、PWM受到噪声干扰。正确的做法是功率地单独铺铜,逻辑地单独铺铜,两者在板子电源入口处单点连接,必要时用磁珠或0欧电阻隔开。判断地的位置,就看电流回流路径,功率大电流走哪,功率地就在哪;逻辑地是给小信号用的,不能混在一起。
打磨这块板子的时候我最大的体会是,驱动板这东西,参数看着简单,真正稳定跑起来要解决的问题永远比预想的多。BTS7960B本身很皮实,但前提是电源滤波要做好、散热要铺够、地线要处理好,任何一个环节偷懒,都会在赛场上最需要稳定的时候还回来。我最难忘的一次是赛前三天,驱动板在满载测试时连续烧了两片BTS7960B,最后排查出来居然是电机端子的接线柱松动,接触电阻导致尖峰电压超标。从那以后,我焊完板子都会用热熔胶把所有接线端子固定一遍,这个习惯一直保留到现在。希望这套板子的设计思路和这些踩坑经验,能让你少走点弯路。
本文还有配套的精品资源,点击获取