嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > Linux 电源子系统之充电、放电、低功耗

Linux 电源子系统之充电、放电、低功耗

在嵌入式产品中,有三个重要模块:充电、放电、低功耗。

1、充电 charging

知识点包括:

  • 开关电源基本原理
  • 线性充电和开关电源硬件电路图分析
  • Battery_Charging_v1.2 spec
  • typec spec
  • typec-PD spec
  • Uevent 在 Android 层的实现
  • battery service 监听 uevent 事件以及发送 broadcast 流程
  • PMIC IC
  • Charger 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 DVFS
  • GPU DVFS
  • Power monitor 的使用方法
  • 电流图中底电和毛刺
  • ftrace 的使用
  • DoU (Days of Usage)
  • 由于多个模块都会用电,电源域也有很多,当整机功耗高时,找凶手会比较麻烦。在保证性能好的前提下做到耗电低,是一个比较大的难题。

    接下来就从 charging 开始学习,先看 BC1.2 spec,博主已经下载好了,后台回复 BC1.2 即可获得中英文版本的 spec