片上ADC/DAC實現精度可調ADC的方案
2.4 硬件設計說明
U100是由運放OPA177F組成的電壓跟隨器,具有輸入阻抗高,輸出阻抗低的特點,在本系統中的作用是實現匹配U101的輸入電阻和提高對輸入電壓分壓的精確度。R101和R100第二級減法運算電路的輸入匹配電阻,其阻值不宜小于10 kΩ,太小會影響ADC的測量精度。R104為限流電阻,防止電流超過VD100的最大額定電流。
R117和R118組成分壓電路,在R118上的電壓為45 mv,可抵消運放的零漂。若不加此分壓電路且DAC輸出為零時,經過實際測量TP102點的電壓約為120 mV,這是由運放的零漂造成的,會影響ADC的測量精度。在每一個運放輸入端添加了0.1 μF的電容,去除高頻信號,提高輸入信號的穩定性。
3 系統軟件設計
軟件部分主要功能是對輸入電壓的測量。因為硬件設計中,運放和電阻本身的參數存在誤差,所以它們組成的放大電路的放大倍數存在誤差,從而造成ADC測量產生誤差。因此,傳統方法直接利用它們組成的放大電路的計算公式(式(2))計算出的輸入電壓值誤差比較大,電壓跳動明顯。因此,在系統第一次測量輸入電壓前,首先通過軟件設計建立輸入電壓校正表校正的方法實現減小誤差。
校正表是在第一次測量之前建立的數據表,作用是通過此表觀察輸入電壓值與測量值之間滿足何種曲線關系。在測量輸入電壓時,通過得到的曲線關系選擇拉格朗日插值算法,并將測量的值代入選擇的拉格朗日插值公式,計算出較為精確的輸入電壓值。
3.1 軟件實現過程
軟件設計過程主要包括MCU的ADC進行初始化,建立輸入電壓校正表,計算表達式(5)的值,拉格朗日插值計算輸入電壓,顯示輸入電壓值。軟件設計流程如3所示。

設X為MCU的DAC數字量十進制的值,Y為MCU的ADC數字量十進制的值。

由式(4)可得式(5):

評論