使用 Arduino PWM 控制搭建自举 MOSFET 驱动电路

什么是电机驱动器?

电机驱动器是基于半导体的电路,用于为电机供电并控制电机。许多此类设备采用智能微控制器生成数字控制信号,用于驱动被称为桥臂的半导体对。部分控制器包含2个桥臂(4个半导体开关),而其他控制器可能控制3个桥臂(6个半导体开关)。微控制器协调的脉宽调制(PWM)信号用于控制分马力驱动器中的金属氧化物场效应晶体管(MOSFET),而绝缘栅双极晶体管(IGBT)通常用于最高约1000马力的电机驱动器。常见的电机驱动器是用于遥控车、飞机和四轴飞行器的电子调速器(ESC)。

本工程简报是探索电机驱动器技术系列文章的第二篇。本期将展示一个可在面包板上组装的极简但功能完备的桥臂。如图1所示,该桥臂可用于控制有刷直流电机的转速(但无法控制方向)。下期将演示如何用两个桥臂构建完整H桥电路,实现直流电机的方向和转速双重控制。图1组件的原理图见图2。

建议您搭建该电路副本以积累电子原型制作经验。之后可对电路进行修改以加深理解。

1 :基于MOSFET的桥臂可用于控制直流电机。Arduino Nano Every用于生成PWM信号。电机转速由电位器设置决定。

安全提示 :启用15V直流电源时,请断开计算机USB端口以保护PC。这能防止15V直流电源与Arduino引脚意外连接。

忽视此警告可能导致 PC USB 端口、处理器或主板损毁。

建议改用独立电源(如廉价手机充电器)为Arduino供电。此外,也可考虑购买USB端口隔离器保护PC。

若尚未阅读,建议您回顾本系列前文。前文探讨了自举电容概念及其为高端MOSFET供能的工作原理。

2 :采用IR2110驱动器和Arduino Nano Every的桥臂原理图。电容器C2执行关键的升压操作。Arduino通过其USB端口供电(未显示)。

什么是桥臂?

桥臂是H桥或完整三相桥的一个子部分。每个桥臂由两个半导体组成:通常是MOSFET或IGBT。高端半导体设计用于将负载拉高,而低端半导体则将负载拉低。

图2的示意图展示了一个典型的桥臂和驱动器。它包含一对N沟道MOSFET。注意负载连接在MOSFET的中间。相对于这个中心点,MOSFET Q1被指定为高端器件,Q2为低端器件。

MOSFET 驱动器的特性

图2所示的电路采用了英飞凌科技的IR2110PBF MOSFET驱动器。该组件最初由国际整流器公司在1990年代设计。它至今仍然相关,14引脚DIP版本尤其适合学习用途,因为它可以用于如图1所示的电路实验板。

IR2110驱动器设计用于脉宽调制(PWM)操作,频率最高可达约100 kHz。规格书中的功能框图如图3所示。注意IC封装内有两个半独立电路,包括低端和高端驱动器,输出分别为低输出(LO)和高输出(HO)。输入低输入(LIN)、高输入(HIN)和关断(SD)均为低电平逻辑,兼容3.3 VDC。

3 :IR2110的功能框图,展示了低端和高端驱动器。注意高端驱动器包括电平转换电路以支持升压操作。

IR2110有几个特性使其适合驱动桥臂,包括低阻抗输出驱动器和高端驱动器的升压能力。

低阻抗

MOSFET是一种电压控制器件。理论上,我们只需要向IRF520PBF这样的器件施加15 VDC,它就会处于导通状态,具有低通道电阻。实际上这并不是一项容易的任务,特别是当开关频率在1 kHz至100 kHz范围内时。

需知MOSFET中的MO指的是用于隔离栅极与沟道的金属-氧化物栅极材料。还需回顾电容器是由两个导体间夹一层电介质构成的。因此MOSFET栅极结构本质上是一个具有较大电容的电容,必须通过充放电来控制MOSFET开关。这在器件高频工作时可能引发问题。

需要具备低阻抗输出的强驱动电路来对MOSFET栅电容进行充放电。这就是为什么IR2110驱动器的额定脉冲电流高达2.5安培。

技术提示 :当桥臂两个开关管同时导通时,会发生直通现象(交叉导通)。这实际上会造成电源短路,例如图2中Q1和Q2同时导通的情况。这种情况下必然导致损坏——根据墨菲定律,最先损坏的总是最昂贵且最难更换的部件。若驱动器逻辑故障可能引发此问题。当MOSFET开关时序不当,特别是高频工作时也可能发生。这加上对低导通电阻的要求,是采用低阻抗驱动器的主要原因之一。

自举电路工作原理

注意图3包含三个电源输入接口:

用于低电平逻辑的VDD/VSS对(如图2所示5V直流)

用于下桥臂驱动的VCC/COM对(图2中与C3关联的15V直流)

用于上桥臂驱动的VB/VS对( 2 中与 C2 关联的 15V直流浮动自举电源)

建议您阅读DigiKey的自举电路工作原理指南(若尚未查阅)。该文章详细阐述了自举电路原理,重点解析了接地参考信号与浮动信号的区别。通过聚焦上桥臂MOSFET栅极驱动需求及自举充电电路的必要性,深入探讨了自举电路。

简言之 :自举电路为桥臂上桥臂MOSFET提供浮动电压源驱动。自举工作需要充电电路和具备电平移位功能的MOSFET驱动器。当下桥臂开关导通时,自举电容(飞跨电容)进行充电。该电容为上桥臂驱动器提供稳定的15V直流电压。从接地示波器观察,自举电容正极电压在15V直流与(15V直流+主输入电压)之间浮动。例如,若桥臂采用50伏直流电源供电,自举电压将在15至65伏直流之间跃变。

