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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TMS320F2812芯片ADC模數(shù)轉(zhuǎn)換精度的分析

          TMS320F2812芯片ADC模數(shù)轉(zhuǎn)換精度的分析

          作者: 時(shí)間:2010-11-18 來源:網(wǎng)絡(luò) 收藏

          TMS320F2812是高精度的DSP,其運(yùn)算速度快,工作時(shí)鐘頻率達(dá)150 MHz,指令周期可達(dá)6.67 ns以內(nèi),低功耗(核心電壓1.8 V,I/O口電壓3.3 V)。采用哈佛總線結(jié)構(gòu),具有強(qiáng)大的操作能力、迅速的中斷響應(yīng)和處理能力以及統(tǒng)一的寄存器編程模式。并且在片上集成了Flash存儲器,可實(shí)現(xiàn)外部存儲器的擴(kuò)展。外部擴(kuò)展模塊(PIE)可支持96個(gè)外部中斷,45個(gè)可用。兩個(gè)增強(qiáng)的事件管理器模塊(EVA、EVB),提供了一整套用于運(yùn)動控制和電機(jī)控制的功能和特性。每個(gè)事件管理模塊包括通用定時(shí)器(GP)、比較單元、捕獲單元以及正交編碼脈沖電路。外圍設(shè)備包括3個(gè)32 bit的CPU定時(shí)器,16通道12 bit ADC(單個(gè)轉(zhuǎn)換時(shí)間為200 ns,單路轉(zhuǎn)換時(shí)間為60 ns),它不僅具有串行外圍接口(SPI)和兩個(gè)串行通信接口(SCI),還有改進(jìn)的局域網(wǎng)絡(luò)(eCAN)、多通道緩沖串行接口(McBSP)和串行外圍接口模式[1]。

          28X核提供了高達(dá)400 MIPS的計(jì)算帶寬,它能夠滿足大多數(shù)經(jīng)典實(shí)時(shí)控制算法,在工業(yè)自動化、光傳輸網(wǎng)絡(luò)和自動控制等領(lǐng)域擁有應(yīng)用前景。但是,在獲得其較高工作時(shí)鐘頻率150 MHz、低功耗的I/O口3.3 V電壓的同時(shí),對其在電磁兼容和ADC單元等實(shí)際應(yīng)用提出了更高的要求。特別是ADC單元,受到了眾多使用者的詬病,稱其實(shí)測的精度甚至低于TMS320F2407的10 bit ADC精度。有人懷疑TMS320F2812核內(nèi)數(shù)字地和模擬地連接設(shè)計(jì)有缺陷,但尚未得到TI公司的證實(shí)。TI公司發(fā)布了SPRA989[2]的ADC校準(zhǔn)文檔,僅修正了模數(shù)轉(zhuǎn)換的增益和偏移,與完全實(shí)用的要求尚有一定差距。本文從實(shí)際應(yīng)用的角度出發(fā),考慮其外圍設(shè)計(jì)因素,提高ADC模數(shù)轉(zhuǎn)換精度。

          1 ADC模數(shù)轉(zhuǎn)換精度分析以及測試方法

          影響ADC模數(shù)轉(zhuǎn)換最終結(jié)果精度的原因很多,諸如芯片內(nèi)部模數(shù)轉(zhuǎn)換、模數(shù)轉(zhuǎn)換的增益和偏移引起的誤差,這些都是生產(chǎn)廠商控制和研究的領(lǐng)域,本文不作討論。本文只考慮用戶可以修改和控制的范疇,如修改外圍硬件設(shè)計(jì)減少輸入誤差、調(diào)節(jié)芯片參數(shù)減少輸入和轉(zhuǎn)換誤差、減少輸出誤差。圍繞這3個(gè)環(huán)節(jié)可細(xì)化分解為:硬件RC濾波輸入信號的影響、供電的影響、芯片工作時(shí)鐘頻率的影響、芯片的ADC轉(zhuǎn)換窗口大小的影響、使用外部RAM的影響、輸出信號的影響以及上述方法的組合等[3,4]。

          使用DH1718D-2雙路跟蹤穩(wěn)壓穩(wěn)流電源提供測試的輸入電壓信號,通過TDS2014數(shù)字存儲示波器測量輸入電壓信號,用含TMS320F2812的最小系統(tǒng)板IMEZ2812V3.4板進(jìn)行模數(shù)轉(zhuǎn)換,最后通過SEED-XDSPP仿真器,在計(jì)算機(jī)仿真軟件上監(jiān)測并記錄輸出電壓信號。

          將上述設(shè)備按以下步驟進(jìn)行連接測試:

          (1)將計(jì)算機(jī)和SEED-XDSPP仿真器通過并口連接。
          (2)將SEED-XDSPP仿真器和IMEZ2812V3.4板通過JTAG口連接。
          (3)將DH1718D-2雙路跟蹤穩(wěn)壓穩(wěn)流電源電壓調(diào)至0~3 V,并連接至IMEZ2812V3.4板的JP4口的R_ADCINA6腳和DSP_VSSA(ADCLO)腳。
          (4)用TDS2014數(shù)字存儲示波器測試輸入電壓信號,并用計(jì)算機(jī)仿真軟件觀測仿真測試結(jié)果曲線。
          (5)分別增加輸入信號、和軟件信號濾波及改變相關(guān)ADC寄存器值,并重復(fù)以上步驟測試。

          先使用恒定電壓輸入信號比較不同設(shè)定方案的效果,然后對選定方案進(jìn)行全量程校核。

          2 ADC模數(shù)轉(zhuǎn)換精度測試過程及狀態(tài)描述

          取基準(zhǔn)狀態(tài)為:測試直連輸入信號,外部RAM,PLL=0x0A,HSPCLK=1,ADCCLKPS=2,CPS=1,ACQPS=0。其余狀態(tài)未加說明的均為基準(zhǔn)狀態(tài)+變化狀態(tài)。分別進(jìn)行ADC模數(shù)轉(zhuǎn)換精度測試。

          2.1 恒定電壓模數(shù)轉(zhuǎn)換測試比較

          圖1恒定電壓模數(shù)轉(zhuǎn)換測試比較的12幅圖對應(yīng)測試狀態(tài)及結(jié)果如表1。

          2.2 全量程電壓模數(shù)轉(zhuǎn)換校驗(yàn)

          通過以上測試恒定電壓模數(shù)轉(zhuǎn)換測試比較,綜合考慮轉(zhuǎn)換精度和轉(zhuǎn)換時(shí)間,采用以下方案:輸入信號,軟件信號濾波10x10,100 u,內(nèi)部RAM,PLL=0x0A,HSPCLK=1,ADCCLKPS=2,CPS=1,ACQPS=0。在上述狀態(tài),ADC全量程轉(zhuǎn)換測試結(jié)果如表2。

          通過圖2可以看出,上述方案不僅在恒定電壓2 V時(shí)可以提高ADC轉(zhuǎn)換精度,在TMS320F2812的ADC全量程范圍內(nèi),均可以獲得較好的轉(zhuǎn)換精度。

          通過以上ADC模數(shù)轉(zhuǎn)換測試結(jié)果,可以得出以下結(jié)論:

          (1)在外部RAM中運(yùn)行程序ADC轉(zhuǎn)換誤差較大。
          (2)降低芯片主頻可以提高ADC轉(zhuǎn)換精度。
          (3)增大采樣窗口可以提高ADC轉(zhuǎn)換精度,但轉(zhuǎn)換時(shí)間相應(yīng)延長。
          (4)電源濾波可以提高ADC轉(zhuǎn)換精度。
          (5)輸入信號硬件RC濾波可以大幅度提高ADC轉(zhuǎn)換精度。
          (6)可以大幅度提高ADC轉(zhuǎn)換精度,但轉(zhuǎn)換時(shí)間相應(yīng)延長。

          綜合考慮上述結(jié)論,可以采用2.2中建議的電源濾波+硬件RC濾波+軟件濾波方案來解決TMS320F2812的ADC模數(shù)轉(zhuǎn)換測量精度差的問題。



          評論


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