基于M6575平台电池系统分析.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于M6575平台电池系统分析

基于MT6575平台电池系统分析 柴路 Agenda 一:电池系统架构 二:监控原理 三:电量检测原理 电池系统架构 一:电池系统工作流程: DRV不停的把电池系统相关信息写入相关文件,然后上报。上层监听到后读取文件。 涉及到的文件较多,比如读取 /sys/class/power_supply/battery/BatterySenseVoltage可以获取电池电压 /sys/class/power_supply/battery/ChargerVoltage可以获取充电器电压 /sys/class/power_supply/battery/batt_tem可以获取电池温度 等等。 电池系统文件建立 一:电池系统架构基于linux kernel,相关code在 alps/kernel/drivers/power/*.* MTK为了客制化,把与自己平台相关的code放在了 alps/mediatek/platform/mt6575/kernel/drivers/power/*.* 二:以添加/sys/class/power_supply/battery/ChargerTest文件为例子 1,在Power_supply.h文件添加POWER_SUPPLY_PROP_ChargerTest. 2,在Power_supply_sysfs.c文件添加。上面两步表示总共可以支持的文件。 3,修改mt6575_battery.c文件,mt6575_battery_props[ ]表示 /sys/class/power_supply/battery/文件夹下所支持的文件 4,系统默认文件是只读的,如果文件可读可写。需要添加如下地方 下面分析文件建立过程。 static int mt6575_battery_probe(struct platform_device *dev) { ret = power_supply_register((dev-dev), mt6575_ac_main.psy); ret = power_supply_register((dev-dev), mt6575_usb_main.psy); ret = power_supply_register((dev-dev), mt6575_battery_main.psy); } 在开机的时候当执行到mt6575_battery_probe()函数的时候,会注册ac,usb,battery。以注册mt6575_battery_main.psy为例,当执行完毕注册函数的时候, 文件/sys/devices/platform/mt6575-battery/power_supply/battery/*.*建立完成并且sys/class/power_supply/battery/*.* 建立对应的连接。 主要工作是在函数power_supply_register()完成的。其中建立文件的过程如下 power_supply_register() → device_add() → device_add_attrs() → device_add_groups() →sysfs_create_group() →internal_create_group() → create_files() 信息上报告 一:在BAT_thread()函数中通过如下函数上报信息的 mt6575_ac_update(mt6575_ac_main); mt6575_usb_update(mt6575_usb_main); mt6575_battery_update(mt6575_battery_main); 二:BAT_thread()的触发条件 1,10s的定时器 2, 插拔充电器 三:mt6575_battery_update()函数里面会完成写文件和通知上层两个功能,写文件就是 更新bat_data-XX. 上层读取的时候就是读取这些数据,当所有的数据更新完毕调用 power_supply_changed()函数上报。 power_supply_changed() → schedule_work() → power_supply_changed_work() → kobject_uevent() 上层读取文件 当上层监听到底层的上报信息后,会读取文件容com_android_server_BatteryService.cpp是JNI层。解析出需要读取的文件。读取文件的时候通过一些列调用最终会调用到Power_supply_sysfs.c的 power_supply_show_property(

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档