對于雙極性輸入,其0 V輸入的增益誤差對應單極性輸入的1.4315V的增益誤差,因此,原有ADC的增益誤差和失調(diào)誤差被增大了。例如,如果ADC的增益誤差為5%,失調(diào)誤差為2%,則其雙極性的增益誤差計算如下:雙極性輸入x′=0.0000V,單極性的ADC輸入電壓x=1.4315V,其理想的轉(zhuǎn)換值:ye=1.4315×4095/3=1954,而由ya=1954×1.05+80計算得實際轉(zhuǎn)換值,則雙極性增益誤差為ya-ye=2132-1954=178(9.1%誤差)。通過計算可以看出,ADC的誤差大大增加,因此要使用ADC進行數(shù)據(jù)采集,就必須對ADC進行校正,提高其轉(zhuǎn)換精度。
2 ADC校正
2.1校正方法
通過以上分析可以看出,F(xiàn)2812的ADC轉(zhuǎn)換精度較差的主要原因是存在增益誤差和失調(diào)誤差,因此要提高轉(zhuǎn)換精度就必須對兩種誤差進行補償。對于ADC模塊采取了如下方法對其進行校正。
選用ADC的任意兩個通道作為參考輸入通道,并分別提供給它們已知的直流參考電壓作為輸入(兩個電壓不能相同),通過讀取相應的結(jié)果寄存器獲取轉(zhuǎn)換值,利用兩組輸入輸出值求得ADC模塊的校正增益和校正失調(diào),然后利用這兩個值對其他通道的轉(zhuǎn)換數(shù)據(jù)進行補償,從而提高了ADC模塊轉(zhuǎn)換的準確度。圖1示出了如何利用方程獲取ADC的校正增益和校正失調(diào)。具體計算過程如下:
① 獲取已知輸入?yún)⒖茧妷盒盘柕霓D(zhuǎn)換值yL和yh。
② 利用方程y=x×ma+b及已知的參考值(xL,yL)和(xH,yH)計算實際增益及失調(diào)誤差:
實際增益ma=(yH-yL)/(xH-xL);
失調(diào)誤差 b=“yL” -xL×ma。
③ 定義輸入x=y×CalGain-CalOffset,則由方程y=x×ma+b得校正增益CalGain=1/ma=(xH-xL)/(yH -yL),校正失調(diào)CalOffset=b/ma=yL/ma-xL。
④ 將所求的校正增益及校正失調(diào)應用于其他測量通道,對ADC轉(zhuǎn)換結(jié)果進行校正。
上述即為實現(xiàn)ADC校正的全過程,通過使用這種方法,ADC的轉(zhuǎn)換精度有很大提高。由于這種方法是通過某個通道的誤差去修正其他通道的誤差,因此要采用這種方法,必須保證通道間具有較小的通道誤差。對F2812ADC轉(zhuǎn)換模塊,由于其通道間的增益及失調(diào)誤差均在0.2%以內(nèi),所以可以采用這種方法對其進行校正。