撇開硬體的濾波電容等設計不說,要準確的使用ADC,有幾件事要注意:
1.精準的參考電壓源:
假設使用12-bit ADC,可以使用5V、4.096V、2.5V、2.048V的參考電壓,參考電壓越小時ADC的輸入就可能需要有分壓電阻,建議盡量使用跟ADC解析度可以整除的參考電壓,例如12-bit = 2^12 = 4096, 4.096 / 4096 = 1mV = 1LSB,這樣在計算電壓上可以整除,所以誤差較小,選擇參考電壓時要注意精度,盡量選擇0.5%的參考電壓源,例如
2.控制分壓電阻的精度:
✮假設電壓輸入12V,分壓電阻使用91k(+-1%)及13k(+-1%),最大的誤差量會發生在91k(+1%)搭配13k(-1%)及91k(-1%)搭配13k(+1%)這兩個組合,12*(12870/(91910+12870))=1.4739及12*(13130/(90090+13130)) = 1.5264,乘上分壓比例8則分別為11.79及12.21,假設在板子上發生這電壓不準確的時候,我們可以透過電壓校正將電壓補償回來,例如12.00/11.79 = 1.0178(GAIN,分壓增益),假電壓為14V,則14*(12870/91910+12870))= 1.7196,反推分壓後為13.75V,且13.75*1.0178 = 14.00V
✭但是,非理想的ADC具有INL及DNL誤差,因此分壓增益越大,帶有INL及DNL誤差的ADC Code計算成實際電壓之後再乘上增益會使誤差加大,也就是說(IDEAL ADC+ERR)*GAIN=(IDEAL ADC*GAIN) +(ERR*GAIN), ERR*GAIN會把誤差放大,且通常發生在電壓不是在校正點的地方,解決方法就是將分壓增益縮小,實際的方法就是控制分壓電阻的精度,如91k(+-0.1%)與13k(+-0.1%), 12*(12987/(91091+12987))=1.4972, 1.4972*8 = 11,977, 12/11.977=1.0019,也就是ADC本身誤差*GAIN最多會與理想誤差值相差0.0019倍
DNL = |[(VD+1- VD)/VLSB-IDEAL -
1] | , where 0 < D < 2N - 2.
INL = | [(VD -
VZERO)/VLSB-IDEAL] - D
| , where 0 < D < 2N-1.
3.選擇適合的校正電壓點:
將校正電壓點移到最常量測的電壓點,以一般12V電瓶來說是13~12V之間,因此將校正點由12V移到12.5V