高通charge杂记_qcom,fg-jeita-thresholds-程序员宅基地

技术标签: 经验分享  charge  

BCS v1.2的充电器探测原理如下:

当OTG驱动捕获到VBUS中断的时候,断开DP/DM与SIE接口的连接,然后等待数据线的连接(DCD)并设置超时,一般是750ms,如果超时,可启动usb gadget驱动做识别;否则在DP上加载0.6V的电压,检测DM上是否有0.6V的电压,这里有两种情况:

情况一:如果有0.6V电压,那么可能是DCP或者CDP充电器,接着在DP上撤销0.6V电压并加载0.8V电压,检测DM上的电压,如果是0.8V那么就是DCP充电器,否则由于CDP充电器对DP上的0.8V电压不做响应,得出是CDP充电器;

情况二:如果没有0.6V电压,那么就是SDP即是数据线连到了PC上。

探测完毕后,重新打开DP/DM和SIE的连接。

注:VDAT_REF=0.6V,数据线参考电压

VLGC=0.8V,逻辑电压

充电温度控制相关修改:

835平台充电电压、电流根据温度设置如下图形所示:

设置4个温度点,五个区间分别为cold、cool、normal 、 warm 、hot, 此4个温度点寄存器地址如下:

  1. 0x00004162 FG_BATT_INFO_JEITA_TOO_COLD

  2. 0x00004163 FG_BATT_INFO_JEITA_COLD

  3. 0x00004164 FG_BATT_INFO_JEITA_HOT

  4. 0x00004165 FG_BATT_INFO_JEITA_TOO_HOT

此四个温度默认值为: 0 、5 、45、50度。可以通过如下程序修改:

  1. #define DEFAULT_BATT_TEMP_COLD -5

  2. #define DEFAULT_BATT_TEMP_COOL 0

  3. #define DEFAULT_BATT_TEMP_WARM 50

  4. #define DEFAULT_BATT_TEMP_HOT 55

也可通过 如下dtsi 修改:

  1. &pmi8998_fg {

  2. qcom,battery-data = <&mtp_batterydata>;

  3. qcom,fg-jeita-thresholds = <-5 0 50 55>;

  4. };

当在cold和hot区间时,电池不充电,当在cool和warm区间时,电池的充电电压,充电电流为JEITA_FVCOMP和JEITA_CCCOMP。 此两个值分别在如下寄存器中设置: | 0x00001091 | SCHG8998_CHGR_JEITA_FVCOMP_CFG | 寄存器默认值为:0x0E, 默认电压为:4.35 – 0.105 = 4.25 附近。 | 0x00001092 | SCHG8998_CHGR_JEITA_CCCOMP_CFG | 寄存器默认值为:0x28, 默认电流为:3A – 1A = 2A 如果需要修改此区间的充电电压、充电电流修改相应的寄存器即可

- qcom,jeita-soft-fcc-ua: A tuple entry to specify the values of Fast
            charging current (in uA) that needs to be applied during
            soft JEITA conditions (cool/warm).
            Element 0 - FCC value for soft cool.
            Element 1 - FCC value for soft warm.
- qcom,jeita-soft-fv-uv: A tuple entry to specify the values of Float
            voltage (in uV) that needs to be applied during soft
            JEITA conditions (cool/warm).
            Element 0 - FV value for soft cool.
            Element 1 - FV value for soft warm.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jlgcumt/article/details/119912648

智能推荐

十六进制与字节数组转换_bytearraytohexstring-程序员宅基地

