你的位置:首頁 > 電源管理 > 正文

一種基于PWM的更快速的DAC

發(fā)布時間:2021-03-26 來源:Dusan Ponikvar 責(zé)任編輯:wenwei

【導(dǎo)讀】當(dāng)你需要從一個不帶數(shù)模轉(zhuǎn)換器(DAC)的微控制器輸出模擬信號時,你可以外加一個DAC芯片。但是你也可以用另一種更經(jīng)濟(jì)的方法,即采用脈寬調(diào)制(PWM)輸出加低通濾波器(LPF)取其平均值的方法,該平均值等于PWM信號的占空比。
 
一種基于PWM的更快速的DAC
圖1:用RC低通濾波器得到PWM信號的平均值
 
RC低通濾波器濾除掉非直流信號,得到的便是平均信號UOUT。如果PWM信號的周期T為63個時鐘周期,UOUT將會是64個離散DC值之一。(0 到 63,6位分辨率。)
 
RC低通濾波器的時間常數(shù)τ必須足夠大以平滑輸出信號UOUT,紋波?UOUT應(yīng)小于一個最低有效位(LSB)。最壞的情況出現(xiàn)在50% 占空比時(如圖2所示)。當(dāng)τ遠(yuǎn)大于周期T時,電容的充電電流IC 和變化?UOUT可近似為:
 
一種基于PWM的更快速的DAC
 
對于一個6位的DAC,UOUT應(yīng)小于 VCC/64,要求濾波器的τ=RC ≥ 16·T。
 
一種基于PWM的更快速的DAC
圖2:濾波輸出(藍(lán)色)的紋波應(yīng)小于一個LSB
 
一些實用數(shù)據(jù):低功耗微處理器常使用一個32768Hz晶體振蕩器作為PWM模塊的時鐘信號。如果是6位PWM,則周期T為64/32768≈2ms,因此需要32ms的時間常數(shù),也就是要等待5τ(160ms)來使6位轉(zhuǎn)換器穩(wěn)定。非常慢。本設(shè)計實例將展現(xiàn)你如何才能加速完成信號的轉(zhuǎn)換。
 
微控制器中的PWM模塊通??梢援a(chǎn)生多個PWM信號。我們來考慮一下將兩個基于PWM的3位DAC(DACH和DACL)的輸出求和,求和前DACL輸出的幅度被減小到了八分之一。得到的信號相當(dāng)于一個6位DAC,但將會比簡單版本有重大的優(yōu)勢:周期T對于相同的分辨率僅為8個時鐘周期,而所需的時間常數(shù)τ是原來的八分之一,DAC的穩(wěn)定時間快了8倍。這樣改進(jìn)后就很容易用電阻為兩個PWM信號(PWMH、PWML)實現(xiàn)RC濾波器:
 
一種基于PWM的更快速的DAC
圖3:將兩個基于PWM的DAC輸出合到一起
 
輸出信號UOUT等于:
 
一種基于PWM的更快速的DAC
 
這一技術(shù)已經(jīng)在TI MSP430F5132微控制器中實現(xiàn):
 
一種基于PWM的更快速的DAC
圖4:基于6位(3+3)PWM的DAC的初始化和寫入代碼
 
一種基于PWM的更快速的DAC
圖5:基于6位PWM的DAC測量輸出;藍(lán)線:圖1方案(穩(wěn)定時間160ms);紫線:圖3方案(穩(wěn)定時間20ms)。
 
7位DAC可以用1%精度的電阻實現(xiàn)。這次,兩個PWM信號用來產(chǎn)生兩個3位DAC,最終實現(xiàn)6位的效果,MSb只用P3.7引腳來設(shè)置為0或1。
 
一種基于PWM的更快速的DAC
圖6:基于7位PWM的DAC的實現(xiàn)
 
一種基于PWM的更快速的DAC
圖7:圖6電路的測量輸出結(jié)果;注意其優(yōu)秀的線性度
 
一種基于PWM的更快速的DAC
圖8:基于7位(3+3+1)PWM的DAC的初始化和寫入代碼
 
這里的速度提升更加明顯。一個簡單的PWM DAC需要128個時鐘周期(128/32768 s-1=3.9ms),因此τ=32·T=125ms,穩(wěn)定時間為5·125ms=625ms。圖7的穩(wěn)定時間為40ms,快了16倍。使用高階的LPF濾波器也有助于縮短穩(wěn)定時間。
 
 
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理。
 
推薦閱讀:
 
用復(fù)位控制器IC減小繼電器線圈電流
電源電壓微調(diào)電路的設(shè)計方法
貿(mào)澤電子與NXP攜手推出全新智能運輸解決方案電子書
物聯(lián)網(wǎng)時代如何才能確保SoC的安全
電源并聯(lián):多選項,衡利弊
要采購濾波器么,點這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