使用PWM控制来实现电压的变化控制

一、简介

  PWM就是Pulse Width Modulation,脉冲宽度调制。

  假设一个PWM信号,V = +5V,CLK = 13KHz,Duty = 50%,那么它输出的信号就可以看成是一个+2.5V的直流信号。

二、PWM的分辨率

     假设(1)芯片自带的PWM模块分辨率为10bit

    (2)PWM信号参数为:Voltage = +5V,CLK = 13KHz,Duty = 50%

  分析:

    (1)PWM模块的分辨率为10bit,那么它的可以分为1024个等级,所以一个周期可以分为1024个刻度。所以说,每一个刻度对应的电压可以是5V的1/1024,即4.88mV左右。所以可以在0-5V区间内,实现4.88mV的步进。

    (2)若PWM的时钟为25MHz的话,其输出的PWM信号最高频率可达24.4KHz左右。

        计算过程:分辨率为10bit,那么PWM内部的计数cnt最高就从0-1023,而每次计数的间隔周期是1/25MHz,所以得出PWM信号频率为24.4KHz左右。

    (3)也就说,在同一个输入时钟情况下,若要到达同一个电压,分辨率越高,所需要的计数cnt就越多,波形就越精细

三、PWM信号转换成直流信号

  PWM信号可以使用RC低通滤波器(如下图所示)来实现将PWM信号转换成等效的直流信号。 

                                        

  RC滤波器的截止频率计算公式为f = 1/(2π×RC),也就是-3dB,换算过来为0.707倍,即输入1V,输出0.707V。  衰减增益的计算公式为 X dB = 20×lg(Au)。其中Au为增益。若增益Au为10^(-3/20),换算过来分别就是0.707倍,-3dB。

  原理:PWM信号的正周期会对RC滤波电路中的电容充电,而负周期则是电容对外放电。这样,电容随着PWM信号而充电、放电,从而使电容的电压在PWM信号等效的直流信号附近波动。

  接下来,我们使用FilterLab软件来模拟一个特定滤波器的增益曲线:

                     

  该低通滤波器的截止频率为48.3Hz,对应的增益曲线如上图所示。当频率为13KHz时候,对应的增益为-46dB左右,也就是10^(-46/20) = 0.005倍左右。

  也就是说,我们对一个13KHz的PWM信号滤波,使其成为直流信号,使用该参数的低通滤波器是可以的,其纹波信号会衰减到0.005倍。

四、电路模拟

  我们用Multisim软件来进行仿真。需要注意的是时间常数τ=RC会影响电容的充电时间,也就是会影响到达稳点电压的时间。

                                                                                 

  那么,用LTspice软件进行模拟来得到更精细的波形,对滤波后的波形放大来看,可以发现其纹波是比较小的。之所以有纹波,是因为RC滤波器的截止频率不够低,滤不掉所有的噪声。

  

       

猜你喜欢

转载自www.cnblogs.com/Recca/p/11241483.html