方法自己读取底层节点的信息获取电池电量/温度/充电状态 

/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、插入DCcharger IC从硬件上唤醒系统,相当于长按开机键开机。

 

DC插入,其实相当于关机状态下按开机键开机。第一步要走UBOOTkernelandroid init这一流程。

 

a:如何判断是DC插入;在函数dwc_otg_pcd_linux.cusb_detect_works()函数中对usb插入做检测。

 

b:在cmd_cboot.c中有定义函数决定到底是什么方式启动开机,这个参数相当重要,这个参数决定系统是正常启动、还是关机充电状态。

 

posted on 2021-04-26 11:47  六翅天蚕  阅读(401)  评论(0)    收藏  举报