MTK battery 原理

参考文档:

http://blog.csdn.net/zhandoushi1982/article/details/5804951

http://blog.csdn.net/ollins136/article/details/52230722?locationNum=1

http://blog.chinaunix.net/uid-9012903-id-2011559.html

 

MTK中,Battery底层驱动主要涉及代码在这两个目录下:

\kernel-3.18\drivers\misc\mediatek\power\mt6735

\kernel-3.18\drivers\power\mediatek

 

一、充电流程介绍:当充电器插入时,亦即为PMIC充电模块提供了Vcharge电压,这时会产生一个充电中断信号到CPU,通知CPU现在已经进入充电状态。CPU开始启动如下模块:

1ADC采样,主要是采集VchrgVbat及从MOSFET漏极输出的电压,可以算出充电电压和充电电流;

2,发消息给MMI层,让它显示充电状态及一些采样数据;

3,检测电池电压有没有超过保护电压及电池连接是否连接正确,如果有问题即可通过CHRCTRL切断充电电路;

4,平时显示“充电器没有连接”警告,是因为PMICBATDET脚和MOSFET没有打开,从而没有充电电流引起的。

二、充电状态转换介绍:如果电池电压较低,只是预充的时间稍长一些,最多一两个小时应该可以完成预充电!一般电池都有自保护,不会把电放到0V的!

     充电分三个过程:预充电、恒流充电(CC模式)、恒压充电(CV模式)(有些人也会分为四个阶段预充电、恒流充电(CC模式)、恒压充电(CV模式)、涓流充电)

1,当Vbat<3.3V  属于预充阶段,处于预充电状态时,以150mA电流涓流充电。PMIC不能提供VcoreVdd等电压,CPU处于关机状态,这时CPU是不工作的!纯粹是硬件电路充电

2,当3.3V<bat<4.2V  PMICLDO开始输出电压,从而cpu开始工作,这是进入恒流充电阶段,以大概600mA 电流快速充电。3.45V是开机电压,按开机键的话就会开机。

3Vbat>4.2V 进入恒压充电阶段(属于TOPOFF的一个点,如下图),这个阶段电流逐渐变小,电压维持不变!当电流减小到接近为0(或者某个较小阀值)时,CPU发出控制信号这时停止充电!

图一是充电过程的整个状态图:

                                                                                                            图一

下图二是内核层充电的一个框架图:


                                                                                                 图二 内核层充电的一个框架图

CC模式切换到CV模式在代码中的alps/mediatek/kernel/drivers/power/linear_charging.calps/mediatek/kernel/drivers/power/ switch_charging.c

     MTK Battery系统驱动的大致流程主要是通过系统platform总线注册devicedriver,然后在probe函数里面创建了一个线程,然后创建一个hrtimer定时器,定时器每10s运行一次,同时在probe函数里面会创建一些设备节点,通过这些设备节点,系统将每10s更新的数据上传给上层供上层调用显示。

 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值