一、簡介
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信號等效的直流信號附近波動。
由於電容C需要充電,而且充電的時間常數為RC,存在充電電阻R,所以電容C無法跟隨輸入電壓的高頻部分變換而變換,從而將高頻部分濾除掉。
具體來說,就是PWM信號經過傅立葉變換后,2.5V是直流分量,高頻分量就被濾除掉了。或者這樣理解,就是一個周期內積分的平均值。如下圖所示,經過濾波后,直流部分的增益為4dB左右,也就是說,直信號的振幅為10^(4/10)=2.5V。
接下來,我們使用FilterLab軟件來模擬一個特定濾波器的增益曲線:
該低通濾波器的截止頻率為48.3Hz,對應的增益曲線如上圖所示。當頻率為13KHz時候,對應的增益為-46dB左右,也就是10^(-46/20) = 0.005倍左右。
也就是說,我們對一個13KHz的PWM信號濾波,使其成為直流信號,使用該參數的低通濾波器是可以的,其紋波信號會衰減到0.005倍。
四、電路模擬
我們用Multisim軟件來進行仿真。需要注意的是時間常數τ=RC會影響電容的充電時間,也就是會影響到達穩點電壓的時間。
那么,用LTspice軟件進行模擬來得到更精細的波形,對濾波后的波形放大來看,可以發現其紋波是比較小的。之所以有紋波,是因為RC濾波器的截止頻率不夠低,濾不掉所有的噪聲。