每個PWM DAC設計都需要類比濾波,以將有需要的直流分量(與PWM工作週期成比例)與不需要的交流波紋分開。最簡單的方法是採用基本的RC低通濾波器,它給出峰峰值波紋幅度(這是針對50% PWM工作周期的最壞情況,其中TPWM=PWM週期時間,並假設RC>TPWM):

Vripple/Vfullscale=TPWM/4·RC

顯而易見的設計取捨是:雖然選擇足夠大的RC乘積可以實現任何期望的波紋衰減度,但是穩定時間將相應地受到影響。例如,如果(相當邏輯地)選擇穩定帶等於波紋幅度這樣一種定義,則:

Tsettle=RC·ln(Vfullscale/Vripple)= TPWM·Vfullscale·ln(Vfullscale/Vripple)/(4·Vripple)

這種關係的結果可以用8位元的例子來說明:

給定: Vripple/Vfullscale=1/256; RC=64·TPWM

Tsettle=64·ln(256)·TPWM=355·TPWM

這裡,即使有相當快的32kHz(31μs TPWM),穩定時間仍然是相當冗長的11ms。

顯然,如果穩定時間是個關鍵的設計參數,就需要做得更好,並找到一個不會過於簡單的濾波方案。筆者以前寫的一篇設計實例「快速穩定的同步PWM-DAC濾波器幾乎沒有波紋(Fast-settling synchronous-PWM-DAC filter has almost no ripple)」說明了沿著這個思路的極大可能性。

但並不是每個應用都不能容忍冗長的355TPWM穩定時間,或可證明確實需要這樣一種複雜的濾波方案。本設計實例解決了這些常見的應用問題,如圖1所示,透過一個反相器、R2和C2對基本的R1/C1低通濾波器進行了增強;反相器、R2和C2一道從所需的直流訊號中消除並減去(大部分)不需要的交流分量,從而得到一個相對乾淨的類比訊號輸出,其穩定時間比簡單的RC濾波器短得多。

20180328TA01P1 圖1 PWM DAC波紋消除器的波形和原理圖。

但是,「相對乾淨」是多乾淨?「快得多」又是多快?設置R2=R1和C2=C1,則新電路的波紋和穩定時間值為:

Vripple/Vfullscale=(TPWM/4·RC)2

Tsettle=TPWM·ln(Vfullscale/Vripple)·(Vfullscale/16·Vripple)1/2

再次參考8位元的例子(圖1):

給定: RC=4·TPWM

Tsettle=22·TPWM=0.69ms

採用32kHz的週期,速度提高了16倍,波紋-幅度比成倍提高。

對許多應用而言,這是在電路複雜性的適度增加和PWM DAC性能的顯著提高之間非常有價值的折衷。

(參考原文:Cancel PWM DAC ripple with analog subtraction,by Stephen Woodward)