WINCE6.0+S3C2443下ADC在电池驱动应用
********************************LoongEmbedded************************
作者:LoongEmbedded(kandi)
時間:2011.02.25
類別:WINCE 驅(qū)動開發(fā)
********************************LoongEmbedded************************
?
1.?????? ADC在電池驅(qū)動中的應(yīng)用
1.1??? 電池檢測端口和CPU的硬件接口
圖1
?
1.2??? 電池驅(qū)動中需要使用ADC來轉(zhuǎn)換電池的電壓值
下面是電池驅(qū)動battif.c中Battery_sampleADC的函數(shù)體,這個函數(shù)用于對輸出的電池電壓這個模擬值轉(zhuǎn)換為數(shù)字值
圖2
下面就來學(xué)習(xí)這個函數(shù)對這些寄存器的設(shè)置
⑴ACDMUX
ACDMUX用于選擇模擬輸入通道,根據(jù)圖1選擇的是AIN0通道,見下圖對ACDMUX寄存器的描述
圖3
⑵ADCCON
ADCCON是ADC的控制寄存器
圖4
我的系統(tǒng)中FCLK=533MHZ,PCLK=FCLK/8,根據(jù)下面的公式
圖5
根據(jù)圖2和5,可以算出A/D轉(zhuǎn)換頻率=PCLK/(49+1)=FCLK/(8*(49+1))=533/(8*50)=1.3325MHZ,從而計算出一次的A/D轉(zhuǎn)換時間=5*(1/1.3325MHZ)=3.725us。
?
⑶ ADCDAT0
ADCDAT0是ADC轉(zhuǎn)換數(shù)據(jù)寄存器,ADCDAT0[9:0]保存著電池電壓值經(jīng)過ADC轉(zhuǎn)換之后的數(shù)字值,這里ADCDAT0要和0x3FF進行與運算就是為了取出ADCDAT0[9:0]的值
圖6
?
?
1.3??? KSPS
圖7
KSPS(kilo samples per second)表示每秒采樣千次,是轉(zhuǎn)換速率的單位,而轉(zhuǎn)換速率(conversion rate)是指完成一次從模擬量到數(shù)字量的AD轉(zhuǎn)換所需要時間的倒數(shù)。我們知道S3C2443的ADC最大的A/D轉(zhuǎn)換時鐘頻率是2.5MHZ,所以可以計算出一次A/D轉(zhuǎn)換的時間=5*(1/2.5MHZ)=2us,所以1s中的采樣次數(shù)=1s/2us=500KSPS,這就是500KSPS的由來。
?
?
2.?????? 獲取電池狀態(tài)的函數(shù)BatteryPDDGetStatus
電池驅(qū)動mdd層的battapi.c下面的函數(shù)BatteryAPIGetSystemPowerStatusEx2會定時調(diào)用BatteryPDDGetStatus來獲取電池的狀態(tài),包括是否在充電,電量的百分比等,這些信息就是功過pdd的BatteryPDDGetStatus函數(shù)來填充結(jié)構(gòu)體SYSTEM_POWER_STATUS_EX2的成員來告訴mdd層的,這個結(jié)構(gòu)體/WINCE600/PUBLIC/COMMON/SDK/INC/winbase.h中定義,如下:
圖8
下面來學(xué)習(xí)這個結(jié)構(gòu)體的主要的常用的成員的含義
ACLineStatus
用于指示AC電源狀態(tài),也就是電池是否在充電
圖9
BatteryFlag
表示電池是否在充電以及充電的情況
圖10
BatteryLifePercent
表示電池電量所剩的百分比,這個值可以是從0到100,也可以是BATTERY_PERCENTAGE_UNKNOWN的狀態(tài),我們的電池的驅(qū)動中就有這方面的應(yīng)用,在充電的時候,如果計算出電池電量小于50%的時候,就不顯示電池具體的電量顯示,這時候只需要對BatteryLifePercent賦值為BATTERY_PERCENTAGE_UNKNOWN就可以了
圖11
圖12
圖13
圖14
?
?
S3C2440A的ADC和觸摸屏接口
http://blog.sina.com.cn/s/blog_63f980240100kxjx.html
?
KSPS
http://www.baidu.com/s?wd=KSPS
?
?
總結(jié)
以上是生活随笔為你收集整理的WINCE6.0+S3C2443下ADC在电池驱动应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WINCE5.0下SQL server
- 下一篇: WINCE电源管理