片上ADC/DAC實(shí)現(xiàn)精度可調(diào)ADC的方案
3.1.1 初始化ADC
主要是對(duì)MCU的ADC進(jìn)行初始化,主要包括ADC寄存器配置、選擇I/O口的工作模式、選擇ADC的通道、啟動(dòng)ADC。
3.1.2 校正
校正是在測(cè)量輸入電壓前,首先利用基準(zhǔn)電壓源輸入多個(gè)基準(zhǔn)電壓值,并通過讀MCU的ADC寄存器值記錄對(duì)應(yīng)的數(shù)字量的值,并將這兩項(xiàng)的值保存到校正表中。在測(cè)量輸入電壓時(shí),將所得的數(shù)字量的值利用拉格朗日插值算法代入校正表可得精確的輸入電壓值。
1)校正表內(nèi)容校正的過程主要是通過建立校正表建立起實(shí)際輸入電壓值與測(cè)量輸入電壓值的聯(lián)系。校正表存放兩項(xiàng)數(shù)據(jù)。一項(xiàng)是1~59 V的整數(shù)電壓值,另一項(xiàng)是式(5)的和。因?yàn)橄到y(tǒng)測(cè)量的輸入電壓值是只保留到小數(shù)點(diǎn)后2位的近似值,而式(5)中包含測(cè)量的ADC和DAC的十進(jìn)制數(shù)字量值更為精確。由式(4)可看出式(5)的值與測(cè)量的輸入電壓值存在比例關(guān)系,所以它們與實(shí)際輸入電壓的曲線關(guān)系相同。因此,另一項(xiàng)的內(nèi)容存放的是式(5)的和。
2)建立校正表的過程從1~59 V,用電壓源每隔1 V輸入一次電壓,通過讀MCU的ADC和DAC寄存器的值,記錄每次ADC和DAC的數(shù)字量十進(jìn)制的值。將記錄的ADC和DAC的值代入式(5)計(jì)算其和并保存到校正表中。
3.1.3 計(jì)算式(5)的和值
通過程序改變MCU的DAC寄存器的值實(shí)現(xiàn)改變DAC的輸出電壓值,在改變DAC寄存器的值的同時(shí)通過觀察ADC的寄存器的值確定ADO的輸入電壓值是否在量程范圍之內(nèi)。當(dāng)ADO的輸入在量程范圍之內(nèi)時(shí),通過讀DAC寄存器和ADC的寄存器值可分別獲得MCU的DAC和ADC的數(shù)字量十進(jìn)制值,將獲得的值代入式(5)可得其和。
3.1.4 計(jì)算輸入電壓
計(jì)算輸入電壓函數(shù)實(shí)現(xiàn)功能是利用拉格拉日插值公式計(jì)算出輸入電壓。通過坐標(biāo)軸觀察校正表中數(shù)據(jù),實(shí)際輸入電壓值與測(cè)量值滿足線性關(guān)系。在輸入電壓校正表中,查找與式(6)的值最接近的2個(gè)點(diǎn),然后代入拉格拉日線性插值公式計(jì)算出輸入電壓。
3.2 實(shí)驗(yàn)結(jié)果
利用傳統(tǒng)方法直接送入ADC測(cè)量輸入電壓的精度理想情況下最高為59.1/1024=57.7mV,由于硬件參數(shù)誤差和干擾等原因會(huì)使測(cè)量誤差大于20mV,無法滿足系統(tǒng)的測(cè)量精度和準(zhǔn)確度要求。利用本文所提出的17位高精度A/D測(cè)量方法測(cè)量精度可減小為0.45mV,通過軟件校正的方法測(cè)量誤差可控制在10mV以內(nèi),滿足了設(shè)計(jì)要求。通過本文所述提高測(cè)量精度的方法,最高可實(shí)現(xiàn)20位ADC,測(cè)量精度可減小為0.056 mV。
評(píng)論