理论教育 脉冲宽度调制驱动电路优化方案

脉冲宽度调制驱动电路优化方案

时间:2023-06-16 理论教育 版权反馈
【摘要】:PWM 驱动电路可以做到这两点。LED 的PWM 驱动电路本质上可以理解成由两个部分构成的:恒流源电路与PWM 定时控制电路。事实上,精心设计的PWM 驱动电路可以做到驱动场效应管工作时接近零功耗,从而使驱动电路达到很高的效率。为了避免上述缺陷,尽可能使用高于2kHz的PWM 频率,即使周期小于0.5ms。这里有两个问题需要考虑:PWM 分辨率与驱动电路的带宽。此外,后端的恒流驱动电路的带宽会在很大程度上限制PWM 最高工作频率。

脉冲宽度调制驱动电路优化方案

脉冲宽度调制不是什么新鲜事,在开关电源电机调速等场合应用广泛,其特点是可以做到高效率的能量控制与变换。LED 驱动在控制亮度时,本质上也是能量调节过程,亮的时候释放的光子多些,暗的时候释放的光子少些。然而,所有的光能都是从电源提供的电能转换而来的,希望这种转换是高效率的。更重要的问题是调节LED的亮度时,希望其驱动电流不变,以保持色彩的恒定。PWM 驱动电路可以做到这两点。

LED 的PWM 驱动电路本质上可以理解成由两个部分构成的:恒流源电路与PWM 定时控制电路。恒流源电路是为了让LED 稳定发光,颜色稳定,并且确保电流不会超过极限参数;PWM 定时控制电路是为了调节LED 的发光亮度,且保证变换效率。

PWM 定时电路根据所期望的亮度设定,产生一个恰当占空比的PWM 脉冲,这个脉冲传送到恒流源驱动电路,后者产生脉动变化的驱动电流序列,如图2.11所示。这里的PWM 脉冲序列周期固定,占空比可变,占空比根据对LED 的亮度控制要求而定,占空比大亮度高,占空比小亮度暗。恒流源电路是根据输入的PWM 脉冲序列的电平高低,相应地产生或切断LED 的驱动电流,如果是开启导通状态,则有确定的驱动电流ID流过LED,将它点亮,该电流的大小根据LED 的驱动要求给定;如果是关断状态,则驱动电流为0。可见,LED 要么是以所期望的电流被点亮,要么被完全关断,它一直处于这样一种开关切换状态。如果切换频率很低,人眼能看到LED闪烁;但当切换频率足够高后,由于人眼的视觉滞留现象,将不再会感觉到LED 闪烁,而认为其是一个连续发光的光源了。观察到的亮度与平均发光时间占总时间的比例成正比,也即LED 的辐射功率与PWM 序列在每个周期内开启恒流驱动的时间占比(称为占空比)成正比。占空比用百分数来表示,它代表的是一个PWM 周期内LED点亮(ON)时间所占的百分比。如果占空比为100%,LED 将处于最大辐射强度;如果占空比降至50%,LED 辐射强度会降至最大值的一半。通过定时电路的精确控制,能够达到十分精确的亮度控制。

图2.11 PWM 控制的恒流源

如何才能构建一个PWM 控制的恒流源呢?下面给出一个例子。这里使用之前已经熟悉的如图2.10(b)所示的恒流源电路,在它的基础上只要附加一个小功率场效应管Q2及一个下拉电阻R3就能构成PWM 控制的恒流源电路,如图2.12所示。注意,这里的PWM 序列使用的是负逻辑,即PWM 控制信号高电平时LED 熄灭,PWM 控制信号低电平时LED 工作,工作电流由恒流源电路确定,一般选能使LED 发出最大辐射强度的电流,但必须在安全的极限参数之内,不然很容易造成LED 的永久性损坏或快速缩短其使用寿命。此外,电阻R3是下拉到地的。因此,假如控制输入端悬空,N 沟道的场效应管Q2恒为截止,相当于断路,于是图2.12的电路将变回图2.10(b)给出的恒流源电路,LED 持续以最大电流导通,辐射出最高光强。如果希望控制端悬空能关断LED 显示,则可以将电阻R3改为上拉到Vcc即可。可见,场效应管Q2起着一个对于后端恒流源驱动电路开关的作用,使电路的有源器件Q1工作在开关状态,导通时电流大、管压降低,截止时管压降高、电流小,这意味着在LED 驱动过程中Q1的功耗都较小。事实上,精心设计的PWM 驱动电路可以做到驱动场效应管工作时接近零功耗,从而使驱动电路达到很高的效率。

图2.12 PWM 控制的恒流源电路实例

