如何使微處理器的PWM頻率和分辨率翻倍?
我們大多數(shù)人都知道PWM DAC(數(shù)模轉(zhuǎn)換器)。它們很容易實(shí)現(xiàn),也很便宜,非常適合一些低性能的應(yīng)用。
本文引用地址:http://2s4d.com/article/201710/370385.htm實(shí)現(xiàn)它們的方法是濾除PWM信號中的高頻分量,只留下正比于占空比的低頻或直流分量。但是低通濾波器并不能完全濾除PWM頻率,因此低頻/直流信號中通常都會(huì)有一定程度的紋波。
減少PWM DAC紋波的方法一般有兩種。一種是降低低通濾波器的截止頻率,另一種是提高PWM信號的頻率。然而不可避免的是,更低的截止頻率會(huì)延長上升時(shí)間;如果是在給定時(shí)鐘頻率點(diǎn)通過減小計(jì)數(shù)器尺寸實(shí)現(xiàn)的,那么更快的PWM頻率會(huì)降低分辨率。
下面要討論的設(shè)計(jì)實(shí)例非常有趣,著重介紹了另外一種降低PWM DAC紋波的方法。
事實(shí)上,我們可以使用相位差為180°的兩個(gè)PWM信號來降低上述紋波。從直覺上,當(dāng)兩個(gè)相同頻率的正弦波的相位相差180°時(shí),它們會(huì)相互抵消,因此我們使用相位差為180°的兩個(gè)PWM信號也能將彼此的諧波分量抵消干凈,是這樣嗎?確實(shí)是這樣,但并不是PWM信號的所有諧波分量都能抵消,有些分量可以抵消,有些卻抵消不了。這與傅里葉級數(shù)有關(guān),比較復(fù)雜,這里就不羅列一大堆數(shù)學(xué)公式來進(jìn)行解釋了。
兩個(gè)PWM信號之間180°的相位差是如何實(shí)現(xiàn)的呢?我使用了TI的MSP320FR5969 LaunchPad,這種方法很常用。為了實(shí)現(xiàn)相位移動(dòng),需要兩個(gè)定時(shí)器。其中一個(gè)定時(shí)器必須包含兩個(gè)比較-捕獲-PWM(CCP)模塊,另一個(gè)只需要一個(gè)CCP模塊。
在包含兩個(gè)CCP模塊的定時(shí)器中,可以用一個(gè)CCP模塊來設(shè)置該定時(shí)器的PWM頻率和占空比,另一個(gè)CCP模塊產(chǎn)生中斷,用于啟動(dòng)另一個(gè)定時(shí)器,兩者的延時(shí)等于PWM周期的一半。另一個(gè)定時(shí)器中的CCP模塊用于設(shè)置相同的PWM頻率和占空比。你還必須對這個(gè)延時(shí)進(jìn)行“微調(diào)”,因?yàn)檐浖?huì)在PWM信號之間增加額外的時(shí)間。舉例來說,在我的代碼的102行,我將比較寄存器的值從(timer_period+1)/2改為了(timer_period+1)/2-27。
我做了一些小調(diào)查,想看看其它微控制器是否具有相同的硬件和能力來實(shí)現(xiàn)我所用的方法:許多Atmel微控制器都有1個(gè)以上的定時(shí)器,每種控制器通常都有兩個(gè)CCP(比如ATmega 328),因此實(shí)現(xiàn)這種方法應(yīng)該是可能的。另外一個(gè)常見的例子是STM32F051R8(這是一些流行的ST電路板使用的微控制器),它有11個(gè)定時(shí)器,其中許多定時(shí)器都有1個(gè)以上的CCP。TI基于ARM的微控制器通常有獨(dú)立的PWM和定時(shí)器模塊(如TM4C123GH6PM),因此應(yīng)該更容易實(shí)現(xiàn)相移。使用其中一個(gè)定時(shí)器,兩個(gè)PWM模塊就可以以一半PWM周期的延時(shí)開啟。
圖1:單路和雙路PWM電路
在相移DAC的Vout端,兩個(gè)PWM信號被累加在一起,結(jié)果有些諧波分量彼此抵消,最終實(shí)現(xiàn)了降低紋波的效果。
我們看看使用三種不同電阻值時(shí)的情況。每個(gè)PWM信號都是占空比為25%、頻率為100kHz。
圖2:上面的波形是傳統(tǒng)PWM,下面的波形是雙路相移PWM。從左到右每格的電壓遞減100mV、50mV、4mV。
從圖中的結(jié)果可以看出:首先,峰-峰紋波降低了;其次,傳統(tǒng)PWM DAC的紋波基頻等于 PWM信號的頻率(100kHz)。相移PWM DAC的紋波基頻等于PWM信號的二次諧波(200kHz),這意味著我們用相移DAC成功地刪除了PWM信號的一次諧波。
這種方法的一個(gè)優(yōu)點(diǎn)是不用增加上升時(shí)間也能降低紋波(或者相同的紋波只需一半的上升時(shí)間)。
另外一個(gè)潛在優(yōu)點(diǎn)是,將兩個(gè)PWM設(shè)置為相隔一個(gè)計(jì)數(shù)值可以獲得中間值,進(jìn)而實(shí)現(xiàn)DAC有效分辨率的翻倍。雖然這會(huì)導(dǎo)致少許的不對稱并增加紋波,但是影響很小可以忽略不計(jì)。
評論