手机桌面取消电池空调用电量计算公式

android电池(四):电池 电量计(MAX17040)驱动分析篇 - CSDN博客
关键词:android&&&电量计&&MAX17040&任务初始化宏&power_supply
内核:linux2.6/linux3.0
系统:android/android4.0&
平台:samsung&exynos&4210、exynos&4412&、exynos&5250
作者:xubin341719()
欢迎指正错误,共同学习、共同进步!!
完整驱动代码&规格书下载:
电池电量计,库仑计,用max17040这颗电量IC去计量电池电量,这种方法比较合理。想起比较遥远的年代,做samsung&s5pc110/sp5v210的时候,计量电量用一个AD口加两个分压电阻就做了,低电量的时候系统一直判断不准确,“低电关机”提示一会有,一会没有,客户那个郁闷呀,“到底是有电还是没电?”。
如下图,通过两个分压电阻,和一个脚去侦测(电池)电压。
一、MAX17040的工作原理
电量计MAX17040,他通过芯片去测量电池电量,芯片本身集成的电路比较复杂,同时可以通过软件上的一些算法去实现一些处理,是测量出的电量更加准确。还有一个好处,就是他之接输出数字量,通过IIC直接读取,我们在电路设计、程序处理上更加的统一化。
如下图所示,MAX17040和电池盒主控的关系,一个脚接到电池,检测到的电量信息,通过传到主控。
下面是电路图,电路接口比较简单,,接到的,接到主控的接口,这个我们在程序中要配置。看这个器件比较简单吧。
看下的内部结构,其实这也是一个转换的过程,单独一颗芯片去实现,这样看起来比较专业些。CELL接口,其实就是一个转换的引脚,我们可以看到芯片内部有自己的时钟()控制器之类的,通过采集到的模拟量,转换成数字量,传输给主控。
通过上面的介绍Max17040的硬件、原理我们基本上都了解了,比较简单,下面我们就重点去分析下驱动程序。
二、MAX17040&总体流程
电量计的工作流程比较简单,max17040通过CELL&ADC转换引脚,把电池的相关信息,实时读取,存入max17040相应的寄存器,驱动申请一个定时器,记时结束,通过IIC去读取电池状态信息,和老的电池信息对比,如果用变化上报,然后重新计时;这样循环操作,流程如下所示:
三、MAX17040这个电量计驱动,我们主要用到以下知识点
1、IIC的注册(这个在TP、CAMERA中都有分析);
2、linux&中定时器的使用;
3、任务初始化宏;
4、linux定时器调度队列;
5、max17040测到电量后如何上传到系统(这个电池系统中有简要的分析);
6、AC、USB充电状态的上报,这个和电池电量是一种方法。
7、电池曲线的测量与加入;
1、IIC的注册
IIC这个总线,在工作中用的比较多,TP、CAMERA、电量计、充电IC、音频芯片、电源管理芯片、基本所有的传感器,所以这大家要仔细看下,后面有时间的话单独列一片介绍下IIC,从单片机时代都用的比较多,看来条总线的生命力很强,像C语言一样,很难被同类的东西替代到,至少现在应该是这样的。
看下他结构体的初始化与驱动的申请,这个比较统一,这里就不想想解释了。
()、驱动的注册:
()在中,平台驱动的注册:
下图就是我们驱动注册生成的文件;
2、linux&中定时器的使用
定时器,就是定一个时间,&比如:申请一个10秒定时器,linux系统开始计时,到10秒,请示器清零重新计时并发出信号告知系统计时完成,系统接到这个信号,做相应的处理;
3、任务初始化宏
任务结构体的初始化完成后,接下来要将任务安排进工作队列。&可采用多种方法来完成这一操作。&首先,利用&queue_work&queue_work_on&work_struct
4、linux定时器调度队列
5、max17040测到电量后如何上传到系统(这个电池系统中有简要的分析);
&&&&&&&4中的定时器记时完成,就可以调度队列,chip-&work执行:max17040_work函数,把改读取的信息上传,我们看下max17040_work函数的实现:
()、保存老的电池信息,如电量、AC、USB是否插入
()、读取电池新的状态信息
()、如果电池信息有变化,就上报系统
power_supply_changed这个函数比较重要,&我们后面分析;
()、如果用PM2301充电IC,USB充电功能不用
这个是由于我们的系统耗电比较大,用USB充电时,电流过小,所以出现越充越少的现象,所以这个功能给去掉了。
()、如果有DC插入,则跟新充电状态
6、AC、USB充电状态怎么更新到应用
如上面所说,通过power_supply_changed上报;
7、电池曲线的测量与加入
电池曲线,就是电池的冲放电信息,就是用专业的设备,对电池连续充放电几天,测出一个比较平均的值。然后转换成针对电量IC(如我们用的max17040)的数字量,填入一个数组中,如下图所示:
下面数据时针对电池曲线的数字量,和相关参数。如上图所示,为小时的电池信息,包括:不同颜色分别代表不同的曲线:如
数据表格如下:
加入驱动中的值:
四、驱动分析
1、函数分析
上面我们简单了解驱动中用到的主要知识点,后面我们把这些点串起来,驱动还是从probe说起;
(1)、驱动部分申请;
(3)、获取电池信息;
通过传递下来的参数,来读取结构体中相应的状态,这个函数实现比较简单。
(4)电池各种信息
(5)、加入;
(6)、和battery相似,把ac加入power_supply;
(7)、和battery相似,把usb加入power_supply;
(8)、max17040加入chip-&work队列;
前面已经分析;
(9)、通过定时器调度队列;
前面已经分析;
2、power_supply_changed简要分析
如:把电池电量信息上报:我们在max17040_work队列调度函数中,&如果有电池信息、状态变化,则上用power_supply_changed上报。
Kernel/drivers/power/power_supply_core.c中:电量计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
电​量​计
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢2.1 万 人安装
安装后,您可能在通知栏看到不明来源的广告信息,影响您的使用体验。
《钢铁侠 3》的官方动态壁纸! Live Wallpaper 截图
包名 cellfish.ironman3wp
《钢铁侠 3》的官方动态壁纸! Live Wallpaper 相关应用
《钢铁侠 3》的官方动态壁纸! Live Wallpaper 同类热门
今日最新收录安卓软件
下载「《钢铁侠 3》的官方动态壁纸! Live Wallpaper」
扫描二维码即可下载
我们的产品
豌豆实验室
帮助与支持
除非特别注明,应用程序由第三方市场提供,豌豆荚仅根据你的指令提供搜索结果链接,与出处无关,详情请参阅
扫一扫安装豌豆荚安卓客户端【论文】电池电量计的原理与计算_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
中国最大最早的专业内容网站
评价文档:
&购买后可评价
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。
电池电量计的原理与计算
目​前​大​量​应​用​的​充​电​电​池​包​括​铅​酸​蓄​电​池​、​镍​镉​/​镍​氢​电​池​、​锂​离​子​/​锂​聚​合​物​电​池​。​这​几​种​电​池​的​特​性​如​表所​示​。
试读已结束,如果需要继续阅读或下载,敬请购买
你可能喜欢}

我要回帖

更多关于 电量计 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信