1.PWM 的工作频率、周期与占空比

前面已指出,应用PWM 对LED 进行亮度控制是利用人眼视觉滞留效应,LED被快速开关,打开时的电流是不变的,通常取成保证色彩与亮度的最大电流,以便获得最大的动态控制范围,该电流实际流过LED 的时间占比则是被控制的,只要这个开关频率足够快,一般不低于100Hz,人眼视觉的生物学特征使它们无法对频率高于30Hz的亮度变化做出响应,当高频开关状态发生时,人眼视觉效果将会使得所感知到的亮度与PWM 信号的占空比呈线性关系。因此,这样就能做到在保证颜色不被改变的前提下实现LED 亮度的线性调节。

只要控制PWM 的占空比就能调节LED 的亮度,这仍然存在着缺点,主要表现在发出的光线品质及对其他物体的影响上。首先,尽管对高于30Hz频率的亮度变化,人眼不能响应,但即使是对于100Hz~2kHz的低频(即使它已经高出30Hz的标准许多,但对于PWM 而言,它仍属于低频范围),人类依然会有细微的感受,导致眼部肌肉紧张与疲劳。其次,某些非人类生物生长在此环境下,动物们可能会看到高频光闪烁。再次,这样的闪光调节会在录制视频时形成明暗光带。最后,PWM 调节亮度还会产生闪光效应,即把周期性运动物体呈现成静止的物体了。例如,PWM 频率与风扇转速一致,看到的将不再是高速旋转的转页,而是一个静止的转页。为了避免上述缺陷,尽可能使用高于2kHz的PWM 频率,即使周期小于0.5ms。

虽然减小PWM 周期有助于改善上述问题,但是不是可以无限制地提高工作频率、减小周期呢?答案是否定的。这里有两个问题需要考虑:PWM 分辨率与驱动电路的带宽。定时电路在生成PWM 脉冲序列时,其分辨率不是可以无限的,会受制于硬件及其他制约因素。分辨率是指单个PWM 周期能分解成多少个可控单元,从而构成最小可变的占空比单位。例如,分辨率是1/1 000,则表明一个周期被分成了1 000等份,占空比可以是0%,0.1%,…,100%。更高的分辨率意味着更多的亮度等级,即显示系统会有更高的对比度。在PWM 周期(频率)确定的情况下,分辨率越高,单位占空比所取的时间越短,如果使用的是2kHz 的PWM 频率,周期为0.5ms,这意味着PWM 定时电路必须能准确产生0.5μs的时间基准才能获得千分之一的分辨率。

此外,后端的恒流驱动电路的带宽会在很大程度上限制PWM 最高工作频率。理想情况下,PWM 控制信号有效时,电路导通;相反地,PWM 控制信号无效时,电路截止,如图2.13(a)所示。实际情形并非完全如此。几乎所有的电路存在动态响应过程,如果所要处理的是高频信号,必须要考虑信号的上升时间与下降时间。事实上,无处不在的各种耦合电容、驱动电路中MOSFET的结间电容等是产生信号过渡过程的主要原因,使得信号既不能瞬间上升,也不能瞬间下降,而会呈现出如图2.13(b)所示的过渡过程。唯有这样的过渡过程对于所针对的应用可以忽略不计的情形下才可以不去考虑它们。通俗地讲,一个器件或系统可以正常通过的信号频率范围就是系统带宽的概念。LED的恒流源驱动电路通常是有带宽指标的,设计与应用时必须保证信号工作频率在其范围内,否则会产生如图2.13(b)所示的明显波形畸变,也就失去了对电流的控制精度。

图2.13 高频PWM 理想波形与实际波形对比

从上述最简单的PWM 驱动电路的分析可以看出,对于LED 精确的亮度控制的关键之一是如何产生具有精确占空比的PWM 控制脉冲。例如,想要产生最高辐射强度,可以输入直流的“ON”电平(注意,不一定是高电平,上例中就是低电平点亮LED),发出1/4最大光强,产生25%的占空比,等等。由于PWM 亮度控制电路具有的优点,在各类LED 显示屏中都得到了广泛应用。接下来给出两种PWM 序列发生电路:由555定时器构成的PWM 发生电路,由单片机构成的PWM发生电路。

2.由555 定时器构成的PWM 发生电路

555定时器是一种用途相当广泛的定时控制集成电路,用于产生精确的延时与振荡。它既可以工作在单稳态,也可以工作在非稳态。当工作在单稳态时,每个触发信号都可以产生可控制长度的有效输出,通常是高电平。如果给触发端施加期望频率的连续触发脉冲,便可产生有效长度可设定的脉冲宽度调制序列。当工作在非稳定状态时,不用外部触发时钟输入,本身就能产生频率与占空比可设定的脉冲序列,因此同样可用于产生PWM 信号序列。