自举充电

如图2所示,C2为自举电容。其负极连接至桥臂输出端。该电容随后接入IR2110的悬浮VB/VS端子对。当Q2导通时,自举电容通过D1进行充电。

技术提示 :"Q2导通"存在两种解释。第一种是MOSFET Q2通过低边驱动器物理性导通的状态。第二种是Q2体二极管导通的状态。假设桥臂连接感性负载,每当高边MOSFET关断时都会出现此状态。此时感应反激电压迫使Q2导通。这使得自举电容C2的负极相对地电位存在一个二极管压降。在此情况下,电容通过D1充电至约15伏直流。

技术提示 :切勿让高边驱动器以100%占空比工作。必须周期性关断MOSFET Q1以便为自举电容充电。若无此间歇期,电容将缓慢放电。最终会被IR2110驱动器检测为欠压状态。但由此产生的输出将不稳定且难以排查。另外,虽然IR2110应能保护MOSFET,但其欠压设定值可能低于应用需求。这将导致MOSFET以高沟道电阻运行,引发过热并损坏器件。

电平转换

观察图3可见高边驱动器的电平转换电路。前文我们介绍了采用光耦的电平转换方案。该方案在传递信号的同时,允许高边MOSFET在地电位与电源电压之间自由切换。结合自举电容,可确保高边MOSFET获得从栅极到源极测量时0至15伏直流的纯净驱动信号。

据我所知,IR2110并未使用光耦,但效果相同。其内部电路允许高端驱动器及配套自举电容在电压瞬变剧烈(高dv/dt)的系统中,以0至500伏直流电压浮动。再次强调,高端驱动器必须随高端MOSFET的源极同步浮动。哪怕瞬间违背此原则,设计最大V_{GS}VGS将被超出,导致MOSFET栅极绝缘层损毁。

技术提示 :可用差分探头测量高端栅源极间电压。请注意差分探头具有双输入通道。探头响应的是输入信号间的差值。此测量也可通过两个常规探头配合数学运算实现。图4即采用该技术测量升压电压,其中通过通道2减通道1进行差分计算。

4 :自举电容相关电压 通道1(橙色)C2负极 通道2(蓝色)C2正极(红色标注)及通道2-通道1的数学运算结果。红线显示驱动上管MOSFET的VB至VS对间浮动电压。

测试条件

如图2原理图及图5实物图所示,该电路采用单桥臂结构。这仅能调节电机转速而无法改变转向。要实现有刷电机双向调速,需采用全H桥(将在后续文章探讨)。

观察图2可见直流电机连接在地线与桥臂输出端之间。这意味着高端驱动管Q1主导工作,而低端驱动管Q2因LIN控制线直接接地处于待命禁用状态。同时必须认识到Q2对电路运行至关重要,因其体二极管仍需用于吸收电机的感应反峰电压。

替代测试方案:

可将电机#2端从地线改接至直流电源,改为低端驱动模式。同时需交换HIN与LIN输入信号。

技术提示 :MOSFET体二极管通常设计为与对应MOSFET特性匹配。例如假设Q1正驱动5A电流通过高感性直流电机。当Q1关断时,续流电流自然通过Q2的二极管换向。理解这点后,我们更能明白匹配MOSFET与内部二极管的必要性。

可采用外接二极管以提升性能。然而,当我们考虑物料清单(BOM)时,这种增加的零件数量是不可取的。

Arduino 代码

以下是Arduino Nano Every的代码。请注意,微控制器读取10位电位器值并将其转换为8位值,以驱动D3引脚的PWM。请注意,使用了一个饱和块来将PWM限制在大约98%。

#define VREF_PIN A7
#define PWM_PIN 3
void setup() {
  pinMode(PWM_PIN, OUTPUT);
  TCB1_CTRLA = 0b00000011;  // pin D3
}
void loop() {
  uint16_t setpoint = analogRead(VREF_PIN);
  uint16_t drive = setpoint >> 2;
  if (drive > 250) {
    drive = 250;
  }
  analogWrite(PWM_PIN, drive);
  delay(50);
}

请注意,如本文所述,通过直接操作特殊功能寄存器(SFR),将默认PWM频率从980 Hz提高到32 kHz。这种更高的频率将电机嗡嗡声移出了可听范围。它还将电机从断续(脉冲)模式切换到连续模式。在这里,“连续”一词意味着当我们考虑开关频率和电机的电感时,电机的电流几乎是连续的。在较低频率下,电流是断续(脉冲)的,因为电感能量会在每个PWM周期内耗散为零。

5 :使用B&K Precision直流电源和Digilent Analog Discovery的桥臂测试设置。

结论

此时,我们有了一个功能有限但可用的电机控制器。使用来自Arduino的PWM信号和IR2110 MOSFET驱动器,我们能够控制桥臂中的高端MOSFET。该解决方案采用了一个以电平转换器和自举电容为核心的优雅电路,可在MOSFET源极在地和电源电压之间切换时提供稳定的开关信号。

可能看起来不像,但我们在理解先进电机驱动方面取得了重大进展。下一步,我们将使用两个桥臂构建一个H桥。这将允许对有刷直流电机进行双向速度控制。从那里开始,只需一小步就能为BLDC电机生成梯形驱动,或为工业变频驱动器(VFD)中的百马力感应电机生成三相正弦波。

请在下面的空白处留下您的意见和问题。务必通过回答本笔记末尾的问题和批判性思维问题来检验你的知识。

如果你从这篇文章中学到了什么,请点赞。

更多内容,敬请期待。