<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用PWM得到精密的輸出電壓

          使用PWM得到精密的輸出電壓

          作者: 時(shí)間:2012-04-09 來(lái)源:網(wǎng)絡(luò) 收藏

          近年來(lái),許多單片機(jī)生產(chǎn)廠家,如Atmel、Analog Divices、Intel、Philips、Dallas、Maxim等等,紛紛推出了新型的高速單片機(jī)。它們的指令執(zhí)行周期僅是原來(lái)的1/3~1/十幾,并在單片機(jī)中集成了EEPROM、WDT、A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器,大大地提高了單片機(jī)的性能,方便了用戶。然而,許多單片機(jī)中的D/A轉(zhuǎn)換器的都采用了脈寬調(diào)制()的形式。十分適用于開關(guān)電源、可控硅等器件的控制,也可于LCD亮度控制、音頻等不需要精確的場(chǎng)合。由于沒有基準(zhǔn),它的輸出脈沖的幅度不是很恒定,這就限制了PWM的范圍。在要求輸出控制的場(chǎng)合,如可調(diào)電壓源、電機(jī)變頻器等等,就無(wú)法PWM。

          本文引用地址:http://www.ex-cimer.com/article/171671.htm

          然而,只需使用2片廉價(jià)的集成電路就可以把幅度不恒定的PWM輸出轉(zhuǎn)換成的PWM輸出電壓。

          1 電路原理

          使用三端精密基準(zhǔn)電源和模擬開關(guān)電壓精密的PWM脈沖的電路原理如圖1所示。D1為TL431三端基準(zhǔn)電壓集成電路,U1采用單刀雙擲的模擬開關(guān)MAX4544;電阻R1、R2、R3根據(jù)具體的需要而定。當(dāng)然,也可以采用其它型號(hào)的集成電路。

          當(dāng)PWM脈沖為高電平(邏輯1)時(shí),U1的COM端擲向常閉端(NC),TL431的調(diào)整腳與正電壓腳相連,輸出電壓值為2.5 V。當(dāng)PWM脈沖為低電平(邏輯0)時(shí),U1的COM端擲向常開端(NO),TL431的輸出電壓經(jīng)過(guò)R2、R3 分壓后送到調(diào)整腳,此時(shí)輸出電壓值等于[(R2+R3)/R3]×2.5 V。本例中輸出電壓等于8 V。這樣,當(dāng)U1的IN 腳輸入PWM信號(hào)時(shí),電路相應(yīng)地輸出高電平為8 V,低電平為 2.5 V的PWM脈沖,其振幅為 8 V - 2.5 V = 5.5 V 。如果需要輸出低電平為零的PWM信號(hào),則再加上1個(gè)差分放大器就可解決。

          在對(duì)于精密度的要求不是很高的場(chǎng)合,可以采用更簡(jiǎn)單的方法。圖2為使用精密穩(wěn)壓二極管對(duì)PWM脈沖進(jìn)行穩(wěn)壓限幅的電路圖。在圖2中,PWM信號(hào)經(jīng)過(guò)高速運(yùn)算放大器U1放大成為±12 V的輸出電壓,在經(jīng)過(guò)R1的限流和D1的穩(wěn)壓后, ±6.5 V 的PWM脈沖輸出。

          2 誤差分析

          47.jpg

          圖1中,只要基準(zhǔn)電源選取恰當(dāng),基準(zhǔn)電源本身的誤差完全可以忽略。除此之外,誤差的來(lái)源主要有以下幾個(gè)方面:

          (1)模擬開關(guān)的導(dǎo)通電阻引起的誤差

          模擬開關(guān)導(dǎo)通時(shí)有一定的導(dǎo)通電阻。TL431調(diào)整腳輸入電流通過(guò)模擬開關(guān)時(shí)就會(huì)形成電壓降,產(chǎn)生誤差。MAX4544的導(dǎo)通電阻為35 Ω,而TL431的調(diào)整腳輸入電流則在4 μA以下。由此而導(dǎo)致基準(zhǔn)電壓的誤差小于140 μV,為2.5 V的 0.000 056,相當(dāng)于二進(jìn)制14位的精度。

          (2)開關(guān)延遲時(shí)間引入的誤差

          開關(guān)延遲時(shí)間將會(huì)引起脈沖占空比的變化,從而導(dǎo)致PWM輸出脈沖產(chǎn)生誤差。MAX4544的導(dǎo)通時(shí)間為30 ns,關(guān)斷時(shí)間為25 ns。計(jì)算可知,當(dāng)PWM頻率為10 kHz時(shí),由此產(chǎn)生的誤差最大為0.0003,相當(dāng)于12位的精度。如果PWM的頻率選得較低,則開關(guān)延遲時(shí)間的影響相應(yīng)減小。例如選取1 kHz時(shí),引入誤差為0.000 03,相當(dāng)于15位的精度。

          上述兩項(xiàng)中真正影響輸出電源精度的是這些參數(shù)隨溫度和時(shí)間的漂移。由于這兩項(xiàng)參數(shù)本身的絕對(duì)值非常小,可以推知它們的漂移更小。

          從以上的分析可知,由于附加電路引入的誤差完全能夠滿足PWM的精度需求。

          48.jpg

          圖2電路中,引起誤差的原因主要有3個(gè)方面:

          (1)穩(wěn)壓二極管的動(dòng)態(tài)電阻引入的誤差

          穩(wěn)壓二極管的動(dòng)態(tài)電阻比較大,一般在幾十Ω左右(工作電流5~10 mA時(shí));而運(yùn)算放大器的驅(qū)動(dòng)能力比較小,只能使穩(wěn)壓二極管工作在較小的工作電流下。另外,穩(wěn)壓二極管小電流工作時(shí)的動(dòng)態(tài)電阻更大,更容易引起電壓變化。

          (2)穩(wěn)壓二極管溫度漂移引入的誤差

          2DW7(2DW230~236)內(nèi)部結(jié)構(gòu)可以認(rèn)為是2個(gè)穩(wěn)壓二極管對(duì)接串聯(lián)而成的。其中一個(gè)二極管的正向電壓降(具有負(fù)溫度系數(shù))對(duì)另一個(gè)穩(wěn)壓二極管的溫度漂移(具有正溫度系數(shù))進(jìn)行補(bǔ)償,很低的溫度系數(shù)。然而,當(dāng)2DW7反向應(yīng)用時(shí),其溫度漂移就不能得到恰當(dāng)?shù)难a(bǔ)償,從而導(dǎo)致負(fù)脈沖部分的溫度系數(shù)較高。

          (3)運(yùn)算放大器引入的誤差

          運(yùn)算放大器的輸入失調(diào)電壓的漂移可直接導(dǎo)致脈沖振幅的誤差;而轉(zhuǎn)換速率(SR)過(guò)低,將導(dǎo)致脈沖方波波形的失真,繼而引起電壓的誤差。失調(diào)電壓溫度漂移低并且轉(zhuǎn)換速率高的運(yùn)算放大器的價(jià)格將會(huì)很高。

          但是,對(duì)于8~10位的PWM而言,該電路已經(jīng)能夠滿足要求。對(duì)于要求更低的場(chǎng)合,可以用2個(gè)廉價(jià)的穩(wěn)壓二極管對(duì)接來(lái)代替2DW7。

          3 應(yīng)用實(shí)例

          利用單片機(jī)的PWM輸出,在圖1的基礎(chǔ)上增加RC濾波電路和1級(jí)運(yùn)算放大器,得到0~10 V直流輸出電壓,作為變頻器的控制信號(hào),取得了良好的效果。圖 3 所示為使用PWM輸出控制變頻器的實(shí)例。
          49.jpg

          pwm相關(guān)文章:pwm原理


          絕對(duì)值編碼器相關(guān)文章:絕對(duì)值編碼器原理
          脈寬調(diào)制相關(guān)文章:脈寬調(diào)制原理


          關(guān)鍵詞: 輸出 電壓 精密 得到 PWM 使用

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();