性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

詳談PWM轉(zhuǎn)DAC及低通濾波器

PWM可以算是數(shù)字電路中的“獨臂”神通,“獨臂” - 只需一根線;“神通” - 在很多關(guān)鍵的應(yīng)用中起到棟梁的作用。PWM(脈寬調(diào)制 Pulse Width Modulation)從字面意思上講它是一種“調(diào)制”方式,調(diào)制就意味著在某些載波信號上攜帶了某些的信息,通過解調(diào)的過程就可以得到其攜帶的信息,這些信息的屬性由PWM的產(chǎn)生端定義,總之在這一根僅僅發(fā)生0、1交替變化的信號線上可以做出很多文章。

今天我們就看看如何通過PWM的方式實現(xiàn)數(shù)字到模擬變換的功能,也就是通過改變一根管腳的輸出脈沖,得到模擬世界的某種波形。

首先PWM是由一串連續(xù)行走在某輸出管腳上的0、1交替出現(xiàn)的信號組成,我們稱高電平1為ON,低電平0為OFF,ON+OFF為一個周期T,ON的持續(xù)時間除以周期T就為占空比 - Duty Cycle,看下面的兩個圖。

如果發(fā)送端用脈沖的占空比來傳遞“電壓值”,也就是將某個數(shù)字的電壓值對脈沖的占空比進行調(diào)制,就可以在接收端通過RC低通濾波器(也就是解調(diào)器)從調(diào)制脈寬的數(shù)據(jù)流中得到需要的模擬電壓值,從而達到DAC的目的??聪旅娴膭訄D - 假設(shè)脈沖的占空比為0的時候(整個周期全部為OFF - 低電平)代表電壓值為0,占空比為100%的時候(整個周期全部為ON - 高電平)代表電壓值為最高電壓,比如3.3V,則40%的占空比就是40%*3.3V。占空比改變-每個周期的脈寬改變,也就意味著輸出的電壓值在改變。

用脈寬的改變攜帶電壓值的變化信息

用一個電阻和電容組成的低通濾波就可以將PWM中攜帶的電壓信息“解調(diào)”成模擬的電壓值

前面講過DAC的兩個關(guān)鍵指標 - 轉(zhuǎn)換率和轉(zhuǎn)換精度,在PWM里是如何對應(yīng)的這兩個指標么?

看一下下面的波形:

PWM-DAC的轉(zhuǎn)換頻率相當于脈沖的重復(fù)頻率

PWM-DAC的分辨率相當于脈沖寬度相對于整個周期的精度,舉例如果一個最小的脈沖ON的時間為5ns(可以用100MHz的時鐘計數(shù)產(chǎn)生),PWM脈沖的周期為5ns x 256 = 1.28us,則這個PWM-DAC相當于是8位的DAC。

也就是說如果你用100MHz的時鐘來通過PWM的方式做一個8位的DAC,最高的轉(zhuǎn)換頻率也只能到1/1.28us ~ 781KHz分辨率高則轉(zhuǎn)換率降低,因此用PWM做的DAC一般用于生成非常低頻的信號乃至直流信號。

下面的圖為經(jīng)過一個最簡單的由一個電阻R和一個電容C構(gòu)成的低通濾波以后得到的模擬信號,可以看到在輸出的模擬信號上還是有很高頻率的紋波。

如果要進一步平滑輸出模擬信號上的波紋,可以通過加入電感或著用運算放大器構(gòu)成的有源低通濾波器來對紋波實現(xiàn)更強的抑制。

是不是很簡單?只需一個R和一個C就能得到你想生成的模擬信號,做一個簡單的任意波形發(fā)生器很簡單啊。

有的朋友會問,很多MCU內(nèi)部都有DAC啊,干嘛不用內(nèi)部的DAC?

蘇老師答:如果有的話自然不需要折騰PWM了,如果沒有,只需要一根管腳和倆器件就能實現(xiàn)這樣的功能還是很有用的,再說了,也許你的系統(tǒng)中需要多個DAC的功能,而你的MCU內(nèi)部沒有足夠的DAC,且你也不想或者沒有足夠的管腳外掛一個單獨的DAC器件(需要I2C或SPI總線連接),PWM方式是個非常不錯的選擇哦。

如果你用的是FPGA或CPLD,里面根本沒有DAC,而你又需要一個,拿出一個管腳來產(chǎn)生PWM就會非常666。

理解用PWM生成DAC的機制、局限,在關(guān)鍵的時候也許就能起到意料不到的結(jié)果。

最好的方式是直接動手試試嘍 - 在一個小腳丫的輸出管腳上加上R和C,用計數(shù)器生成以下PWM信號,用示波器看看你能得到什么。

