什么是PWM脉宽调制(PWM)是一种利用微处理器的数字输出来控制模拟电路的非常有效的技术,广泛应用于从测量和通信到功率控制和转换的许多领域。
脉宽调制(Pulse width modulation,PWM)是一种模拟控制方式,它根据相应负载的变化来调制晶体管基极或MOS晶体管栅极的偏置,以改变晶体管或MOS晶体管的导通时间,从而改变开关稳压电源的输出。这种方法可以在工作条件变化时保持电源输出电压不变,利用微处理器的数字信号控制模拟电路是一种非常有效的技术。
PWM控制技术以其控制简单、灵活、动态响应好等优点成为电力电子技术中应用最广泛的控制方式,也是人们研究的热点。由于科技的发展没有学科之间的界限,结合现代控制理论或实现无谐振开关技术将成为PWM控制技术发展的主要方向之一。它根据相应负载的变化来调制晶体管基极或MOS管栅极的偏置,从而实现晶体管或MOS管导通时间的变化,从而实现开关稳压电源输出的变化。这种方法可以在工作条件变化时保持电源输出电压不变,利用微处理器的数字信号控制模拟电路是一种非常有效的技术。
PWM详细过程脉宽调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过使用高分辨率计数器,方波的占空比被调制以编码特定模拟信号的电平。PWM信号仍然是数字的,因为在任何给定的时刻,全振幅DC电源要么完全打开,要么完全关闭。电压或电流源以开或关的重复脉冲序列施加于模拟负载。当它打开时,DC电源加到负载上,当它关闭时,电源断开。只要带宽足够,任何模拟值都可以通过PWM进行编码。
大多数负载,无论是感性负载还是容性负载,都要求调制频率高于10Hz,通常范围为1kHz至200kHz。
许多微控制器包含PWM控制器。例如,微芯片PIC16C67包含两个PWM控制器,每个控制器都可以选择开启时间和周期。占空比是导通时间与周期的比值;调制频率是周期的倒数。在执行PWM操作之前,该微处理器需要在软件中完成以下任务:
1、设置提供调制方波的片内定时器/计数器的周期。
2、在PWM控制寄存器中设置on时间
3、设置PWM输出的方向,这是一个通用I/O引脚。
4、启动计时器
5、启用PWM控制器
现在市面上的单片机几乎都有PWM模块功能。如果没有(比如早期的8051),也可以用定时器和GPIO口来实现。PWM模块比较通用的控制流程是(我用过TI的2000系列,AVR的Mega系列,TI的LM系列):
1、启用相关模块(对应引脚的PWM模块和GPIO模块)。
2、配置PWM模块的功能,具体为:
:设置PWM定时器的周期,它决定了PWM波形的频率。
:设置PWM定时器的比较值,决定PWM波形的占空比。
:设置死区,需要避免桥臂直接连接。一般较高档的单片机都有这个功能。
:设置故障处理情况,一般故障是阻断输出防止功率管过流损坏,故障一般由比较器、ADC或GPIO检测。
:设置同步功能,多桥臂即多个PWM模块协同工作时尤为重要。
3、设置相应的中断写ISR,一般用于电压电流采样,计算下一周期的占空比,改变占空比。这部分还具有PI控制的功能。
4、启用PWM波形生成。
脉宽调制(PWM)和脉冲频率调制(PFM)是PWM信号产生电路中开关电源的控制方式,大多采用PWM方式。因此,简要介绍了PWM控制原理。图为PWM信号产生电路的框图和工作波形,其工作过程如下:对于被控电压Uo。通过检测获得的反馈电压Ur被施加到放大器A1的非反相输入端,并且固定参考电压Uo被施加到A1的反相输入端。由A1放大的DC误差电压Ue被施加到比较器A2的反相输入端,并且由固定频率振荡器产生的锯齿波信号Usa被施加到A2的非反相输入端。A2输出方波信号,其占空比随误差电压变化,即实现脉宽调制。对于单管变换器,A2输出的PWM信号可以作为开关信号来控制功率晶体管。对于推挽式或桥式等功率变换电路,PWM信号要分成两组信号,即分相。分相电路由一个触发器和两个与门组成,触发器的时钟信号对应锯齿波的下降沿。A端和B端输出两组相位差为180的PWM信号。
(a)PWM信号生成电路的框图;(b)工作波形
基于PWM快速产生模拟电压的方法1、概述在电子与自动化技术的应用中,数字信号转换和模拟控制信号输出是电子设计中的常见问题,但很多单片机并没有集成数模转换器(DAC)。当然,市场上也有一些专用的D/A转换芯片,但是这些芯片价格昂贵,需要多个处理器功能引脚来控制,不适合一般的简单应用。
所以在某些应用中,利用单片机的PWM输出(或者通过定时器和软件实现PWM输出)并通过简单的RC滤波电路实现DAC得到模拟电压是一个不错的选择。然后,这种方法的缺点是电平转换时间太长。本文提出了一种新的方法来克服这个问题。
2、RC滤波电路图1是传统的RC滤波电路,PSoC通过GPIO口和RC滤波产生模拟电压。
图1,RC滤波器电路产生模拟电压。
在这种方法中,PWM通过px [y]输出,Vout是所需的模拟电压。PWM的输出在电压VDD和0之间切换,PWM的占空比(DC)决定Vout的输出值。增加DC输出电压也会增加(当DC=0%,Vout=GND;当DC=100%时,Vout=VDD)。
这种方法简单,但缺点是电平转换时间长。例如,当DC从一个值变为另一个值时,Vout从一个电压变为最终稳定电压可能需要几ms,如图2所示。
图2,RC滤波器电路的电平转换时间
在某些应用中,长电平转换时间并不适用。下面我会提供一个新的方法来减少这个时间。当然,也可以通过降低电容电阻(RC)值、提高PWM频率来缩短电平切换时间,但由于某些单片机的固有缺陷,没有办法提高PWM频率。
3、电压跟随器电路本文介绍了一种新的方法,可以把转换时间减少到几十微秒。除了RC滤波,这种方法还使用了一个电阻、一个三极管和另一个GPIO端口。三极管采用电压跟随器模式设计,如下图3所示。
图3,电压跟随器电路产生模拟电压。
晶体管t是模拟电压Vc到Vout的开关。在空闲状态下,将PA [b]设置为“strongdrive”模式,并将其设置为高电平(逻辑1),以便Vout=VDD。以下步骤将使Vout从空闲状态变为指定电压状态。
1)启用PWM并将其设置为指定的占空比DC。计算PWN占空比时,应考虑三极管be之间的电压降(Vbe)。Vc=Vout Vbe,这就给出了DC=(Vout Vbe)/VDD。
2)延迟足够长的时间,使Vc稳定在指定电压,注意在此延迟期间,Vout保持在VDD的高电平。
3)将GPIO口PA [b]的驱动模式设置为“High-Zanalog”,这将导致晶体管T的工作状态和Vout立即成为规定的最终电压(只有几十微秒)。
以下步骤将使Vout从指定电压转换到空闲状态(Vout=VDD)。
1)将PA [b]的驱动模式设置为“strongdrive”并将引脚设置为hi
2)如有必要,此时可以停止PX [Y]端口的PWM,以降低功耗。
电平转换如图4所示,当Vc处于电压下降的不稳定过程时,Vout保持高电平。
图4,电压跟随器电路的电平转换时间
4、实验和测试结果Cypress的CY8C20x24系列芯片中没有PWM模块,所以如果需要输出模拟电压,只能使用内部的TImer13模块产生PWM,然后使用外围电路产生模拟电压。下面以CY8C20224芯片为例,介绍两种模拟电压产生方法的测试。
1)用RC电路测试。
由于CY8C20224提供的Timer13的输入时钟为32KHz,因此产生的PWM频率相对较低。为了减少模拟电压值的纹波,必须提高RC电路的电阻和电容值。在实验电路中,R=47K,C=0.1UF.下图5显示了示波器捕捉到的波形。
图5,RC滤波电路的电平转换波形
从上图可以看出,电压从空闲状态(VDD=3.3V)变化到稳定电压1.0V,大约需要13~15ms。
这在某些应用中是不够的。
2)用电压跟随器电路测试。
如果使用电压跟随器电路,将电压从空闲状态(VDD=3.3V)变为1.0V的稳定电压需要不到50us,如下图6所示:
图6,电压跟随器电路的电平转换波形
标签:PWM电压电路