我們大多數人都了解PWM DAC。它們易于實現,價格便宜,并且對于低性能應用程序是可接受的。
該方法是對PWM信號的HF分量進行濾波,只剩下與占空比成正比的LF或DC分量。但是,低通濾波器無法完全濾除PWM頻率,因此,LF / DC信號通常會產生一些紋波。
有兩種方法可以減少PWM DAC的紋波。您可以降低低通濾波器的截止頻率,或者提高PWM信號的頻率。當通過在給定的時鐘頻率下減小計數器大小來實現時,較低的截止頻率不可避免地會導致上升時間變慢,而較快的PWM頻率會導致分辨率下降。
我將談論一個有趣的設計思想,該思想集中在不使用上述方法的情況下降低PWM DAC的紋波。
事實證明,我們可以通過使用兩個相位差為180°的PWM信號來降低紋波。直觀地講,當兩個正弦信號在相同頻率上存在180°的相位差時,它們會相互抵消,因此當我們使用兩個具有180°相位差的PWM信號時,我們期望諧波能夠相互抵消。好吧,這是事實,但并非對PWM信號的所有諧波都如此。其中一些被取消,但其中一些
別。它與傅立葉級數有關,在本文中涉及到太多,所以我將不涉及數學。
如何在兩個PWM信號之間實現180°相移?我使用了TI的MSP430FR5969 LaunchPad,但是這種方法通常是通用的。為了實現相移,您將需要兩個計時器。其中一個定時器必須具有兩個“比較捕捉PWM”(CCP)模塊,另一個僅需要一個CCP。
您可以使用一個CCP在具有兩個CCP的定時器中設置PWM頻率和占空比,而另一個使用CCP產生中斷以啟動另一個定時器,該延遲等于PWM周期的一半。其他定時器中的單個CCP用于設置為相同的PWM頻率和占空比。您還必須“微調”延遲,因為軟件將在PWM信號之間引入額外的時間。例如,在我的代碼的第102行中,我將比較寄存器的值從(timer_period + 1)/ 2更改為(timer_period + 1)/ 2-27。
我做了一點研究,看看其他微控制器是否具有類似的硬件以及實現我使用的方法的能力:許多Atmel微控制器都有一個以上的計時器,通常每個計時器都有兩個CCP(例如ATmega 328)。因此,應該有可能實現此方法。另一個流行的例子是STM32F051R8(這是一些流行的ST板使用的微控制器)具有11個定時器,其中許多具有不止一個CCP。德州儀器(TI)的基于ARM的微控制器通常具有單獨的PWM和計時器模塊(例如TM4C123GH6PM),因此實現相移應該更容易。使用一個定時器可以啟動兩個PWM模塊,延遲時間為PWM周期的一半。如果您嘗試為不同的微控制器實現這種相移方法,請在評論部分讓我知道。
圖1 單PWM和雙PWM電路
在 相移DAC的V out處,將兩個PWM信號相加,并希望某些諧波相互抵消,因此最終可以降低紋波。
讓我們看一下使用不同電阻值的三種情況。每個PWM信號在25%占空比下均為100 kHz。
圖2 上面的跡線是常規PWM。較低的是雙相移PWM。伏/格 從左到右遞減:100mV,50mV,5mV。
通過查看結果,我們觀察到兩件事。首先,降低了峰峰值紋波。其次,常規PWM DAC的紋波基頻等于PWM信號的頻率(100 kHz)。相移PWM DAC的紋波基頻等于 PWM信號的二次諧波(200 kHz),這意味著我們已成功通過相移DAC消除了PWM信號的一次諧波。
這種方法的一個優點是在不增加上升時間的情況下降低了紋波(或在上升時間的一半處具有相同的紋波)。
另一個潛在的優勢是,通過將兩個PWM的計數間隔設置為一個中間值,可使DAC的有效分辨率加倍。這確實會引起輕微的不對稱并增加紋波,但是影響可以忽略不計。
編輯:hfy
-
驅動器
+關注
關注
53文章
8290瀏覽量
147155 -
德州儀器
+關注
關注
123文章
1740瀏覽量
141046 -
PWM
+關注
關注
114文章
5201瀏覽量
214974 -
低通濾波器
+關注
關注
14文章
485瀏覽量
47545
發布評論請先 登錄
相關推薦
從時域和頻域兩個角度對信號進行分析
![從時域和頻域<b class='flag-5'>兩個</b>角度對<b class='flag-5'>信號</b>進行分析](https://file1.elecfans.com/web1/M00/F5/62/wKgaoWc79c2AATzBAAAtESXiWJQ215.png)
評論