PM8909 linear charger硬件概述
正文
电池充电是由qpnp-vm-bus.c(电池驱动BMS)和qpnp-linear-charger.c(线性充电器)组成;
SMMB charger:Switch-ModeBattery Charger and Boost peripheral开关模式电池充电器和升压外围设备
CV:ConstantVoltage恒压
CC:ConstantCurrent恒流
FET:Field EffectTransistor场效应管
AICL:Automactic ImputCurrent Limit自动输入电流限制
QPNP:QualcommPlug N Play高通即插即用
对应源代码:
kernel\drivers\power\qpnp-linear-charger.c
1. 电池充放电电路连接
VBAT(电池正极)---------------------->PMIC:VPH_PWR
VBUS(如USB线,USB充电器、DC充电器)--------------------->PMIC:VBUS_USBIN
2. PM8909 Linear Charger(线性充电器)
可见PM8909线性充电器包括LinearCharger和VM-BM部分,下面介绍LinearCharger部分
3. Linear Charger Peripherals
QPNP线性充电器主要的模块如下:
3.1 Charger peripheral(LBC_CHGR)充电外设
-
VBAT_STATUS:电池电压状态(weak,good,ornear end-of-charge)
-
IBAT_MAX:最大的电池充电电流设置
-
IBAT_SAFE:最大的电池安全充电电流设置(可配置一次)
-
充电中断状态,比如CHG_DONE,CHG_FAILED等等
-
VDD_MAX:最大电池电压,典型值为4.2V或是4.35V
-
VDD_SAFE:最高的电池安全电压(可配置一次),典型值为4.5V
-
VIN_MIN:充电器最小电压输入电压,应比VDD_MAX高100mV,这个是VBUS进到充电IC的最低电压。
-
CHG_CTRL:使能/禁用或是暂停充电
-
VBAT_TRKL:ATC A阈值,TRKL指Trikle
-
VBAT_WEAK:ATC B软件充电阈值
-
IBAT_ATC_B:ATC B阶段或是软件阈值最大充电电流
-
Safety timers:安全计时器,TCHG_MAX和TTRKL_MAX
可参考下面的信息便于理解
kernel/arch/arm/boot/dts/qcom/msm8909-qrd-skue.dtsi
&pm8909_chg {
qcom,vddmax-mv= <4350>;
qcom,vddsafe-mv= <4380>;
qcom,vinmin-mv= <4470>;
…
}
3.2 USB charging path(LBC_USB)
(1) Power路径选择和状态
(2) USB充电器电压有效性(validity)
(3) 充电器存在状态
(4) USB充电器过压和低压设置
(5) 如果USB连接无效或是没有枚举到,USB挂起设置
(6) USB枚举计时器设置和停止位
3.3 Battery interface(LBC_BAT_IF)电池接口
(1) 电池存在和电池热敏电阻/ID存在状态
(2) 电池温度状态
(3) VREF_BAT_THM配置
(4) 电池FET状态
(5) 通过电池ID和热敏电阻来检测电池是否存在
(6) 电池温度阈值调整
(7) 内部BATFET调节器控制
3.4 LBC miscellaneous(LBC_MISC)
(1) 自适应升压控制设置
(2) Vbat_Boot_treshold状态
(3) Boot done bit status。
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2017-10-23 内存对齐的三条原则
2017-10-23 strace命令【转】