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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設計應用 > 通過增益校準提高DAC積分非線性(INL)

          通過增益校準提高DAC積分非線性(INL)

          作者:OnurOzbek 時間:2012-08-21 來源:電子產(chǎn)品世界 收藏

            數(shù)字模擬() 的靜態(tài)絕對精度可以從三個基本錯誤類型來描述:偏移、增益誤差和非線性。線性誤差是這三個中最具挑戰(zhàn)性的,在許多應用中,用戶可以忽略偏移和增益誤差或者在系統(tǒng)設計中建立終端自動校驗來補償。然而,線性錯誤則需要更復雜的修正方法。

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

            (見圖1)把數(shù)字輸入代碼轉(zhuǎn)換為模擬輸出信號,可能是電流或電壓。的分辨率指的是DAC能產(chǎn)生的單位輸出電平數(shù)量。例如,一個8位分辨率的DAC能夠產(chǎn)生28(256)的不同輸出電平。理想情況下,每一個數(shù)字代碼提供同等的模擬階數(shù);然而,實際上很難達到?! ?/p>


          圖1:8位DAC符號

            DAC線性問題

            在介紹提高DAC積分非線性(INL)之前,最好先回顧一下如何確定其線性,如圖2所示。在DAC中,我們通常都把注意力放在兩個方面:微分非線性(DNL)和積分非線性(INL)。DNL是指實際模擬輸出階數(shù)的最大偏差,即相鄰輸入代碼之間與理想階數(shù)值(Δ) 的最大偏差。INL是指在傳遞函數(shù)中的任何點,實際輸出和理想階數(shù)的最大偏差。理想值是零和DAC滿量衡之間的一條直線 (見圖2)。  


          圖2:DAC線性誤差,DNL和INL

            傳統(tǒng)的終端校準技術(shù)用來消除DAC 增益誤差。然而,增益誤差一般不會在DAC滿量程都是線性的,因為硅內(nèi)部有各種非理想體系。這些體系模式可能造成單向梯度,從而導致比較差的INL性能。

            非線性主要原因如下:

          • 邊緣效應,例如長度擴散(LOD)
          • 摻雜梯度
          • 氧化層厚度梯度變化導致閾值移位
          • 熱梯度
          • 供電線路電壓下降 ?

            因此,終端校正技術(shù)并不足以完全清除增益誤差,INL性能仍舊很差。需要輸出精度高的應用就需要很低的INL。

            固件技術(shù)

            提高INL性能的方式之一是使用固件技術(shù)。該方法充分利用了片上系統(tǒng) ()技術(shù),在系統(tǒng)中建立兩點自動校驗。在這個例子中,我們將使用P® 3系列,其有4個多重范圍 8位電壓/電流DAC(INL約為1.5 LSB)。片上20位 Delta-Sigma模擬/數(shù)字(ADC)的 INL在12位模式下小于1 LSB。這足夠用來校準8位DAC。需要固件來完成DAC輸出和ADC之間的反饋回路 (見圖3)。


          上一頁 1 2 3 下一頁

          關鍵詞: DAC SoC 轉(zhuǎn)換器

          評論


          相關推薦

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

          關閉
          看屁屁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); })();