ADC是什么?
ADC將模擬信號轉(zhuǎn)變?yōu)閿?shù)字信號的電子元件,通常是將一個輸入電壓信號轉(zhuǎn)換為一個輸出的數(shù)字信號。
模擬信號:某一個區(qū)間內(nèi)連續(xù)的物理信號,比如電壓會每時每刻都存在且不停的變化;
數(shù)字信號:某一個區(qū)間內(nèi)有限個數(shù)的抽象數(shù)值記錄,比如每隔1秒鐘一個電壓數(shù)值;
采樣率和分辨率
采樣:在模擬信號上間隔某個固定的時間采集瞬時值,得到一系列的離散值。采樣越密集,得到的離散數(shù)據(jù)集越貼近實際信號。采樣率表示采樣的頻率;
分辨率:輸入電壓對應(yīng)分辨率的位數(shù),分辨率=測量電壓范圍/(2^resolution-1)。 比如逐次逼近型的ADC,8位分辨率下,能夠?qū)⒖潭戎鸫蔚确?次,每次將精確度提高一倍。假設(shè)最大輸入電壓為3.3V,那么能夠分辨的最小電壓變化為3.3V/255= 12.94mV.
采樣方式
單通道:單個端口采集對GND的電壓,受到輸入電壓的干擾,如果輸入電壓波動很劇烈,誤差會很大(蜂鳥Pro等);
差分方式:使用兩個端口采集,可以一定程度上排除干擾(需要電路上做支持);
采樣原理
ADC有多種不同的設(shè)計原理和構(gòu)造方式,一般嵌入式芯片集成的都是逐次逼近型ADC。
逐次逼近:類似于軟件上的二分,通過N個并聯(lián)的比較電路逐次比較大小,來確定輸入電壓的范圍,每次將數(shù)值范圍在當前分辨率內(nèi)減小二分之一,比較電路的數(shù)量決定了分辨率(2^N-1)。
基礎(chǔ)電路知識
分壓:
通過串聯(lián)電阻進行分壓,串聯(lián)的電阻分得的電壓和阻值成正比。
通過串聯(lián)電容進行分壓,串聯(lián)的電容分得的電壓和容值成反比;
不論是電阻還是電容,接通的時候都會導(dǎo)致整個電路電流增大,從而出現(xiàn)壓降;
選擇合適的參數(shù)
判斷是否存在差分電路,如沒有則是單端采集模式;
判斷ADC采集端口的輸入范圍,比如3.3V;
基于參考電壓的增益:比如DA14585內(nèi)部基準是1.2V,則需要至少3倍增益才能達到3.3V以上的量程;
理解電路邏輯:產(chǎn)品A
v_BAT=(1M+220K)/220K*v_AD;
理解電路邏輯:產(chǎn)品B
v_BAT=vref_adc_value?3000/4095;
v_BAT =v_BAT*2;
理解電路邏輯:產(chǎn)品C
R_NTC=adc_ntc?R_REF/(2?adc_30k-adc_ntc);
結(jié)合實際需求:產(chǎn)品D
超低功耗,長時間持續(xù)運行
電壓一定的時間內(nèi)變化較小,每隔5分鐘測量一次,并取6次的均值;
結(jié)合實際需求:產(chǎn)品C
高精度
采集:每隔100ms執(zhí)行一次測量,每次測量重復(fù)64次;
過濾:數(shù)據(jù)排序后,拋掉前后各30個,取4個中位數(shù)的均值,得到這次采集的結(jié)果;
去抖動:每秒鐘會得到10個處理過后的數(shù)值,經(jīng)過平均后顯示到屏幕上(相當于每秒鐘執(zhí)行了6400*2次才得到一個數(shù)值);
進一步提高精度的思考
修改電路,同步修改算法,將單端采集改為差分的模式,NTC一路,30K一路。由于差分是直接計算P、N端口的壓差的,會直接消除電壓波動帶來的誤差;
低電量閾值設(shè)定方法 (硬件同學(xué)貢獻)
列出電路中各個元器件的最低工作電壓,和最大工作電流。保證最大工作電流的情況下,電池電壓不能低于元器件的最低工作電壓
電子表:以2.3V作為設(shè)備的最低截至電壓,5mA作為電池放電電流。
eink屏幕-2.3V <1mA
藍牙-2.0V 5mA
FLASH-1.8V 5mA
MCU ADC測量 1mA
…
將放電曲線根據(jù)放電時間,分成10等份,每一份代表10%的電量
將一顆新電池依次放電到100%、90%、80%.... 10%, 使用MCU的ADC測量不同階段時的電壓,作為不同電量階段的電壓閾值
附:逐次逼近型ADC內(nèi)部工作原理