为了帮助读者理解具体的工作过程,图2.14给出了555定时器电路的工作原理图,虽然有许多半导体厂家生产不同型号的555定时器,也可能使用基于TTL 或CMOS等不同的技术,但它们的工作原理类同,只是具体技术指标会有些许差异,以适应不同的应用场景。555定时器通常有8个引脚,除了电源Vcc与地GND 之外,还包括若干功能引脚,如表2.4所示。555定时器的核心是内部的一个触发器,它的输出经缓冲后产生输出OUT,555定时器的输出一般具有较大的驱动能力,根据输出高低电平的不同,能流出或流入高达200mA 的电流,对于驱动单个或若干个LED应该是足够了。如果需要更大的驱动电流,则可以扩展驱动级。同时,触发器的输出还会去控制一个三极管集电极开路(OC)的放电端,在本小节后面的应用电路设计中会发现该输出端可用于定时电容的放电。555定时器电路有两个输入引脚,分别是定时开始的触发引脚(TRIG)以及定时结束的阈值引脚(THRES),它们一起决定触发器的状态。从原理图上可见,当控制引脚(CONT)悬空,内部三个相同阻值的电阻构成分压电路,分别给两个比较器C1 与C2 提供了约0.67Vcc与0.33Vcc的参考电压。当TRIG 端的电压低于比较器C2 的参考电压,触发器被比较器C2 的输出置位,输出OUT 变高。当THRES端电压超过比较器C1 的参考电压,触发器被比较器C1 的输出复位,输出OUT 变低。这是555定时器电路的基本工作原理,所有应用电路,包括想要用它来构成的PWM 电路都基于此。如果不想采用0.67Vcc与0.33Vcc作为比较器C1 与C2 的参考电压也是可以的,这就是引入控制端CONT 的目的。强制在控制端CONT 外加一个参考电压VREF,它将成为比较器C1 的参考电压,同时,C2 的参考电压则变成VREF

图2.14 555定时器电路的工作原理图

表2.4 定时电路555的引脚定义

在清楚555定时器的结构与原理之后,可以具体来说明如何使用它们构成电路产生PWM 序列了。图2.15所示的是工作在单稳态的PWM 序列发生器。此时,触发信号上加的是一个宽度很窄的负脉冲序列,它的频率也就是所生成的PWM 序列的工作频率。PWM 序列的占空比则是由外加电阻R 与定时电容C 的取值所决定的。下面来分析一个触发周期内发生的情形。根据之前关于555定时器的结构与原理的说明,当TRIG 是一个低电平脉冲时,只要电平低于0.33Vcc,输出OUTPUT 变高,LED灯被点亮;同时,定时电容放电端DISCH 开路,电源经过电阻R 开始给定时电容C充电,电容C 两端的电压(即THRES端的电压)开始上升,高电平输出状态将维持,直到THRES端的电压达到结束阈值0.67Vcc,输出复位变成低电平,LED 熄灭,同时电容放电端DISCH 与地之间被饱和导通,THRES端的电压瞬间近似为0电平。下一个TRIG 周期将重复上述过程。各个信号的时序图如图2.16所示。

图2.15 单稳工作状态555定时器脉宽调制电路

可见,这样的LED 驱动电路的PWM 周期是由外部触发负脉冲序列周期决定的,占空比则完全由定时参数R 与C 的取值而定,它们构成一个一阶系统。充电时,定时电容两端的电压由下式确定:

其中,

T=RC

图2.16 单稳状态555定时器脉冲宽度调制电路时序图

称为RC 电路的时间常数,电容充电的速度与这个时间常数成反比关系,时间常数越大,充电越慢。根据式(2.7),可以求出uC(t)上升到0.67Vcc的阈值所需要的时间,即为每个周期LED 被点亮的时间:

D=1.1RC

例如,图2.16所示的时序图中PWM 频率是1kHz,则TRIG 的周期为1ms,若希望产生占空比的LED 驱动脉冲宽度调制,则可取

R=1.1kΩ,C=0.1μF

需要指出的是,当R 或C 取得过大,RC 电路的时间常数也会变大,只要时间常数足够大,就有可能在一个触发周期内来不及达到0.67Vcc的阈值,从而跳过一个或多个触发脉冲。若R 或C 取得太小,定时电容两端的电压很快上升达到阈值,就有可能仍然在触发脉冲的低电平位置,输出将不能正确复位,这就意味着最小的占空比是受限制的。一般来说,555芯片要求THRES电压达到阈值时,TRIG 信号已经高于0.33Vcc的阈值一段时间了,如10μs,否则不能保证输出反转。

