
方法:自己读取底层节点的信息获取电池电量/温度/充电状态
/sys/class/power_supply/battery/status 读取充电状态,
--〉 Charging 对应正在充电
--〉 Full 充满
/sys/class/power_supply/battery/temp 读取电池温度, 200 表示 20 度
/sys/class/power_supply/battery/capacity 读取电池电量
5:Suspend/Resume 调试指导
1:System Suspend/Resume 是指系统在没有任务运行或者工程师通过 shell 强行写 sysfs 节点时,系统进入睡眠(deepsleep)和唤醒的过程。 进入 system suspend 的过程中,应用程序被 freeze,所有外设被挂起, nonboot CPUs 被强行 unplug, CPU0 和 cluster 进入下电状态, DDR 保持上电但进入自刷新状态。

System Suspend/Resume 内核中的详细介绍可参考以下资料:
http://www.wowotech.net/pm_subsystem/suspend_and_resume.html
http://www.wowotech.net/pm_subsystem/wakelocks.html
http://www.wowotech.net/pm_subsystem/237.html
http://www.wowotech.net/pm_subsystem/suspend-irq.html
展讯充电管理模块浅析(一):
从三个方面介绍:
Android 电池(一):锂电池充电基本原理篇
android 电池(二):android关机充电流程、充电画面以及电量显示
android 电池(三):android电池系统
需要格外关注的文件sprd_power.c;sprd_8825_charge.c/sprd_8825_charge.h
充电驱动核心文件:power_supply_core.cpower_supply_sysfs.c
相关充电管理ic驱动代码bq27x00_battery.c,max17040_battery.c ...
展讯充电管理ic模块集成在芯片内部,由各种寄存器直接操作!
一、锂电池充电基本原理篇
第一步:判断电压<1.1V,要先进行预充电,5ma电流;
第二步:判断1.1V<电压<2.7V,要先进行预充电,50ma电流;
第三步:判断 2.7V<电压<4.2V,恒流充电500ma-800ma电流
第四步:判断电压>4.2V,恒压充电,电压为4.2V,电流随电压的增加而减少,直到充满。
二、关机充电逻辑硬件逻辑
1、插入DC,charger IC从硬件上唤醒系统,相当于长按开机键开机。
DC插入,其实相当于关机状态下“按开机键”开机。第一步要走UBOOT、kernel、android init这一流程。
a:如何判断是DC插入;在函数dwc_otg_pcd_linux.c中usb_detect_works()函数中对usb插入做检测。
b:在cmd_cboot.c中有定义函数决定到底是什么方式启动开机,这个参数相当重要,这个参数决定系统是正常启动、还是关机充电状态。
浙公网安备 33010602011771号