axp202电源管理
问题:充电电流被限制,导致充电时间过长。
代码版本分支: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电源管理相关推荐
- linux pcie热插拔驱动_Linux安装TLP-高级电源管理工具
唉,最近有了一个新问题.系统版本Ubuntu 18.04,笔记本,一旦断开电源,电脑就会卡住.试过的方法: 更新了固件 sudo apt update sudo apt upgrade -y 管了几天 ...
- 时钟,复位和电源管理
文章目录 一.电源管理和复位 二.时钟 1.时钟的分类和特性 2.时钟图 杨桃32学习笔记,本文图片文字皆为转述 一.电源管理和复位 (1)8MHZ的振荡器给arm内核提供,40khz给RTC使用也就 ...
- 关闭linux服务器电源,linux关闭ACPI电源管理模块
一.运行环境 # cat /etc/redhat-release CentOS release 6.2 (Final) # uname -a Linux web-server- 2.6.-.el6.x ...
- Freescale 基于IMX536处理器的Dialog DA9053电源管理参考设计
Freescale 基于IMX536处理器的Dialog DA9053电源管理参考设计 ----------墨翟科技(上海)有限公司编撰 在2012年飞思卡尔技术论坛中国站的展示区,Dialog公司推 ...
- android电源驱动程序,[转]Android虚拟电源管理驱动
Android系统如果没有电源管理相关的驱动程序,在启动时将会提示如下错误: I/SystemServer( 50): Starting Battery Service. E/BatterySer ...
- IC基础知识(4)电源管理简介:稳压器IC
文章目录 写在前面 正文 线性与开关 线性稳压器 开关稳压器 其他类型的功率IC 结论 写在前面 原文链接:Introduction to Power Management: Voltage Regu ...
- FPGA内部电源管理详解
做了这么长时间的FPGA的设计,也看了很多这方面的书籍资料,不管是编程还是调试,一直都只在关心有没有实现功能,没有去深入理解FFPGA的内部结构,接下来这几篇文章将着重分析FPGA设计的各个部分细节. ...
- 服务器电源管理(Power Management States)
目录 文章目录 目录 EIST(智能降频技术) 硬件 固件 操作系统 EIST(智能降频技术) EIST 能够根据不同的 OS(操作系统)工作量自动调节 CPU 的电压和频率,以减少耗电量和发热量.它 ...
- 组策略之(5)-------电源管理设置
现在都是倡导绿色节能,我们做IT的也不能落后啊,哈哈. 好多职员不在座位上,或者休息时,甚至下班后都不会关闭显示器,这样是很浪费的哦,所以我们要在电源管理进行设置,今天就通过组策略进行电源管理设置. ...
最新文章
- 牛!大佬原创的《Python 与数据分析 100 个案例》PDF 可以下载了
- ExtJs控件属性配置详细(转)
- oracle11g 查看表,oracle11g查看,添加表空间
- visa虚拟卡生成器_英国虚拟卡 获取多张VISA和Mastercard
- 【JAVA】-- 坦克大战全部代码
- 南航计算机学院的实验室,南航计算机科学与技术学院导师介绍:魏欧
- 利用WPF做出的简单界面布局一
- JsBarcode 安装、使用、生成条形码的容器 及 参数配置options。 还存在的问题:条形码总体的宽度设置问题
- S3C64xx设备树支持
- 如何让PHP性能问题不再饱受诟病
- 商用密码应用安全性评估过程学习指南
- 企业微信组织架构同步教程
- mysql更新表时自动生成时间和更新时间
- Java抽象类和接口使用_Java 抽象类和接口
- 计算机科学 泰勒级数,一阶常微分方程泰勒级数解法的计算机实现.pdf
- 油烟净化器如何判断质量好坏?
- 有扰动的闭环传递函数 matlab,已知闭环传递函数
- SpringCloud Hystrix熔断器
- 北京内推 | 微软亚洲研究院机器学习组招聘研究型实习生
- java标签uri,JSP自定义标签-定制URI
热门文章
- netcore 开源cms
- Android开发的经典入门教材和学习…
- PHP开发API接口代码展示
- c语言里编译错误c131,C语言习题选择题.doc
- Nginx: 正向与反向代理
- 怎么制作地图分布图,如何在地图上画出区域
- JS_强制类型转换_Number
- 计算机安全凭据,4776 (S、F) 计算机尝试验证帐户的凭据。 (Windows 10) - Windows security | Microsoft Docs...
- zigbee基本概念及组网特性
- 英特尔k跟kf区别_真实情况透露英特尔10900kf和10900k区别怎么选?评测比较哪款好...