可以发现,为了使图2.15所示的电路构成LED 驱动用的PWM 序列发生器,它并不能由555定时器电路单独完成,需要外加触发时钟。其好处是可以采用某种稳定的时钟源。能不能不借助于外部时钟源就构成PWM序列发生器呢?如图2.17所示的无稳工作状态555定时器电路就能达到此目的,它不仅能通过电阻、电容的选择产生期望的占空比,还能自行产生振荡,振荡频率同样取决于所选的阻容元件的参数。(www.daowen.com)

图2.17 由无稳工作状态555定时器电路构成的PWM 电路

图2.17所示电路触发与结束阈值两端点一起与定时电容相连,当电容两端的电压低于0.33Vcc,输出高电平驱动LED,同时放电端开路,电源Vcc经由R1 与R2串联后给C 充电,电压不断上升,直到0.67Vcc时,触发器在THRES作用下反转,输出变低,LED 关断,同时放电端DISCH 近似接地,电容上的电压经由R2 放电,直到低于0.33Vcc。如此周而复始,该系统将自行振荡,输出高电平的持续时间tON为C 上的电压从0.33Vcc经由R1、R2 串联充电到0.67Vcc所需要的时间,而输出低电平tOFF则是C 上的电压从0.67Vcc经由R2 对地放电到0.33Vcc所需要的时间。要计算上述两个时间,不能直接使用式(2.7),这是因为当前情形下电容存在初始电压vC0,充电时,这个初始电压为0.33Vcc,电容上的电压由下式给出:

令上式左边等于0.67Vcc,就可以求出

tON=0.693(R1+R2)C

类似地,在放电时,电容上的初始电压vC0为0.67Vcc,电容电压由下式给出:

令上式左边等于0.33Vcc,就可以求出

tOFF=0.693 R2C

它们所产生的PWM 序列周期为

T=tON+tOFF=0.693(R1+2 R2)C

也即PWM 序列的频率为

占空比

可见,只要适当地选择R1、R2 以及C 的数值,就可以由555定时器电路得到所期望的PWM 波形的频率与占空比。

3.由单片机构成的PWM 发生电路

之前讨论的由555定时器构成的PWM 电路在需要调整频率、占空比时,必须去修改相应的元件参数,这种硬件上的改动或调节在应用中不容易实现,也很麻烦,尤其对LED 驱动的情形,很多时候会要求不断根据应用场景来改变显示的亮度。例如,户外屏希望能够根据环境光的强度自适应地改变显示屏的亮度,既保证白昼清晰可见,又能保证黑暗夜晚不耀眼。这样的调节过程必须自动实现,而不是靠通过调整电路参数来实现。接下来讨论用单片机实现的PWM 发生电路,结合之前的恒流源作为后级功率驱动,可以构造出由程序控制的LED 亮度调节电路。它是许多LED 应用的典型驱动方式。

现在的单片机功能强大,可用于构成各种智能系统,用它们来实现LED 的亮度控制十分方便有效。许多型号的单片机都自带能实现PWM 调制的定时器硬件,设计时所要做的只是确定相应的输出引脚连接方式,根据具体所用芯片型号的不同,由程序控制若干个相关寄存器的读写。由于单片机通常使用高精度的高频晶体作为其系统时钟,所实现的LED 驱动用PWM 序列发生器可以做到很高的工作频率以及很高分辨率的占空比,可供选择的范围很大,要想实时动态地改变PWM 的频率与占空比,只需往某些寄存器写入适当的数据即可实现,对于LED 驱动显得十分方便、高效。

本节将结合典型的单片机PWM 结构,即定时器+捕获/比较/PWM 模块结构,来说明如何构建LED 驱动用PWM 序列发生器,如何设定及改变序列的频率与占空比。关于单片机的一般性介绍,因超出了本书的范围,读者可以参考相关的书籍。

图2.18所示的是许多MCU 中实现的PWM 模块原理图,由捕获/比较(CCP)模块与定时器模块一起实现。PWM 需要一个定时器提供时间基准。在单片机中,一般会有多个可配置的定时器,可以选择其中的某一个定时器用于提供时间基准,而驱动这些定时器的时钟,则可由高精度的晶体振荡器所产生。但是,某些型号的单片机会指定特定的定时器用于PWM 控制,应用时需加以注意。在PWM 工作方式下,可以通过程序控制设定单片机在一个或多个引脚上产生PWM 脉冲序列,它(们)的极性、频率与占空比等同样都能用软件方便地加以控制与改变,这是使用MCU 生成LED 的PWM 驱动序列最具吸引力的方面,它带来了巨大的灵活性。图2.18所示的单片机PWM 模块产生的PWM 序列从CCP引脚输出。许多单片机的输出端口都是复用的,因此,若要将之用作PWM 输出,通常需要将相应的端口配置成输出模式。

