在一些電池產品設計中,往往需要單片機去檢測電池電壓的使用情況。在以往的設計中,多少設計者會利用一路AD輸入口來對電池分壓,然后檢測分壓點的電壓來計算VDD的值是多少。如圖所示:
采用這種方法計算VDD的優(yōu)點是精度相對較高,缺點是會消耗靜態(tài)電流和占用一個AD口。所以在后來的設計中,設計者往往直接把電池的電壓接在MCU的VDD上,然后通過內部提供的一路或者多路參考電壓來計算VDD。以利用內部1.2V作為一路AD輸入為例,當設置VDD為AD轉換參考的參考電壓,那么在不同的VDD時,對1.2V參考電壓轉換的結果不一樣。
如果AD為12位數(shù)字精度,那么VDD對應的值為 VDD= 1200*4095/AD轉換值。其他的參考電壓1.6V,2.0V,2.4V計算方式類似。一般普通的鋰電池電壓,在使用過程中的電壓值會是3.0V~4.25V之間,低于3.0V會被做低壓保護處理,不讓用戶繼續(xù)使用該產品,以起到保護電池的作用。
因為PFS122B,內部具有多路的參考電壓,1.2V,1.6V,2.0V,2.4V,3.0V,4.0V等。考慮到電池放電的低壓情況,一般參考電壓用到2.4V以下就可以了。因為當VDD都沒有參考電壓高時,參考電壓的實際值肯定也不準了,這時已經失去了參考的意義。
為了比較一下看看PFS122B,采用哪種參考電壓反推VDD的效果會更好,我做了一個實驗。實驗利用PFS122B一個IO口輸出顯示數(shù)據(jù),其他只接VDD和GND,利用內部的參考電壓來計算測試的VDD值。實驗的ADC采樣只是簡單地做了16次短時間內求平均的方法。單次采集的數(shù)據(jù)并沒有取中間值:
voidGet_16_AD (void)
{
word ad16;
byte cnt;
AD_Start=1;//Skip first ADC, can delete by your select
while(!AD_DONE)
{
nop;
}//
ad16=0;
cnt=16;
do
{
AD_Start=1;//Skip first ADC, can delete by your select
while(!AD_DONE)
{
nop;
}//
//
ad_temp = adcrh << 8 | adcrl;
ad16 += ad_temp >> 4;
// get_middle_adc_from_3();
//ad16 += adcr;8bit
.wdreset;
} while (--cnt);
adc_result=ad16 >> 4;// >> 4;
}
ADC初始化做了很多種設置:
void ad_init(void)
{
/*
$ ADCM /2, 12bit;
$ ADCC Enable, ADC;//PB7 通道
$ ADCRGC VDD; // */
$ ADCM 12bit,/8;
$ ADCC Enable, ADC;
switch(sys_mode)
{
case 0:
{
$ ADCRGC VDD,ADC_BG,BG_1V2; //
break;
}
case 1:
{
$ ADCRGC VDD,ADC_BG,BG_1V6; //
break;
}
case 2:
{
$ ADCRGC VDD,ADC_BG,BG_2V; //
break;
}
case 3:
{
$ ADCRGC VDD,ADC_BG,BG_2V4; //
break;
}
case 4:
{
$ ADCRGC 2V,ADC_VDD/4; // 目前看起來是這種設置,利用內部2V參考電壓,轉化1/4VDD效果更為理想。
break;
}
default:
{
$ ADCRGC VDD,ADC_BG,BG_1V2; //
break;
}
}
.delay 1600;//延時400us
}
實驗照片結果比較,當AD轉換的高電壓為VDD時,直接采用內部1.2V作為一路輸入的誤差最大,2.4V作為一路輸入的誤差最小。但是這種效果,還是沒有采用內部2V作為AD轉換的參考高電壓,利用1/4VDD作為輸入讀取的結果值更為接近實際值。
利用VDD做AD轉換高電壓,內部1.2V作為一路輸入的誤差約60mv。
利用VDD做AD轉換高電壓,內部1.6V作為一路輸入的誤差約50mv。
利用VDD做AD轉換高電壓,內部2.0V作為一路輸入的誤差約40mv。
利用VDD做AD轉換高電壓,內部1.2V作為一路輸入的誤差約30mv。
利用內部2V做AD轉換高電壓,1/4VDD作為一路輸入的誤差約15mv。
這可是相當?shù)臏蚀_了,檢測誤差有時在10mV以內。
審核編輯:劉清
-
單片機
+關注
關注
6039文章
44582瀏覽量
636479 -
電池電壓
+關注
關注
0文章
195瀏覽量
11743 -
VDD
+關注
關注
1文章
312瀏覽量
33307 -
GND
+關注
關注
2文章
539瀏覽量
38787 -
ADC采樣
+關注
關注
0文章
134瀏覽量
12871
發(fā)布評論請先 登錄
相關推薦
評論