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

          新聞中心

          STM32|4-20mA輸出電路

          作者: 時間:2018-08-01 來源:網(wǎng)絡(luò) 收藏

          為工業(yè)場合開發(fā)的設(shè)備通常情況下都會具有4-20mA輸出接口,在以往沒有DAC模塊的系統(tǒng),需要外加一主片DAC實現(xiàn)模擬量的控制,或者采用PWM來摸擬DA,但也帶來溫漂和長期穩(wěn)定性問題。在以STM32為中心的設(shè)備中,使用它自帶的DAC即可非常方便的實現(xiàn)4-20mA的輸出接口,具有精度高、穩(wěn)定性好、漂移小以及編程方便等特點。

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

          在STM32系統(tǒng)中,100腳以下沒有外接出VREF引腳,但這樣使得DAC的參考端和VCC共用,帶來較大誤碼差,為解決這一問題,可以使用廉價的TL431來解決供電問題,TL431典型溫漂為30ppm,所以在一般應(yīng)用中已非常足夠。選用兩只低溫漂電阻,調(diào)整輸出使TL431的輸出電壓在3V-3.6V之間,它的并聯(lián)穩(wěn)壓電流可達到30mA,正好能滿足一般STM32核心的功耗需求。

          利用TL431解決了供電問題,余下的就是4-20mA的轉(zhuǎn)換電路,如下圖:

          上圖即為非常精確的轉(zhuǎn)換電路,OPA333是一顆非常優(yōu)異的單電源軌至軌運算放大器,其工作電壓為2.7-5.5V,其失調(diào)電壓僅為10uV,實測最低輸出為30uV,最高輸出可達VCC-30uV。電路組成壓控恒流源,其關(guān)鍵在于OPA333這顆芯片的優(yōu)異性能,使得以上電路獲得了極高的精度和穩(wěn)定性。DACOUT來自于STM32的DAC1或者DAC2輸出,由C25進行數(shù)字噪場濾波之后進入運算,進行1:1緩沖,后經(jīng)過Q2進行電流放大,在R7上形成檢測電壓,C17進行去抖動處理。4-20mA信號由AN_OUT+/AN_OUT-之間輸出。

          上圖中,負載中的電流在R7上形成壓降,經(jīng)運放反饋后得到Vdacout=Vr7=I*R7,所以:I=Vdacout/R7,當Vdacout在400mV到2000mV之間變化時,可得到4-20mA的輸出。改變R7的大小,便可改變DACOUT的需求范圍。電路中,R2的基射極之間將有0.7V左右的偏壓,所以Vb[MAX]=2V+0.7V=2.7V,這正好在OPA333的輸出范圍之內(nèi)。電路中R14做為輸出端的限流電流,使得輸出端的最大輸出電流Imax=Vcc/(R7+R14),若Vcc取6V,則Imax=6V/200 O=30mA,若沒有R14,則最大電流可能有60mA,這時R7上的耗散功率為0.06*0.06*100=0.36W,若選用0805貼片電阻,將導(dǎo)致R7燒壞,或者由于溫度升高太嚴重導(dǎo)致R7阻值變化太大輸出引起較大偏差。加入R14之后,R7上的最大耗散功率為:0.03*0.03*100=0.09W,此時在正常的范圍之內(nèi)。

          電路中R14不可省去,C17不可省去,由于外負載可能的微小干擾或波動將導(dǎo)致OPA333組成的深度負反饋電路形成振蕩,使輸出電流波動,加入C17能抑制這種波動,使輸出更穩(wěn)定,但是C17的值不宜過大。

          使用STM32編程應(yīng)注意,其內(nèi)部不應(yīng)當開DAC緩沖,因以上電路已經(jīng)為一個高輸入阻抗的緩沖電路。由STM32內(nèi)部緩沖電路將損失掉輸出線性度。

          • STM32中文官網(wǎng)
          • STM32單片機官方開發(fā)工具
          • STM32單片機參考設(shè)計


          關(guān)鍵詞: 單片機 電路設(shè)計

          評論


          相關(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); })();