【導讀】將PWM與一個小型R-2R梯形DAC相結合,既可大大減小PWM紋波,又能增加DAC分辨率,從而提高兩方面的性能。本設計實例利用一個8電阻陣列和3個輸出引腳對R-2R梯形DAC進行修改重構,修改的目的是將底部2R連接到PWM輸出而不是將其接地。
將PWM和小型R-2R梯形DAC相結合可同時提高雙方的性能,它能顯著減小PWM紋波,還能提高數模轉換器(DAC)的分辨率。
本設計實例利用一個八電阻陣列和三個引腳,將底部的2R從連接到地改為連接到PWM輸出,對R-2R梯形DAC進行了重構(圖1)。
圖1:混合式PWM/R-2R DAC。
在梯形結構中,VCC分為8段,每一級(0% PWM)到相鄰更高級(100% PWM)的空隙由PWM填充。這種方法可以將紋波減小到1/8,同時分辨率也會增加額外3個高階比特。或者你也可以從原始PWM占空比值的頂部拿走這3個比特,然后將其時鐘速率乘以8。這樣仍能實現8:1的紋波減小,但時鐘速率的增加會將PWM噪聲進一步壓到濾波器的底部,得到更大的衰減。
仿真
我對這種混合方法進行了仿真。
圖2:比較/仿真電路。
要與傳統的簡單低通濾波器(圖2)進行比較,你應記得R-2R梯形結構的輸出電阻是R,因為我建議將陣列中的兩個電阻并聯起來形成R(單個電阻是2R),一個10kΩ的陣列產生5kΩ的輸出電阻。這就是我在傳統方法中使用的電路,其中的1µF電容是相同的。我將PWM設為50%的占空比,因為這時會產生最差的紋波。仿真結果(圖3)顯示傳統方法有約4mV的波紋,而第一種方法(在原8比特基礎上增加3個新的比特)生成的紋波是493µV,相當于傳統方法的1/8。第二種方法(將PWM時鐘提高8倍,總比特數仍然是8)產生的紋波僅61µV,大約是原始紋波的1/65。
圖3:仿真結果。
圖4a(PWM+低通)和圖4b(11位混合)是將電壓從0V緩慢地一步步調到5V的復雜仿真結果。濾波器中的電容特意選用了很小的值,以便我們能看清這種情況下的紋波。在正常的R-2R梯形中增加一個階梯狀圖形(圖4b中的紅色),以便顯示PWM是如何從一級移動到下一級,甚至越過R-2R梯形頂部直到5V。
圖4:仿真得到的基本PWM DAC(圖4a,上)和混合DAC(圖4b,下)的紋波。
用數字控制振蕩器(NCO)技術代替PWM也一樣可行。數控振蕩器(增加一個值到累加器并輸出進位)比PWM更有優(yōu)勢,因為它可以減小50%設置點附近的紋波(通過增加轉換頻率),這是簡單PWM表現最差的地方。
用任何其它的DAC也行得通:只需將PWM/NCO/任何信號連接到最低有效位。
測試
下面是一些測試結果:我本來打算使用容差是±2%的電阻陣列,±1%甚至±½%的電阻陣列也找得到,不過我手頭沒有,所以我就用單個精度為1%的電阻。我將運行于16MHz的ATmega328處理器的定時器timer1設定為給8位PWM使用,并使用10位ADC開展測量。由于PWM、R-2R和ADC參考的都是VCC,我們可以忽略這個因素,針對8級中的每一級只檢查從ADC讀取的值,PWM則設為0%和100%。理想情況下,第一步的100%輸入對下一步應該沒有任何影響。
這些值看起來非常合理。然后我使用了一種技術,借助ATmega328的功能,使用與生成PWM相同的定時器來設定模數轉換,我把這種技術稱之為“Slow-scilloscope”。這樣我們就可以測量給定PWM周期內的紋波。圖5是帶低通濾波器的傳統PWM(綠色)和混合(黑色+紅色)的合成圖。這兩種方案都使用了非常小的電容,以便能看清紋波。
圖5:測量得到的PWM和混合式DAC的紋波。
圖6顯示了在每種混合設置下的非同步模數轉換的曲線,允許結果中的紋波作出(或多或少)隨機的變化。這次使用了一個較大的電容以便獲得更加真實的結果。
圖6:測量得到的混合數模轉換器紋波,電容為最終值。
總之,我們已經看到,PWM可以填充R-2R DAC階躍之間的空隙,R-2R梯形結構可以顯著減小通常由PWM加上低通濾波器產生的紋波,或者兩者兼有。
本文原文刊登在EDN美國網站,參考鏈接 Hybrid PWM/R2R DAC improves on both。
本文轉載自電子技術設計。
推薦閱讀: