• 鋰電池知識

    電池知識

    鋰離子、磷酸鐵鋰、錳酸鋰、新能源

    要怎么樣使微解決器的PWM頻率和辨別率翻倍

    2021-04-24 ryder

    降低PWMDAC紋波的辦法通常有兩種:一種是降低低通濾波器的截止頻率,另一種是提高PWM信號的頻率。然而,前一種辦法會加長上升時間,后一種辦法會導致辨別率降低。本設計實例討論了在不使用上述兩種辦法的情況下,要怎么樣降低PWMDAC的紋波。


    我們大多數人都了解PWMDAC(數模轉換器)。它們很容易實現,也很便宜,非常適合一些低性能的使用。


    實現它們的辦法是濾除PWM信號中的高頻分量,只留下正比于占空比的低頻或直流分量。但是低通濾波器并不能完全濾除PWM頻率,因此低頻/直流信號中通常都會有一定程度的紋波。


    減少PWMDAC紋波的辦法一般有兩種。一種是降低低通濾波器的截止頻率,另一種是提高PWM信號的頻率。然而不可避免的是,更低的截止頻率會延長上升時間;倘若是在給按時鐘頻率點通過減小計數器尺寸實現的,那么更快的PWM頻率會降低辨別率。


    下面要討論的設計實例非常有趣,著重解析了另外一種降低PWMDAC紋波的辦法。


    事實上,我們可以使用相位差為180的兩個PWM信號來降低上述紋波。從直覺上,當兩個相同頻率的正弦波的相位相差180時,它們會相互抵消,因此我們使用相位差為180的兩個PWM信號也能將彼此的諧波分量抵消干凈,是這樣嗎?實在是這樣,但并不是PWM信號的所有諧波分量都能抵消,有些分量可以抵消,有些卻抵消不了。這與傅里葉級數有關,比較復雜,這里就不羅列一大堆數學公式來進行解釋了。


    兩個PWM信號之間180的相位差是要怎么樣實現的呢?我使用了TI的MSP320FR5969LaunchPad,這種辦法很常用。為了實現相位移動,要兩個按時器。其中一個按時器非得蘊含兩個比較-捕獲-PWM(CCP)模塊,另一個只要一個CCP模塊。


    在蘊含兩個CCP模塊的按時器中,可以用一個CCP模塊來設置該按時器的PWM頻率和占空比,另一個CCP模塊萌生中斷,用于啟動另一個按時器,兩者的延時等于PWM周期的一半。另一個按時器中的CCP模塊用于設置相同的PWM頻率和占空比。你還非得對這個延時進行微調,因為軟件會在PWM信號之間新增額外的時間。舉例來說,在我的代碼的102行,我將比較寄存器的值從(timer_period+1)/2改為了(timer_period+1)/2-27。


    我做了一些小調查,想看看其它微控制器是不是具有相同的硬件和能力來實現我所用的辦法:許多Atmel微控制器都有1個以上的按時器,每種控制器通常都有兩個CCP(比如ATmega328),因此實現這種辦法應當是可能的。另外一個常見的例子是STM32F051R8(這是一些流行的ST電路板使用的微控制器),它有11個按時器,其中許多按時器都有1個以上的CCP。TI基于ARM的微控制器通常有獨立的PWM和按時器模塊(如TM4C123GH6PM),因此應當更容易實現相移。使用其中一個按時器,兩個PWM模塊就可以以一半PWM周期的延時開啟。


    圖1:單路和雙路PWM電路。


    在相移DAC的Vout端,兩個PWM信號被累加在一起,結果有些諧波分量彼此抵消,最終實現了降低紋波的效果。


    我們看看使用三種不同電阻值時的情況。每個PWM信號都是占空比為25%、頻率為100kHz。


    圖2:上面的波形是傳統PWM,下面的波形是雙路相移PWM。從左到右每格的電壓遞減100mV、50mV、4mV。


    從圖中的結果可以看出:首先,峰-峰紋波降低了;其次,傳統PWMDAC的紋波基頻等于PWM信號的頻率(100kHz)。相移PWMDAC的紋波基頻等于PWM信號的二次諧波(200kHz),這意味著我們用相移DAC成功地刪除了PWM信號的一次諧波。


    這種辦法的一個優勢是不用新增上升時間也能降低紋波(或者相同的紋波只需一半的上升時間)。


    另外一個潛在優勢是,將兩個PWM設置為相隔一個計數值可以獲得中間值,進而實現DAC有效辨別率的翻倍。雖然這會導致少許的不對稱并新增紋波,但是影響很小可以忽略不計。

    聲明: 本站所發布文章部分圖片和內容自于互聯網,如有侵權請聯系刪除

    用手機掃描二維碼關閉
    二維碼
    国产在线精品一区二区高清不卡