这一阶段主是要是在做PND的案子.是在WINCE平台下.分到的模块是电源管理.内容
挺多的.但是很觉得有意思.这几天在做电池.将电池的数字信息从寄存器中读取,
经过转化为模拟电压值.最后根据放电曲线转化为相对应的百分比.原来在看代码
的时候,还以为读取的已经是转化后的模拟量.后来,从网上查了下资料才了解要根
据ADC转化的位数以及相对应的最大参考电压通过写算法来将数字量转化为模拟量
. 用到的芯片是ALC5611,它将ADC和TOUCH PENAL集成到芯片中.电池接AUX4.电池
信息从TOUCH PENAL的寄存器中读取.ADC的转化位数为12bit,即相应的十进制数为
4096. 电路接的VDD为Vout = 3.3V.电池最大电压为Vcc = 4.2伏.因此相应
的,4096对应3.3V.在电路中,在将电池接入到AUX4以前,串联一个电阻(R1)再关联
一个电阻(R2)起到分压的作用.因此,相应的求数字量转化为模拟量的公式即为:
Vcc = ((R1+R2)/R2)*Vout;
4096/3.3 = V_digital/Vout;
Vout = ((R1+R2)/R2)*V_digital*3.3/4096;
在网上查了些资料,找到了一些关于百分比转化的算法.贴出来,分享.
在电压曲线中可分为4. 10~3. 80V ,3. 80V~3. 60V ,3. 60~3. 30v 这三个区间,对电池电压值进行分区间的处理,三个区间上的曲线斜率近似为:
4. 10~3. 80V : K1 = (100 - 70) / (4. 10 - 3. 80) ;
(近似曲线斜率)
3. 80~3. 60V : K2 = (70 - 20) / (3. 80 - 3. 60) ;
3. 60~3. 30V : K3 =