目录
2
ADC简介 3
ADC简介 3
3
3
3
5
5
6
6
7
7
9
10
12
ADC ,即analog to digital converter,模拟信号至数字信号的转换器。主要的ADC转换算法有逐次逼近法,双积分法。它们一般由芯片内部的硬件电路实现,但外部的电路接法会有所不同。MTK平台ADC采样的可使用外部电路:
y=((a*x+b)/100)*factor(如adc_adc2vol()中的算式)
x为ADC采样值,y为测量点的实际电压
如图2所示,(a*x+b)为A点的电压值,((a*x+b)/100)*factor才是我们要测量的Ui的电压值。由于ADC的量程有限,故需要进行分压才能测量比较大的电压,之后再根据分压电阻的比值转换成要测量点的电压。
a为每单位表示的电压。,ADC为10位的,故a=2800000/2^10=2734(uV)。通常为了扩大测量范围,需要把a扩大约一倍(记为a1),之后再通过factor校正。比如变成5524,
b是偏移量,需要测量确定。
每一个ADC都有一组a,b值, bmt_custom_chr_def[]结构体中的数组ADC_CALIDATA adc_cali_param[]给定
factor满足以下等式:factor*(R2+R1)/R1=100*a1/a
a1为adc_cali_param[]中的值,a为2734,R1,R2分压的两个电
ADC简介
MT6225有7个ADC通道,主要有四个用途:
,vbat
,visense,vtmp,vcharger这四个ADC通道的值
-charger插入时检测usb的ADC以区分是USB还是charger
有两种操作模式:定时触发模式(上述的1,2)和即时触发模式(3,4)
ADC简介
MT6253有6个ADC通道,0~2通道用于内部:0-电池电压,1—电池电流,2—充电电压;3~5通道可用于外部电压检测
主要有三个用途(区分usb还是charger不需要ADC):
(即电池电量显示)vbat
,visense,vtmp,vcharger这四个ADC通道的值
1和2属于定时触发模式;3为即时触发
定时触发检测和即时触发检测(或称事件触发检测)。
定时触发检测:由AUXADC_CON0(0x8205_0000)寄存器设置,当对应位置为1时,对应的通道即为定时触发检测模式。如AUXADC_CON0 设为0x3f,则6个通道均为定时触发检测。定时的时间量在寄存器TDMA_AUXEV1中设置
即时触发检测:由AUXADC_CON1(0x8205_0008)寄存器设置,当对应位置为1时,对应的通道即为定时检测模式。如AUXADC_CON1 设为0x3f,则6个通道均为即时触发检测。
通道0~5 采样好的ADC值存储在寄存器AUXADC_DAT0(0x8205_0010)~AUXADC_DAT5(0x8205_0024)中
UEM创建ADC通道
uem_init_hardware_data()
BMT添加ADC到调度列表
bmt_adc_sche_add_item()
MSG_ID_BMT_ADC_ADD_ITEM_REQ
修改ADC读取周期:
ADC_TALKING_EVAL_COUNT
ADC_TALKING_EVAL_PERIOD
l4cuem_call_status_req_ind()
MSG_ID_BMT_ADC_MEASURE_DONE_CONF
UEM显示电量,并修改ADC周期
ADC_IDLE_EVAL_COUNT
ADC_IDLE_EVAL_PERIOD
f_hdlr()
MSG_ID_BMT_AD
MTK平台ADC学习笔记 来自淘豆网m.daumloan.com转载请标明出处.