一種提高TMS320F2812 ADC精度的方法
圖3校正后的電壓轉換電路
2 ADC校正
2.1校正方法
通過(guò)以上分析可以看出,F2812的ADC轉換精度較差的主要原因是存在增益誤差和失調誤差,因此要提高轉換精度就必須對兩種誤差進(jìn)行補償。對于A(yíng)DC模塊采取了如下方法對其進(jìn)行校正。
選用ADC的任意兩個(gè)通道作為參考輸入通道,并分別提供給它們已知的直流參考電壓作為輸入(兩個(gè)電壓不能相同),通過(guò)讀取相應的結果寄存器獲取轉換值,利用兩組輸入輸出值求得ADC模塊的校正增益和校正失調,然后利用這兩個(gè)值對其他通道的轉換數據進(jìn)行補償,從而提高了ADC模塊轉換的準確度。圖1示出了如何利用方程獲取ADC的校正增益和校正失調。具體計算過(guò)程如下:
① 獲取已知輸入參考電壓信號的轉換值yL和yh。
② 利用方程y=x×ma+b及已知的參考值(xL,yL)和(xH,yH)計算實(shí)際增益及失調誤差:
實(shí)際增益ma=(yH-yL)/(xH-xL);
失調誤差 b=yL -xL×ma。
③ 定義輸入x=y×CalGain-CalOffset,則由方程y=x×ma+b得校正增益CalGain=1/ma=(xH-xL)/(yH -yL),校正失調CalOffset=b/ma=yL/ma-xL。
④ 將所求的校正增益及校正失調應用于其他測量通道,對ADC轉換結果進(jìn)行校正。
上述即為實(shí)現ADC校正的全過(guò)程,通過(guò)使用這種方法,ADC的轉換精度有很大提高。由于這種方法是通過(guò)某個(gè)通道的誤差去修正其他通道的誤差,因此要采用這種方法,必須保證通道間具有較小的通道誤差。對F2812ADC轉換模塊,由于其通道間的增益及失調誤差均在0.2%以?xún)?,所以可以采用這種方法對其進(jìn)行校正。
2.2 軟件實(shí)現
與一般的ADC轉換程序相比,帶校正的ADC轉換程序需要另外增加兩個(gè)程序段:校正值的計算以及利用校正值對ADC進(jìn)行處理。為了方便操作及轉換結果獲取,實(shí)現中定義了結構體變量ADCCALIBRATIONVARS,用來(lái)保存ADC轉換后的各種數據。另外,提高程序的通用性,采樣的方式、參考電壓值及高低電壓理想的轉換值均在A(yíng)DC轉換頭文件ADCCalibration.h中定義。ADCCALIBRATIONVARS定義如下:
typedefstruct{
Uint*RefHighChAddr;//參考高電壓所連通道地址
Uint*RefHighChAddr;//參考低電壓所連通道地址
Uint*ChoAddr;//0通道地址
UintAvg_RefHighActualCount;//參考高電壓實(shí)際轉換值
UintAvg_RefHighActualCount;//參考低電壓實(shí)際轉換值
UintRefHighIdealCount;//參考高電壓理想轉換值
UintRefLowCount;//參考低電壓實(shí)際轉換值
UintCalGain;//校正增益
UintCalOffset;//校正失調
//校正通道的轉換值
UintCh0;
UintCh16;
}ADC CALIBRATION VARS;
整個(gè)A/D轉換任務(wù)由中斷函數intADC()和主函數ADCCalibration()構成。中斷函數主要用于轉換數據的讀取,而校正參數計算及各通道轉換結果的修正在主函數完成。校正完后,將結果保存到所定義的結構體變量中。此處,對ADC的校正采用單采樣單校正的處理方法,當然也可以采用多采樣單校正的處理方法,但是為了提高精度,如果設計系統開(kāi)支允許,建議最好使用單采樣單校正的方法,以提高ADC精度。
2.3實(shí)驗結果
筆者在自己所使用的F2812系統上進(jìn)行了實(shí)驗,選用1 V和2 V作為參考電壓,選用通道A6和A7作為參考通道,通過(guò)對0 V、0.5 V、1.5 V、2.5 V校正前后的數據進(jìn)行比較,發(fā)現采用上述校正方法后,ADC的轉換準確度明顯得到改善,比較結果如表2所列。

注:由參考電壓計算得:CalGain=0.965;CalOffset=6.757。
表2中所給出的數據只是筆者進(jìn)行大量實(shí)驗后所得數據的一組,實(shí)驗證明通過(guò)校正后ADC的誤差能被控制在0.5%以?xún)?,這對大多數測控系統來(lái)說(shuō)已滿(mǎn)足要求,對于轉換精度要求更高的系統,可以采用外擴A/D轉換器。
結語(yǔ)
A/D轉換器是數據采集電路的核心部件,其良好的精度與準確性是提高數據采集電路性能的關(guān)鍵。TMS320F2812作為T(mén)I公司推出的一款集微控制器及數字信號處理器于一身的32位處理器,以其運行速度高和強大的處理功能得到廣泛應用,而對其ADC模塊精度的提高,將進(jìn)一步提高其在控制領(lǐng)域中的應用。本文提出的用于提高ADC模塊精度的校正算法,經(jīng)實(shí)際應用證明實(shí)用可行。本文引用地址:http://dyxdggzs.com/article/195285.htm
評論