文章浏览阅读7.2k次。前段时间开发手持机上的软件,因为A8手持机的射频卡可存储的内容太小,并且需要存储16进制数据,因此就写了一个工具类。上代码:package cn.com.szh;import java.io.UnsupportedEncodingException;public class Main { public static void main(String[] args) { Stri..._bytearraytohexstring

对每个边缘求最小外接矩形,通过最小矩形提取每个边缘_边缘的最小外接矩形-程序员宅基地

文章浏览阅读4.9k次。#include #include using namespace std;using namespace cv;int main(){Mat src; //源图像Mat tmp; //临时图像Mat dst_bw; //去掉背景后的目标二值图像Mat dst_contours;//轮廓图像src=imread("E:\\单板图片\\求孔洞数_边缘的最小外接矩形

【设计模式】中介者-程序员宅基地

文章浏览阅读865次。中介者,说白了跟市面上黑中介类似。当然这个中介,开发者是可以控制其行为的。也是在一定的信任关系上建立的。该模式要解决的问题是,一堆对象之间交叉耦合问题。网上看过群聊的例子。如果没有任何一个平台,多人之间的会话会是什么样的呢?不举多人,就三个吧A想把一句话说给BC,那么他首先要知道B和C在哪儿,然后分别告诉对方,自己想说的事情。如果再加一个人呢?问题很明显,此时各种群聊工具应运而生。我写

Mysql列自增是怎么实现的_mysql 自增序列生成原理-程序员宅基地

文章浏览阅读1.8k次。AUTO_INCREMENT两种情况1、在载入语句执行前,已经不确定要插入多少条记录。在执行插入语句时在表级别加一个auto-inc锁,然后为每条待插入记录的auto-increment修饰的列分配递增的值,语句执行结束后,再把auto-inc锁释放掉。一个事务再持有auto-inc锁的过程中,其他事务的插入语句都要被阻塞,可以保证一个语句中分配的递增值是连续的。AUTO-INC锁的..._mysql 自增序列生成原理

半导体器件基础_掺杂半导体的带隙-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏17次。半导体能带结构示意图:上方两条白色带为没有电子填充的带,下面三条灰色带为充满电子的带,其中最高一条灰色带为价带,它与最低一条白色带之间的空隙为能隙空穴又称电洞(Electron hole),在固体物理学中指共价键上流失一个电子,最后在共价键上留下空位的现象导带(英语:conduction band),又名传导带,是指半导体或是绝缘体材料中,一种电子所具有能量的范围。这个能量的范围高..._掺杂半导体的带隙

基于C++和OpenCV的中心线提取算法_图像中心线提取c++-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏26次。基于C++和OpenCV的中心线提取算法加权平方灰度重心法介绍算法演示加权平方灰度重心法介绍详情见 https://blog.csdn.net/u010518385/article/details/101015604算法演示下面展示 函数-输入图像和阈值,输出点。void get_median_line(Mat& src, int thresh, vector<Point2d>& points){ if (src.empty()) return; // 一、_图像中心线提取c++

随便推点

AD(Altium Designer)导出BOM时出错处理_ad导出bom表不完整-程序员宅基地

文章浏览阅读1.1w次,点赞5次,收藏11次。Altium Designer导出BOM时弹出如下错误窗口问题分析出现这一问题的原因主要有三方面可能的原因。原因一:AD对Templates文件夹的访问权限不够原因二:Office没有安装或者未激活原因三:AD对Office软件的授权判断出错(AD的BUG)问题解决原因一:AD对Templates文件夹的访问权限不够方法1:可以在导出BOM时取消【相对路径到模板文件】选项。取消以后其实就是把模板文件复制到PCB工程中再使用,这样就能回避对上面提到的Template_ad导出bom表不完整

Hive中mapjoin优化例子_hive使用mapjoin实例-程序员宅基地

文章浏览阅读3.2k次。1 基本信息3个表,1个事实表,2个维度表事实表 test_fact (mid string,sex_id string,age_id string )维度表dim_user_demography_age (age_id string,age_name string )维度表dim_user_demography_sex (sex_id string,sex_name strin..._hive使用mapjoin实例

大学四年,从小白到大神,全网最硬核算法学习攻略,不接受反驳-程序员宅基地

文章浏览阅读2.6k次,点赞18次,收藏118次。说到算法的学习方式,对我来说,真的没有什么捷径之类的,就是像我上面说的,先找本书死磕入门数据结构,就跟着书的例子,把例子跑起来就好了,跑起来也不是一件简单的事情。之后就去接触下一些算法思想,后面就可以分类刷题了,刷题就是最好的捷径了。当然,不要 AC 之后就完事了,应该尽可能寻找最优解,当你积累了一定的题量,那么你真的会发现自己变强了,突然感觉递归也就那么一回事。_算法学习

解决ERR! request to http://registry.cnpmjs.org/echarts failed, reason: getaddrinfo ENOTFOUND 报错问题_getaddrinfo enotfound registry.cnpmjs.org-程序员宅基地

文章浏览阅读2.1k次,点赞9次,收藏12次。这里我看其他博主运行完 config set registry https://registry.npm.taobao.org/这个之后又运行了npm install -g cnpm --registry=https://registry.npm.taobao.org ,结果我还是一直报错,可能是没理解其他博主的意思,反正运行完config set registry https://registry.npm.taobao.org/之后直接安装就好了。如果是其他,你使用的是代理,需要在 npm 中配置代理。_getaddrinfo enotfound registry.cnpmjs.org

QT 出现“找不到libgcc_s_dw2-1.dll”的解决方式_qt打包缺少libgcc_s_dw2-1.dll-程序员宅基地

文章浏览阅读5k次。在使用QT时,运行程序时,可能出现QT找不到DLL的问题,这种情况大多数情况是因为没有将QT添加到环境变量的原因。解决方式:我的电脑-高级设置-环境变量将QT的两个bin文件目录路径添加到环境变量中,即可解决这个问题!..._qt打包缺少libgcc_s_dw2-1.dll

Socket网络编程-程序员宅基地

文章浏览阅读1.5w次,点赞15次,收藏74次。Socket1 环境查看通过cmd窗口的命令:ipconfig查看本机IP地址查看网络情况是否正常:ping百度官网用来进行本地测试的地址 127.0.0.1,回环测试地址,默认代表的就是本机的IP2 Socket概述socket编程也叫套接字编程,应用程序可以通过它发送或者接受数据,可对其像打开文件一样打开/关闭/读写等操作.套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信.网络套接字是IP地址与端口号TCP协议的组合Socket就是为网络编程提供的一_socket网络编程