某手机在-20度环境下,只能读到电池温度为-18℃
某手机在-20度环境下,只能读到电池温度为-18℃
作者:AirCity 2020.3.1
Aircity007@sina.com 本文所有权归作者Aircity所有
问题回顾
MSM8953平台手机在低温-20℃,从log读出电池温度为-14~-18℃不等,超出Spec给出的±3℃偏差。
电池有低温策略要求,在-20℃与-15℃环境下,对手机使用采用不同的限制策略:-15℃时,电量低于10%,禁止开闪光灯;-20℃时,电量小于50%,禁止开闪光灯(参考友商做法)。
要实现以上目的,手机必须能够分辨-15℃和-20℃。但实测发现,手机在-20℃检测到的电池温度偏差很大,已经大于5℃。
温度不准确带来的影响:锂离子电池充电需要符合JEITA规范,其在不同温度下,对充电电流和电压做不同的限制,以降低电池老化或者电池爆炸的风险。例如电池温度超过50℃,应立即停冲,否则电池有发生散热失控,进而爆炸的可能。电池温度检测不准确,手机无法准确按照JEITA规范进行有效限制。
问题分析
电池温度检测原理很简单,如下所示,R1为是上拉电阻,Rth是NTC电阻。NTC电阻随温度降低而增大,根据分压原理,BATT_THERM引脚电压随之增加,ADC获取电压,Fuel Gauge模块的ADC将此转换为温度。
上拉电压V_RBIAS为2.7V,来自于内部LDO,可以从VAA_CAP上测量到。此电压在PMI8952内部分出一路作为V_RBIAS,并串了一个开关,当需要读取温度时,开关打开,频率是1.47s(与电量计频率一致)。
上拉电阻R1值要求与NTC电阻在25℃时相等。所以整个温度检测电路,对硬件的要求只有两点:
1) NTC电阻选型
2) 滤波电容C1选型
软件要根据如上选型,配置Beta参数和Fuel Gauge的ADC采样延迟。据了解,很多手机型号都没做这样的设置。
针对NTC电阻和滤波电容C1,高通文档给出如下五种选择,高通回复,可以任选。
同时高通在Spec也给出了NTC的选型建议:
高通还推荐尽量选择Beta值小的NTC
主流厂家的NTC规格如下:
本项目选择了10K,对应Bate值为3380的Murata产品NCP03XH103F05RL,这个是业界常用值。电容C1为0.1uF。
针对不同的Bate值,高通要求写入不同的配置参数(C1,C2,C3),如下图(表格很长,只截取一段),这些参数会带入高通在Steinhart-Hart公式基础上优化的数学模型,Steinhart-Hart如下:
1985年Steinhart和Hart在海洋中研究温度测量时,发明的一种热敏电阻温度模型,被流行至今。
在高通自己的模型中,有了下表的几个参数,就能计算出温度值,但是高通不提供此模型,我们自己不能做理论计算。
对于Bate=3380. C1=86DA,C2=50F0,C3=3C08. 然而软件并没有将此值写入代码,使用的是默认值C1=0x86DB,C2=0x50F1,C3=0x3c11。这是引起温度检测不准确的原因之一。
本项目的电池温度检测电路,滤波电容C1=0.1uF,小于4.7uF最大值,符合要求。此容值越大,要求Fuel Gauge ADC采样延迟越大,最大不超过160ms,还有如下几种设置:
要求有延迟的原因是:采样周期是1.46s一次,先打开V_RBIAS,然后采样,结束后,关闭V_RBIAS。在打开V_RBIAS瞬间,电容的存在导致BATT_THERM上的电压比实际的分压要低,过一段时间才会上升到正常值。如果ADC无延迟,不等电压稳定,立即采样,必然不准确,如下图。软件没有设置这个延迟,默认是0. 这是引起温度不准确的原因之二。
可见在写入正确的Bate参数和延迟后,温度检测偏差减小,恢复到spec所述的±3℃以内。
从另一个角度理解这个Beta值的选择,Beta值越大,温度在-20℃时的阻值越大,NTC上的分压越大,当Beta=3380时,-20℃时,阻值为70.3K,上拉电阻10K,上拉电压为2.8V,分压后Vbat_therm=2.36V;ADC的输入范围是0-2.7x91.2%=2.462V。NTC上的分压在ADC输入范围内,没有问题,但是已经很接近。
虽然温度检测精度±3℃没问题了,但是发现温度还是检测不到-20℃。高通曾经发过一个issue,说明了这个问。上面已经说明Beta值与最低检测温度有对应关系,怀疑高通的ADC在低温下性能不好,又不好意思承认,只给了使用注意事项,但没告诉为什么。
从下面高通提供的曲线可以看出beta为3380的NTC,最低能检测约-18℃。
某手机在-20度环境下,只能读到电池温度为-18℃相关推荐
- Android手机在4G网络环境下IP的识别
4G网卡的识别: 各个厂商对4G网卡命名都不相同,但有共同的特点是包含字符串 rmnet 三星:rmnet_data4 华为:rmnet0 vivo:rmnet_data2 oppo:rmnet_da ...
- WIFI环境下支付安全问题探析
1 引言 曾还记得,在2016年的"3·15晚会"上,央视曝光了利用"免费"WiFi进行钓鱼和诈骗的行为,告诫广大用户谨慎连接公共场所免费WiFi,防止个人信息 ...
- 并发环境下的缓存容器性能优化(上):不可变的哈希表
我们在项目中经常会遇到这样的场景:一些信息读取开销较大,但只需要生成一次便可反复使用,因此我们会将其永久地缓存起来.例如在ASP.NET MVC中,系统会根据Controller的名称来缓存对应的元数 ...
- STM32F407单片机移植MS5611气压计(基于IIC)---同时解决温度低于20度时计算得到的大气压错误的问题
最近一个工程项目需要使用MS5611气压计,就花时间研究了一下,发现网上很多都是基于STM32F103单片机的MS5611气压计源程序,当移植到STM32F407时发现采集的大气压力和温度值不对,同时 ...
- 内网环境下CentOs离线安装程序
目录 零.情景介绍 一.下载 RPM 包 1.安装包的选择 2.rpm包的命名规则 二.传输rpm包到CentOs主机上 三.安装rpm包的工具 1.安装 2.查询 3.卸载 四.安装rpm 五.相关 ...
- linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 6 文章- 2 评论- 2 < ...
- ubuntu 20.04 ROS 环境下 使用 velodyne
ubuntu 20.04 ROS 环境下 使用 velodyne 系统环境配置 硬件连接 网口配置 运行驱动程序 通过rviz可视化点云 系统环境配置 安装ROS依赖 sudo apt install ...
- linux ubuntu环境下 android jdk sdk eclipse adt 以及手机连接无法识别的解决方法
linux ubuntu环境下 android jdk sdk eclipse adt 以及手机连接无法识别到总结 1.下载jdk-6u26-linux-i586.bin并复制到在目标文件夹(例如/u ...
- 零基础 Ubuntu 20.04.01 下搭建51单片机开发环境[开源编译器SDCC]
原创首发于CSDN,转载请注明出处,谢谢! 文章目录 为何会在Linux下开发单片机 个人系统环境与所用开发板 安装开源编译器 sdcc STC MCU ISP 闪存工具 stcgal 的安装 单片机 ...
最新文章
- redis 缓存过期默认时间_缓存的必知必会:一文搞懂Redis持久化和过期机制
- 【linux】截断日志文件
- perf之sched
- 高效利用无标注数据:自监督学习简述
- java 中文转化为拼音
- linux 下wn725无线网卡驱动,TL-WN725N V3无线网卡驱动移植与wireless工具wpa_supplicant-2.6...
- Google的“那些事”
- kmalloc参数GFP_ATOMIC or GFP_KERNEL?
- java前端和后端的区别,看这一篇就够了!
- 快捷指令获取url内容_快捷指令,钢铁侠里的“贾维斯”
- 笔试12:Bootstrap知识
- oppo计算机锁屏快捷键,oppo一键锁屏方法【图文教程】
- VC获取系统临时文件夹temp
- CorelDRAW插件-CPG插件开发-环境搭建-VS2017-TLB文件-CDR插件
- 位运算符(,|,~,^,同或,>>,<<)
- ​每天十分钟| Get实用在线英语启蒙教育APP—叽里呱啦
- cocos如何在游戏中动态设置横竖屏
- 外国语言学c刊集刊联系方式,CSSCI(2017-2018)收录集刊目录 (共189 种).PDF
- 敢用这张图片做“壁纸”手机秒变砖!
- 手机显示无法接通服务器是怎么回事,手机无法接通是什么原因及如何解决【图文】...
热门文章
- 记一次升级了编译器后VSCode中产生的问题
- c# 定时windows服务发送邮件
- iOS开发,一个使用AVPlayer实现的播放在线音乐的Demo
- echarts:3、折线图
- can only accept this command while in the powered on state(iOS蓝牙 打开app后的第一次扫描要扫描两次)
- c语言题库及答案免费下载,C语言题库(含答案)
- 微软针对lapsus$事件的最新调查报告 中文版
- 注意力机制(attention)学习记录(二)
- MEM/MBA数学强化(04)方程 函数 不等式
- CodeForces 115C. Plumber 解题报告