最近遇到一个IEEE1725的验证,

1. 电池电压低于3.0v时, 先接入Battery,再接入power,要求不能正常充电;先接入power,再接入Battery,要求不能正常充电;

2. 挡住NTC pin,要求停止充电;拔掉挡片,要求恢复充电;

看第二条;挡住NTC pin,则被认为电池不在(qcom 8909平台),这个时候,healthd的状态是COLD;temp是25°,默认值;而电池的状态则是discharging,但是看AC adapter上,有1A的电流往手机里灌;

分析,电池的状态显示有两个,一个是status,一个是是否有充电器插入;闪电图标表示有充电器插入,并非表示在充电,而status表示电池的充电状态,discharging,charging,full;电池的health状态,应该是上层显示时,来下层读取的;而是否要disable  charging,我是说真正的断开电流,则需要设置;状态的改变只是被某个事件触发了,改变了状态,而起底层硬件状态则需要设置;问题恰恰出在这里;我们挡掉了NTC pin,charger芯片反馈的结果就是remove  Battery,但是remove  Battery之后,有没有去设置充电电流呢?  流程中是没有的

我们需要的正确行为如下:

手机待机,插着充电器,remove Battery,手机应该正常工作,线上提供工作电流,手机不重启; 挡住NTC,应停止向电池充电,线上提供电流;我使用qpnp_lbc_charger_enable接口,来使能充电,能够满足”挡住NTC,停止充电“,但是拔掉电池,则会导致机器直接掉电重启!

高通参考设计关于batt_id,如果没有电池id,检测脚是接死的。这种设计之下,拔掉电池与挡住NTC连接,两种场景下,寄存器的值是一样的,0x1208寄存器 bit0都是1。也就是说,软件无法区分电池remove与NTC disconnect。

而在0x1049中, 要么允许Battery  charging,要么禁止Battery charging,由于无法分辨remove与NTC disconnect,则无法对此做设置;如强行设置,则出现电池拔掉,又强制走电池供电,系统就会掉电。

插拔NTC之后的充电状态相关推荐

  1. android u盘挂载监听,Android SD卡及U盘插拔状态监听及内容读取

    本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...

  2. Android SD卡及U盘插拔状态监听和内容读取

    本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...

  3. shell 判断网线插拔_linux检测网线插拔状态

    Shell查看网线插拔状态: 使用ifconfig命令,如果含有"RUNNING",说明网线接入,否则就没有. 例: ifconfig ifconfig eth0 ifconfig ...

  4. C# USB插拔状态监控工具

    由于公司提供的dll库文件有bug而且源码不全,只能搜索到部分USB设备,例如蓝牙适配器和摄像头均不能识别,因此网上找了一些例程进行调试. 本方法采用的基本原理是在WMI的基础上对计算机上的注册表进行 ...

  5. 充电枪插拔及温升老化测试仪的试验原理是?

    一.设备概述: 1.1 充电枪插拔及温升老化测试仪符合GB/T 18487.1-2015电动汽车传导充电系统,第一部分:通用要求:GB/T20234.1-2015<电动汽车传导充电用连接装置第1 ...

  6. linux 监控网线拔掉,linux应用层监控网线插拔状态的实现.doc

    linux应用层监控网线插拔状态的实现 HYPERLINK "/sunzl1987/archive/2012/05/24/2516635.html"linux应用层监控网线插拔状态 ...

  7. 使用libusb检测USB设备插拔状态

    libusb是一个提供USB设备访问的跨平台用户模式程序库.该项目最新网址:http://www.libusb.info, 支持主流的操作系统:Linux.Mac OS X. Windows.Open ...

  8. Lan8720 网线插拔状态检测

    目的:能够实时的检测网线的插拔状态.并能够根据网线的插拔状态通知到到应用层,让应用层做相应的处理. 1.解决问题的根本方法就是看lan8720的数据手册!!!! 如果说你用过一款芯片,而没有去研究过它 ...

  9. Android开发-动态获取电视盒子U盘的插拔状态和路径

    最近公司的盒子端扩展一个新功能:插入U盘后自动幻灯片播放U盘指定文件夹下的所有图片,拔出U盘后恢复视频播放. 直接上代码: 一.注册广播监听U盘的插拔 1.1.注册 IntentFilter inte ...

最新文章

  1. 仅靠合成数据就能实现真实人脸分析!微软这项新研究告别人工标注
  2. 硬盘突然变慢的原因,系统突然变慢的原因
  3. vue element 表格使用fixed固定列后切换菜单时错位问题
  4. Activity详细解释(生命周期、以各种方式启动Activity、状态保存,等完全退出)...
  5. linux系统日志_如何使用 Linux Cockpit 来管理系统性能 | Linux 中国
  6. 8个最高效的Python爬虫框架,你用过几个?
  7. Kube-OVN:基于OVN的开源Kubernetes网络实践
  8. Eclipse Git下载问题:Internal error; consult Eclipse error log.
  9. php7.0和5.6哪个好,PHP7.0与PHP5.6下Laravel博客的应用性能对比介绍
  10. 【java笔记】基本类型与字符串之间的转换
  11. 【解决方案】K2 BPM_赋能房地产业务高效运营_全球领先的工作流引擎
  12. mysql存储多少_MySQL存储引擎你们知道多少?
  13. 好用的图片压缩工具Tinypng
  14. Kettle5.4调用Redis
  15. 完美解决电脑老是弹出广告窗口!
  16. 个人理财第十课-【货币基金】筛选实操课
  17. python 存根_python - 内联类型注释与存根会导致不同的mypy行为 - SO中文参考 - www.soinside.com...
  18. 一款Java神仙接私活项目,吊到不行!
  19. 哈工大C语言程序设计精髓 第十一周编程题
  20. 局域网下访问自己的项目和网页

热门文章

  1. 水银承诺mercurial commitment
  2. 顺序表操作(动态+静态版本),思路清晰易懂
  3. 中国中间相沥青基碳纤维行业研究与投资预测报告(2022版)
  4. 《Android源码设计模式解析与实战》读书笔记(二十一)
  5. 植物大战僵尸年度版的用户资料保存路径
  6. linux,/etc/passwd,/etc/shadow字段解释
  7. 基于nginx配置的WordPress网站防御17ce等测速网站攻击指南
  8. 【C语言函数参数详解】——实际参数(实参)形式参数(形参)
  9. Bartender使用心得
  10. 2021年T电梯修理报名考试及T电梯修理考试资料