• WINCE6.0+S3C2443下ADC在电池驱动应用


    ********************************LoongEmbedded************************

    作者:LoongEmbedded(kandi)

    时间:2011.02.25

    类别:WINCE 驱动开发

    ********************************LoongEmbedded************************

     

    1.       ADC在电池驱动中的应用

    1.1    电池检测端口和CPU的硬件接口

    1

     

    1.2    电池驱动中需要使用ADC来转换电池的电压值

    下面是电池驱动battif.cBattery_sampleADC的函数体,这个函数用于对输出的电池电压这个模拟值转换为数字值

    2

    下面就来学习这个函数对这些寄存器的设置

    ACDMUX

    ACDMUX用于选择模拟输入通道,根据图1选择的是AIN0通道,见下图对ACDMUX寄存器的描述

    3

    ADCCON

    ADCCONADC的控制寄存器

    4

    我的系统中FCLK=533MHZPCLK=FCLK/8,根据下面的公式

    5

    根据图25,可以算出A/D转换频率=PCLK/(49+1)=FCLK/(8*(49+1))=533/(8*50)=1.3325MHZ,从而计算出一次的A/D转换时间=5*(1/1.3325MHZ)=3.725us

     

    ADCDAT0

    ADCDAT0ADC转换数据寄存器,ADCDAT0[9:0]保存着电池电压值经过ADC转换之后的数字值,这里ADCDAT0要和0x3FF进行与运算就是为了取出ADCDAT0[9:0]的值

    6

     

     

    1.3    KSPS

    7

    KSPS(kilo samples per second)表示每秒采样千次,是转换速率的单位,而转换速率(conversion rate)是指完成一次从模拟量到数字量的AD转换所需要时间的倒数。我们知道S3C2443ADC最大的A/D转换时钟频率是2.5MHZ,所以可以计算出一次A/D转换的时间=5*(1/2.5MHZ)=2us,所以1s中的采样次数=1s/2us=500KSPS,这就是500KSPS的由来。

     

     

    2.       获取电池状态的函数BatteryPDDGetStatus

    电池驱动mdd层的battapi.c下面的函数BatteryAPIGetSystemPowerStatusEx2会定时调用BatteryPDDGetStatus来获取电池的状态,包括是否在充电,电量的百分比等,这些信息就是功过pddBatteryPDDGetStatus函数来填充结构体SYSTEM_POWER_STATUS_EX2的成员来告诉mdd层的,这个结构体/WINCE600/PUBLIC/COMMON/SDK/INC/winbase.h中定义,如下:

    8

    下面来学习这个结构体的主要的常用的成员的含义

    ACLineStatus

    用于指示AC电源状态,也就是电池是否在充电

    9

    BatteryFlag

    表示电池是否在充电以及充电的情况

    10

    BatteryLifePercent

    表示电池电量所剩的百分比,这个值可以是从0100,也可以是BATTERY_PERCENTAGE_UNKNOWN的状态,我们的电池的驱动中就有这方面的应用,在充电的时候,如果计算出电池电量小于50%的时候,就不显示电池具体的电量显示,这时候只需要对BatteryLifePercent赋值为BATTERY_PERCENTAGE_UNKNOWN就可以了

    11

    12

    13

    14

     

     

    S3C2440AADC和触摸屏接口

    http://blog.sina.com.cn/s/blog_63f980240100kxjx.html

     

    KSPS

    http://www.baidu.com/s?wd=KSPS

     

     

  • 相关阅读:
    “连城决”——预示2008年手机营销体式格式新打破
    都会演出连城诀—诺基亚N78决战入手入手了!
    Lyx:阔别单调的 LaTeX 节制命令
    [转载]Oracle 11g R1下的自动内存经管(2)
    假造化手艺是决胜企业IT化的关头
    请各位博友对HyperV的运用终了指摘
    有199元的Office,还要用盗版吗?
    十一回南通,当晚和同学去小石桥附近的网吧
    Windows 消息
    WinAPI: 钩子回调函数之 MsgFilterProc
  • 原文地址:https://www.cnblogs.com/liang123/p/6325762.html
Copyright © 2020-2023  润新知