在嵌入式产品中,有三个重要模块:充电、放电、低功耗。
1、充电 charging
知识点包括:
开关电源基本原理线性充电和开关电源硬件电路图分析Battery_Charging_v1.2 spectypec spectypec-PD specUevent 在 Android 层的实现battery service 监听 uevent 事件以及发送 broadcast 流程PMIC ICCharger IC示波器的使用快充协议如 MTK PE/高通 QC/OPPO VOOC充电曲线OCP 过流保护OVP 过压保护NTC 温度检测2、放电
指电池与电量计 Fuel Gauge
Fuel Gauge 显示的基本原理Fuel Gauge 校准和参数测量Fuel Gauge 休眠唤醒的更新流程Fuel Gauge 初始化和电量计算法netlink 通讯方式放电曲线怎么算是充满电?多台机器放电半小时电量显示不一致怎么办?1% 的电量要藏多少电?硬件充电截止后软件显示电量 98% 怎么办?开关机出现电量跳变是为什么?多次重启后电量计不准是为什么?3、低功耗 low power
Android power service (PMS)Suspend/resume 流程Clock 管理Deep idle 的概念Screen on deep idle (SODI)EarlySuspend/LateResume/Wakelock 含义CPU 的热拔插CPU DVFSGPU DVFSPower monitor 的使用方法电流图中底电和毛刺ftrace 的使用DoU (Days of Usage)由于多个模块都会用电,电源域也有很多,当整机功耗高时,找凶手会比较麻烦。在保证性能好的前提下做到耗电低,是一个比较大的难题。
接下来就从 charging 开始学习,先看 BC1.2 spec,博主已经下载好了,后台回复 BC1.2 即可获得中英文版本的 spec