充电该知道的部分知识

1、battery id检测原理:

首先硬件上要有一个独立的电池 ID PIN,供软件区分,一般是在电池端制作多一个PIN,连接不同的电阻,然后通过BB(平台)端的ADC去获取这个channel的电压值就不同,以此来在软件上做bat_id的区分

2、电池在位检测:

一般都是采用AUXADC上拉的1.8V电压,通过电阻分压分方式来检测电池是否在位:
电池不在位:
NTC电阻在电池内部,电池不在位时,比较器的负端输入就是上拉电压1.8V,VDD18>1.2 V(比较值),比较器输出低电平,表示电池不在位
电池在位:
NTC电阻接入电路,比较器负端输入的就是两个电阻的分压值,比较器负端分压值小于1.2V,比较器输出高电平,表示电池在位

3、电池温度检测:

采用电池NTC热敏电阻,通过电阻分压的方式来检测电池温度:
NTC电阻随着温度的降低电阻变大,从而NTC分压值也变大,然后通过集成在PMIC上的AUXADC采集NTC电阻上的电压值,通过查找T-V表来获取对应电压下的温度值

4、FGU电量计:电量积分统计

FGU模块通过ADC检测电压和电流,FGU通过电池负极和GND之间的20毫欧的电阻进行采样

5、充电器类型识别:

https://blog.csdn.net/bei_dai_he/article/details/109598896?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%85%85%E7%94%B5%E7%B1%BB%E5%9E%8B%E6%A3%80%E6%B5%8B&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-109598896.142v9control,157v4control&spm=1018.2226.3001.4187

充电器类型检测由BC1.2硬件自动实现,当插入充电器时,Vbus变为高电平,触发中断,同时触发BC1.2检测,由PHY模块读取PMIC寄存器上保存的BC1.2检测结果,充电驱动接收到USB Notify通知后,从PHY模块读取检测的结果
在 BC1.2 标准中定义了 4 种充电器类型,分别为:
DCP(Dedicated Charging Port,专用充电接口)
SDP(Standard Downstream Port,标准下行接口)
CDP(Charging Downstream Port,充电下行接口)
NoneDCP
POWER_SUPPLY_USB_TYPE_DCP:标准 AC 充电,DCP仅用于充电,无usb通信功能,DP和DM通过<200 Ω 的电阻连接在一起
POWER_SUPPLY_USB_TYPE_SDP:标准 USB 充电,SDP 是符合现有 USB 规范的主机(HOST)上的下行 USB 接口,具有通信功能,SDP 内部 DP 和 DM 分别通过 RDP_DWN(14.25 kΩ≤RDP_DWN≤24.8 kΩ)和 RDM_DWN(14.25 kΩ≤RDP_DWN≤24.8 kΩ)下拉到地
根据 USB2.0 规范:
− 当 USB 外设处于未连接(un-connect)或挂起(suspend)状态时,从 SDP 抽取的平均电流不超过2.5 mA。
− 当外设处于连接(connect)且未挂起未配置状态时,从 SDP 抽取的最大电流不超过 100 mA。
− 当外设已经配置(configured)且未挂起时,从 SDP 抽取的最大电流不超过 500 mA
POWER_SUPPLY_USB_TYPE_CDP:大功率主板如笔记本充电,CDP 是兼容 USB 规范,同时又针对 USB 充电进行优化的下行 USB 接口,可以是主机上的 USB 接口,也可以是 USB HUB 上的接口,可以提供最大至 1.5 A 的供电能力
POWER_SUPPLY_USB_TYPE_UNKOWN:非标准充电,如 DP 和 DM 均悬空的充电器

6、关闭充电功能:

异常状态:高温 高压 等情况会关闭充电
部分模式下:如工厂模式,关闭充电,为了保证一些流程正确进行
POWER_SUPPLY_PROP_STATUS 属性定义了 4 个充电状态:
DisCharging :放电
Charging :充电
NotCharging :充电异常停止
Full : 满电

9、Fuel Gauge(FGU)电量计:

库仑计量法:
https://blog.csdn.net/qq_40662854/article/details/101695714?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165087526916782350968055%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165087526916782350968055&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-101695714.142v9control,157v4control&utm_term=%E5%BA%93%E4%BB%91%E8%AE%A1%E7%94%B5%E9%87%8F%E7%A7%AF%E5%88%86&spm=1018.2226.3001.4187

初始电量:
库仑计采用电流积分来计算初始容量变化,但是如果更换电池情况下是无法获取电池的电量积分的,所以采用电压模式来辅助定位初始容量,库仑计 + OCV Table混合模式进行电量统计

电量更新:
Charger Manager 设置启动了一个 10s或者15s的周期性 timer,在充电过程中定时唤醒系统来监视电量百分比和充电状态,放电过程中允许系统休眠,休眠过程中 FGU 模块会持续统计容量,电量更新仅在系统唤醒的瞬间执行
电量校准:
满电校准:在电流小于配置的满电电流并且电池电压大于配置的满电电压,此时将FGU电量校准为100%,同时充电状态设为Full状态,UI电量显示更新为100%
低电校准:根据电池OCV能量密集度,在低电量区选择两个校准点,4%和1%,
UVLO(欠压锁定):
电池电压太低时,有些模块在低电压情况下无法正常工作,会出现不可预知风险。为了保证系统稳定性,如果软件检测到电池电压低于系统工作门限电压 3250 mV,则会触发软件 UVLO(Under Voltage Lock Out,欠压锁定)流程,主动通知上层发起关机命令
工作门限电压取决于CPU和DDr这些关键期间的工作电压,一般是3.3v,所以低于3.3v就不可以启动系统

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值