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。
PM8909 linear charger硬件概述的更多相关文章
- 最简单的方法是使用标准的 Linux GUI 程序之一: i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示。 HardInfo 显示硬件具体信息,甚至包括一组八个的流行的性能基准程序,你可以用它们评估你的系统性能。 KInfoCenter 和 Lshw 也能够显示硬件的详细信息,并且可以从许多软件仓库中获取。
最简单的方法是使用标准的 Linux GUI 程序之一: i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示. HardInfo 显示硬件具体信息,甚至包括一组八个的流 ...
- [ZZ] HDR the bungie way
http://blog.csdn.net/toughbro/article/details/6755394 bufferencoding游戏float算法 bungie 06年,gamefest上的p ...
- 单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》
引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准 ...
- SLAM+语音机器人DIY系列:(三)感知与大脑——1.ydlidar-x4激光雷达
摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...
- SLAM+语音机器人DIY系列:(三)感知与大脑——3.轮式里程计与运动控制
摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ...
- WinIo驱动级键盘模拟编程
转自:http://blog.sina.com.cn/s/blog_455d7a320100vr37.html 前天无聊,翻翻自己的兴趣项目文件夹,发现了这个放下很久的项目!那是大三时候的事了.当时是 ...
- OneNET麒麟座应用开发之八:采集大气压力等环境参数
采集大气压力和温度也是核算大气标准状况下的各种数据的必须参数,为此我们必须知道压力和温度才能计算标准状况下的各种参数,于此我们需要一个既能检测压力也能检测温度的元件. 1.硬件概述 MS5837压力传 ...
- 4G通信模块在ARM平台下的应用
4G模块是连接物与物的重要载体,是终端设备接入物联网的核心部件之一.随着4G的普及,许多新兴市场对4G通信模块的需求都在日益扩大,那么在ARM平台的嵌入式设备上如何快速的应用4G模块呢? 4G通信模块 ...
- 4G 通信模块在ARM 平台下的应用
收藏 评论(0) 分享到 微博 QQ 微信 LinkedIn 4G模块是连接物与物的重要载体,是终端设备接入物联网的核心部件之一,随着4G的普及,许多新兴市场对4G通信模块的需求都在日益扩大,那么在A ...
随机推荐
- IT兄弟连 HTML5教程 DIV+CSS的兼容性问题
使用DIV+CSS布局网页其实是很容易的事情,但各种浏览器之间的不兼容性问题,加大了页面布局的难度,给程序员带来很多不便,于是需要花费更多的时间在调试各种浏览器的兼容性上.因为部分CSS属性在不同的浏 ...
- JPA中实现单向一对多的关联关系
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...
- SAP GUI Security notice
出现错误提示: Failed to load administrator rule file.Check your Installation. 原因: 电脑缺少MS XML4.0,导致SAP客户端无法 ...
- 教程视频、项目源码、全部干货【微信小程序、React Native、Java、iOS、数据结构】
把我收藏多年的教学视频.项目源码分享给大家,大神就可以忽略了,很多东西都是基础性的,都是期初学习阶段收集的东西. 微信小程序(入门级,有web前端基础的人群): 链接: https://pan.bai ...
- Android 弹出Dialog时隐藏状态栏和底部导航栏
上代码 dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); di ...
- mysqld_safe error: log-error set to '/data/log/mysqld.log', however file don't exists. Create writable for user 'mysql'.The server quit without updating PID file (/data/mysql/mysqld.pid)
[oot@cent65 bin]# service mysqld startStarting MySQL.2019-10-28T15:56:47.786960Z mysqld_safe error: ...
- ES6.x
类 class Animal{ constructor(name){ this.name=name } Spack(){ console.log(name) } } class Dog extends ...
- C# 中代码执行 ping 操作
在代码中可以通过调用 System.Net.NetworkInformation 命名控件下的 Ping 类的 Send() 方法来实现,代码如下: var ping = new System.Net ...
- weblogic解决jar包冲突
前言 在项目中利用POI开发excel.word的导入导出功能,而POI在解析xlsx及docx两种高版本文档时需要依赖xmlbeans包,但weblogic容器中提供了低版本的xmlbeans,从而 ...
- 洛谷 UVA1328 Period
洛谷 UVA1328 Period 洛谷传送门 题目描述 PDF 输入格式 无 输出格式 无 题意翻译 题意描述 对于给定字符串S的每个前缀,我们想知道它是否为周期串.也就还是说,它是否为某一字符串重 ...