电量计在手持设备中的实现
可编程的12~14位的ADC,硬件积分器用于库仑计功能的计算,所测电流最大可达2.5A,积分器可以用7000mAh的电池,分辨率可达0.2mAh. 其内部框图如图4所示。
图4 STC3100内部框图
STC3100带有一个I2C接口与处理器端进行通讯,并且集成了32bytes的RAM,用于存储电池的电量或其他特性信息。GPIO管脚可以用来作为电池低压报警使用,其应用框图如图5所示。
图5 STC3100电量计量框图
STC3100中的库仑计需要一个32.768kHz的时钟,用于作为计算电量的时基,其精度直接影响电量的计算精度。 STC3100支持内部和外部的时钟,外部时钟优先的原则,并且能够自动检测是否存在外部时钟源,也可以通过设置寄存器设置成强制使用外部时钟源。如图6所示,如果用内部时钟,一个200kohm 0.1%的电阻连接与Rosc管脚和地之间,内部时钟精度在其供电电压和工作温度范围内为2.5%。为得到更高的精度,只能采用外部输入高精度时钟源的方式。
图6 STC3100的两种时钟源
电流采样电阻Rcg是用采集流入或流出电池的电流,由于ADC采样的限制,该电阻的压降不能超过+/-80mV,所以,该阻值由应用中最大的峰值电流决定,如式一。如果峰值电流为2A,那么该阻值可以选择33mohm。
(1)
电流电阻上的电压经ADC采样后放置于REG_CURRET(06H和07H)寄存器中,而ADC的LSB是11.7uV,这样就可以按式二计算实际流过的电流值:
(2)
同时,STC3100会把Rcg两端的电压值与采样周期相乘后放入28位的累加器中,其中的高16位会放入REG_CHARGE(02h和03h)寄存器中,其实际的电量可以按式三计算。
(3)
STC3100自身的供电管脚Vcc和电池电压检测管脚Vin是分开的,如图7所示,这样很容易可以在电压检测管脚加入R2(1kohm)和C2(47nF~220nF)组成的ESD 保护和滤波电路,而电阻R1(150ohm)和齐纳二极管D1(5.6V)组成对Vcc的ESD保护电路,从而不会影响对电池电压的检测精度。电池电压和温度经ADC采样后分别放于REG_VOLTAGE 和REG_TEMPERATURE寄存器中,按照式三和式四可以分别计算出电池的实际电压和温度值。
(4)
(5)
STC3100的GND管脚要用一个PCB走线连接与电阻的地端,确保所有的电流都是流过该电阻的,避免产生电流的检测误差。
图7 STC3100的电源管脚和电池电压监控管脚
3,软件设计与验证
STC3100寄存器中可以直接读出电量的变化值、电池电压、电流、温度等数据,系统处理器需要在上电时,配置STC3100的寄存器,启动其电量计数功能,如果是第一次上电,需要通过检测的电池电压进行电池容量的初次预估。完成初次预估后就可以进行实时的电池电量的实时计算,软件的流程如图所8示。
图8 软件流程框图
电池的容量会随温度、充放电次数和使用时间的长短变化而变化,因此,为得到精确的电池电量,仅仅获得电池电压、电流是不够的,还要考虑温度、电池老化、电流检测电阻精度等因素造成的累计误差,因此,建议在使用中定期一次电池的完全的充放电过程,进行消除累计误差,不断保持电量的精度。上述软件在STC3100的demo板(STEVAL-ISB0011V1)进行了验证,如图9所示。该Demo板使用STM32进行软件处理,其上电池的充电芯片是具有800mA充电能力的STC4054,16*2矩阵
- 设计高效能的手持设备照明解决方案(08-22)
- 基于SP6641的手持设备电源设计(03-23)
- 如何利用FPGA解决手持设备MPU的功耗问题(07-08)
- 快速充电应用场景、解决方案、应用实例集锦(05-10)
- 谈手机的电源管理设计要点及方法(02-12)
- 通信电源监控系统中蓄电池监控模块的设计(11-30)