图2.18 单片机中实现的PWM 模块原理图

PWM 输出中两个基本参数是周期与占空比。周期由定时器模块的周期寄存器PR 中的数据所决定,这个周期内高电平的部分则由主占空比寄存器CCPRL 的值所决定。下面具体说明操作过程。定时器将从0开始计数,每一个计数时钟脉冲加1,直到计数值与周期寄存器PR 的数值相等,比较器C1 将执行以下操作:①定时器清零,开始下一周期的计数;②PWM 输出置位,输出有效;③占空比寄存器重新锁存,开始新一周期内的占空比计数。可见PWM 的周期由以下公式来确定:

其中,TPWM 为PWM 脉冲序列的周期,频率fPWM=;NPR为周期寄存器PR 的数值;TCLK为计数器所使用的时钟周期。

下面对计数器所使用的时钟再做一些说明。一般来说,单片机中计数器所用的计数时钟都源自晶体振荡器,其振荡频率为fOSC,振荡周期为TOSC,但许多单片机并非直接将晶体振荡周期作为计数周期,而是使用机器周期TCY。所谓机器周期,通常是单片机的基本指令执行周期,由若干个晶体振荡周期构成。例如,不少单片机中,4个振荡周期构成一个机器周期,即TCY=4 TOSC,它决定了定时器所能使用的最小计数周期。晶体振荡频率fOSC 通常很高,如20MHz,可以求得定时器的计数周期TCLK=0.2μs。对于图2.18所示的8位定时器结构,所能控制的周期变化范围只有1~255 TCLK,即0.2~51μs,换算成PWM 信号频率为5MHz~19.6kHz,这对于某些应用可能太高了。为了能提供更大的灵活性,MCU 定时器硬件会额外提供预分频计数器来对输入计数时钟作分频,通常会有1∶1,1∶4,1∶16分频,即先把输入的计数时钟预先计满预分频值KPR(1,4或16)个脉冲之后才会使计数器加1,从而扩展了计数周期的程序可控范围。因此,实际的定时器计数周期为

例如,选择1∶16 分频,则PWM 周期的变化范围可以设成3.2~816μs,换算成PWM 信号频率为312.5~1.225kHz。再有一点需要说明,用于PWM 定时器实际计数时,内部设计了所谓的4相位,即把1个计数周期等分成了四个相位,每个相位占个计数周期。这可以简单地理解成在定时器低位端附加有一个2位计数器,它由计数时钟的4倍频率驱动,计满4后产生一个定时计数。这个对于实现PWM 占空比分辨率的提升很重要,意味着8位定时器也可实现10位的占空比分辨率。

决定PWM 占空比有两个寄存器:主占空比寄存器CCPRL 与从占空比寄存器CCPRH,它们是8位寄存器。如果要使用上述所谓4相位来提高PWM 的分辨率,这两个主从占空比寄存器同样会扩展出两个最低位,用于匹配定时器中的对应位。这种做法在8位单片机中比较常见,使得在8位系统中可实现10位的占空比分辨率,最高分辨率可以达到个定时计数时钟周期,当用于LED 亮度调节时,这意味着可实现优于千分之一的对比度。应用时,只要把所需的占空比数据写入主占空比寄存器CCPRL即可,每个周期开始时,其中的数据会自动锁定到从占空比寄存器CCPRH,当计数器中的计数值(含4相位数值)与CCPRH 中的数据相一致时,比较器C2 产生复位输出,使得PWM 输出端复位,并一直保持到下一周期开始。上述主从占空比寄存器的双缓冲结构设计使新写入主占空比寄存器CCPRL 的数据一定是在下一个周期起作用,从而保证当前的PWM 周期是完整的。

综上所述,单片机上产生PWM 序列的一般流程如下:

①写入PR 寄存器,设置PWM 周期。

②写入CCPRL(以及2个扩展的4相位,取决于具体的单片机型号),设置占空比。

③把CCP引脚定义成输出。

④写入定时器的预分频值,启动定时器(通常由定时控制寄存器内容所决定)。

⑤把CCP模块的工作模式配置成PWM 模式。

具体的程序设计需要参考特定型号单片机数据手册的说明。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