问题:充电电流被限制,导致充电时间过长。

代码版本分支:android4.3_master

pmu文件管理文件地址:drivers/infotm/power/axp_power/

复现问题,检测电流变化,发现机器在深度休眠后电流会由原来的1.2A变成0.5A。

猜测:可能是由于充电电流过小导致充电时间过长。

分析:1.查看axp202的datasheet查找到限制充电电流的寄存器地址,发现控制是否有限制充电电流的寄存器地址为:0x30[1-0],在深度休眠前查看寄存器0x30的值

>>#echo 30 > sys/class/axppower/axpreg

>>#cat sys/class/axppower/axpreg

得到结果为:63(此为十六进制),转换为2进制为:1100011,此时0x30[1-0]位的取值为:11,根具datasheet发现此时充电电流限流是关闭的。

深度休眠后用同样的方法查看寄存器0x30,得到结果0x30为:61,转换二进制后为:1100001,0x30[1-0]位取值为:01,根据datasheet发现此时被限流为500mA,与发现的问题相符。

查看datasheet会发现,限制流量大小的控制是通过寄存器0x33来控制的,同样此时可以读取0x33的值,根据datasheet中的说明计算,同样可以得到电流为500mA,以此来验证了猜想。

由于问题是发生在深度休眠后,故此查看代码,查找软件在深度休眠时以及休眠唤醒时做了哪些动作。或者查找那些地方对0x30这个寄存器做了修改,让其主动的限制充电电流为500mA。

查找与休眠相关的函数,resume,suspend

最终发现在文件mod5_config.h文件中,的mode5_batt_resume函数中,对0x30做了值的改变。

注释掉此代码后,发现问题消失,说明问题是因为此处而引起的,分析此处代码在整个代码中的功能,是否可以直接去掉,不可以直接去掉的需要添加判断做区分,或者想别的办法修改vbus的充电电流。

请教修改的当事人,得知此处是由于以前一个项目没有DC充电口,但是用usb充电时,重点电流过大会导致usb在PCB上的引脚温度过高而软化,容易出现问题。因此限制电流,经过改版后,已经不存在这个问题,但是代码中没有恢复导致问题。可以直接注释掉。

vbus:是用来监测是否为usb充电,检测为usb充电时电流会自动设置为500mA。

注意:git blam 文件名  查看这个在什么时候什么人修改了什么东西。

datasheet需要细看,特别是寄存器相关的地方。

分析问题思路:1.遇到问题后先分析引起这个问题的可能原因。

2.复现问题,并观察可能因素的一些变化。

3.修改变化去验证现象。从而肯定问题的原因。

4.找到一个不会影响其他功能的办法。

axp202电源管理相关推荐

  1. linux pcie热插拔驱动_Linux安装TLP-高级电源管理工具

    唉,最近有了一个新问题.系统版本Ubuntu 18.04,笔记本,一旦断开电源,电脑就会卡住.试过的方法: 更新了固件 sudo apt update sudo apt upgrade -y 管了几天 ...

  2. 时钟,复位和电源管理

    文章目录 一.电源管理和复位 二.时钟 1.时钟的分类和特性 2.时钟图 杨桃32学习笔记,本文图片文字皆为转述 一.电源管理和复位 (1)8MHZ的振荡器给arm内核提供,40khz给RTC使用也就 ...

  3. 关闭linux服务器电源,linux关闭ACPI电源管理模块

    一.运行环境 # cat /etc/redhat-release CentOS release 6.2 (Final) # uname -a Linux web-server- 2.6.-.el6.x ...

  4. Freescale 基于IMX536处理器的Dialog DA9053电源管理参考设计

    Freescale 基于IMX536处理器的Dialog DA9053电源管理参考设计 ----------墨翟科技(上海)有限公司编撰 在2012年飞思卡尔技术论坛中国站的展示区,Dialog公司推 ...

  5. android电源驱动程序,[转]Android虚拟电源管理驱动

    Android系统如果没有电源管理相关的驱动程序,在启动时将会提示如下错误: I/SystemServer(   50): Starting Battery Service. E/BatterySer ...

  6. IC基础知识(4)电源管理简介:稳压器IC

    文章目录 写在前面 正文 线性与开关 线性稳压器 开关稳压器 其他类型的功率IC 结论 写在前面 原文链接:Introduction to Power Management: Voltage Regu ...

  7. FPGA内部电源管理详解

    做了这么长时间的FPGA的设计,也看了很多这方面的书籍资料,不管是编程还是调试,一直都只在关心有没有实现功能,没有去深入理解FFPGA的内部结构,接下来这几篇文章将着重分析FPGA设计的各个部分细节. ...

  8. 服务器电源管理(Power Management States)

    目录 文章目录 目录 EIST(智能降频技术) 硬件 固件 操作系统 EIST(智能降频技术) EIST 能够根据不同的 OS(操作系统)工作量自动调节 CPU 的电压和频率,以减少耗电量和发热量.它 ...

  9. 组策略之(5)-------电源管理设置

    现在都是倡导绿色节能,我们做IT的也不能落后啊,哈哈. 好多职员不在座位上,或者休息时,甚至下班后都不会关闭显示器,这样是很浪费的哦,所以我们要在电源管理进行设置,今天就通过组策略进行电源管理设置. ...

最新文章

  1. 牛!大佬原创的《Python 与数据分析 100 个案例》PDF 可以下载了
  2. ExtJs控件属性配置详细(转)
  3. oracle11g 查看表,oracle11g查看,添加表空间
  4. visa虚拟卡生成器_英国虚拟卡 获取多张VISA和Mastercard
  5. 【JAVA】-- 坦克大战全部代码
  6. 南航计算机学院的实验室,南航计算机科学与技术学院导师介绍:魏欧
  7. 利用WPF做出的简单界面布局一
  8. JsBarcode 安装、使用、生成条形码的容器 及 参数配置options。 还存在的问题:条形码总体的宽度设置问题
  9. S3C64xx设备树支持
  10. 如何让PHP性能问题不再饱受诟病
  11. 商用密码应用安全性评估过程学习指南
  12. 企业微信组织架构同步教程
  13. mysql更新表时自动生成时间和更新时间
  14. Java抽象类和接口使用_Java 抽象类和接口
  15. 计算机科学 泰勒级数,一阶常微分方程泰勒级数解法的计算机实现.pdf
  16. 油烟净化器如何判断质量好坏?
  17. 有扰动的闭环传递函数 matlab,已知闭环传递函数
  18. SpringCloud Hystrix熔断器
  19. 北京内推 | 微软亚洲研究院机器学习组招聘研究型实习生
  20. java标签uri,JSP自定义标签-定制URI

热门文章

  1. netcore 开源cms
  2. Android开发的经典入门教材和学习…
  3. PHP开发API接口代码展示
  4. c语言里编译错误c131,C语言习题选择题.doc
  5. Nginx: 正向与反向代理
  6. 怎么制作地图分布图,如何在地图上画出区域
  7. JS_强制类型转换_Number
  8. 计算机安全凭据,4776 (S、F) 计算机尝试验证帐户的凭据。 (Windows 10) - Windows security | Microsoft Docs...
  9. zigbee基本概念及组网特性
  10. 英特尔k跟kf区别_真实情况透露英特尔10900kf和10900k区别怎么选?评测比较哪款好...