- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Battery_学习文档
Battery 学习文档
一:电池系统架构
电池系统工作流程:
驱动不停的把电池系统相关信息写入相关文件,然后上报。上层监听到后读取文件。
涉及到的文件较多,比如读取
/sys/class/power_supply/battery/BatterySenseVoltage可以获取电池电压
/sys/class/power_supply/battery/ChargerVoltage可以获取充电器电压
/sys/class/power_supply/battery/batt_tem可以获取电池温度 等等。
要理解电池系统架构需要需要解决三个问题:
1.相关文件是如何建立的?
2.是什么触发驱动更新文件内容以及驱动是如何上报的?
3.用户空间是如何读取文件里面的信息的?
电池系统文件建立
电池系统架构基于linux kernel,相关code在
kernel/drivers/power/*.*
MTK客制化相关的code放在了
kernel/drivers/power/mediatek/*.*
kernel-3.18/drivers/misc/mediatek/power/mt6580
支持的文件:
Include/linux/power_supply.h
Kernel/drivers/power/power_supply_sysfs.c
在kernel/drivers/power/mediatek/battery_common.c
是 /sys/class/power_supply/battery 文件夹下面支持的文件
文件默认只读, 要支持写操作,需要实现
int (*property_is_writeable)(struct power_supply *psy, enum power_supply_property psp);
文件建立:
power_supply_register((dev-dev), battery_main.psy);
信息上报:
static void battery_update(struct battery_data *bat_data);
BAT_thread();
BAT_thread()的触发条件: 10s的定时器
battery_update函数里面会完成写文件和通知上层两个功能,写文件就是更新bat_data-XX. 上层读取的时候就是读取这些数据,当所有的数据更新完毕调用power_supply_changed()函数上报:
power_supply_changed() → schedule_work() → power_supply_changed_work() →
kobject_uevent()
上层读取文件
当上层监听到底层的上报信息后,读取文件的时候通过一些列调用最终会调用到Power_supply_sysfs.c的 power_supply_show_property()函数。
该函数最终会调用psy-get_property(psy, off, value)完成读取功能
二:监控原理
充电原理
充电是软硬件协同完成的。软件主要完成监控功能。硬件完成充电的主要工作。
软件的监即监督,就是时刻测量充电参数,比如电池电压,充电电流,电池温度等。 控即控制,用的最多的控制就是使能,禁止充电,设定充电电流大小。
MTK平台充电有分为两种 linear充电 switch充电两种:
linear充电: 硬件上使用MTK的PMU 充电,硬件成本低,充电电流小,转换效率不高。
switch充电: 硬件上使用外挂充电IC 常用的有TI BQ24296 , 增加额外的硬件成本 充电电流大, 充电效率高 。
VBUS:USB正极
VCDT:充电电压检测脚
ISENSE:检流电阻正极
BATSNS:检流电阻负极
VBAT:电池正极引脚
BAT_ON:电池NTC(热敏电阻)引脚通过读取PMIC的寄存器直接可读到V、V、VCharger、Vbat_temp
1,一部分流向电池,一部分流向系统.
2,充电的时候调节VDRV, 通过调节三极管的be端电流可以控制流过ce端的电流从而实现充电电流大小的设置。
Rsense检流电阻: 对于软件来说可以测量充电电流的大小:电流计算方法:(ISENSE – BATSNS)/Rsense.
signed int battery_meter_get_charging_current(void);
线性充电过程
CHR_PRE 预充状态 小电流充电激活电池
CHR
您可能关注的文档
- 2016高考政治二轮复习偶考点查缺补漏练(三)文化生活.doc
- 2016高三语文一轮复习文言文默写-64篇理解性默写整理学案(含答案).docx
- 2016高三生物(北师大版)一轮复习备考第七单元遗传信息的传递规律(含解析).docx
- 2016高三生物一轮复习备考第四单元细胞的增殖~原核细胞与非细胞生物体(教师用卷)北师大版.doc
- 2016高三语文专题之图文转换教师版.doc
- 2016高考生物拉分题专项训练.doc
- 2016高考评卷组长点评英语试卷全国卷I.doc
- 2017中考英语完形填空解题技巧练17篇.doc
- 2016年青岛小升初(小考)语文学科试卷.doc
- 2017320高二生物期中模拟1.doc
原创力文档


文档评论(0)