首先我們看一下脈沖信號的頻譜,根據(jù)傅立葉變換,周期為T的脈沖信號可以分解為多個單頻率的信號的疊加,最小的頻率分量為1/T,有興趣的可以通過Matlab自己做一下分析。

比如,我們對幅度為3.3V、周期為10uS(頻率100KHz)、占空比為50%的脈沖信號(此時為方波)進行FFT變換,可以得到1.65V的直流分量、100KHz、300KHz(3次諧波)、500KHz(5次諧波)。。。等頻率分量,最小的交流頻率為100KHz。

從以上簡單的分析可以看出,無論占空比是多少,脈沖波形除了直流分量以外,交流部分的最低頻率都為脈沖的重復(fù)頻率100KHz上,在DC和脈沖重復(fù)頻率100KHz之間一馬平川,光禿禿的。

因此,如果要得到直流分量,只需要去掉100KHz以上的頻譜能量就可以了。最簡單的方法就是通過由一個電阻R和一個電容C構(gòu)成的一階低通濾波器,其截止頻率為fc=1/2*Pi*R*C,我們要得到的是直流分量,濾除的是100KHz以上的頻率,因此只要截止頻率在100KHz以內(nèi),并且能對100KHz以上的所有頻譜都有較好的抑制,就能夠得到比較好的DC輸出。

可以想象,截止頻率越高,越是接近要濾除的頻率(比如50KHz之于100KHz),該濾波器對100KHz的濾波效果就較差,就會有一定量的殘余能量出現(xiàn)在濾波器的輸出端,如下圖,也就是輸出的波形紋波比較高。

如果降低截止頻率,越是接近直流,從而距離要濾除的頻率越遠,比如針對100KHz的脈沖頻率選擇1KHz作為LPF的截止頻率,則在100KHz處可以達到非常高的抑制度,100KHz的殘留就非常小,也就是在輸出的直流信號上的紋波可以變得很小,如下圖

但卻出現(xiàn)了另外一個問題 - 需要花費很久的時間(學名叫建立時間 setting time)才能達到應(yīng)該達到的DAC的直流值。原因就是fc低,意味著RC更高,也就是充電的時間常數(shù)變得很長 - R增大意味著對C進行充電的電流變小,要對C沖電到一定的值花費的時間也就更久。,

因此這就出現(xiàn)了一個讓人糾結(jié)的選擇:

選擇較低的截止頻率 - 較低的紋波,較長的建立時間

選擇較高的截止頻率 - 較大的紋波,較快的建立時間

你會說一階不夠,要不多用幾階濾波器,加上電感或者有源的運放來進行低通濾波,這確實能改善濾波的效果,但 -- 電路的復(fù)雜度增加、元器件成本增加了,且改善有限。

那不增加電路的復(fù)雜程度,還是只用這一個R和一個C是否能夠改善性能呢?

答案是肯定的,其實也很簡單 - 把交流分量的頻率踢的遠遠的,在保持較低的時間常數(shù)(建立時間短)的情況下,將LPF的截止頻率fc和要濾除的脈沖重復(fù)頻率之間的間隔盡可能的拉開,比如將100KHz的重復(fù)頻率給踢到10MHz(出去100倍),占空比不變,如果用原來的50KHz的濾波器,到了10MHz的地方怎么也把10MHz以上的頻率給消滅的只剩下一點渣了??聪聢D,直流建立時間大約為15µs, 紋波變得只有25mV左右了。

是不是很神奇?其實理論依據(jù)很簡單,自己把低通濾波器的頻響曲線畫一下就很容易理解了。

到這里我們就應(yīng)該知道如何設(shè)計自己的PWM系統(tǒng)的各項參數(shù)來構(gòu)造一個簡單好用的DAC。

全部回復(fù)(5)
正序查看
倒序查看
#回復(fù)內(nèi)容已被刪除#
2
熒火
LV.4
3
2021-10-26 09:41

非常實用說得很明白很透。簡單總結(jié)就是PWM的頻率越高相對的性能就越好。波形就越圓滑。

0
回復(fù)
appleY
LV.5
4
2021-10-28 12:15

FLASH動畫是用什么軟件做的?

0
回復(fù)
2021-11-11 12:07

紋波改善那邊說的很好,真的是很實用的經(jīng)驗。對于多個濾波范圍的需求,是不是只需搭對應(yīng)的N個低通濾波電路即可?

0
回復(fù)
2021-11-18 10:06
@石工在線
紋波改善那邊說的很好,真的是很實用的經(jīng)驗。對于多個濾波范圍的需求,是不是只需搭對應(yīng)的N個低通濾波電路即可?

原理上是可以的

0
回復(fù)
發(fā)