MSM8225 thermal设计
点击打开链接
1、概述
1.1、Thermal综述
丰富的多媒体功能,例如MiFi、多核GHz的处理器、图形处理器、高清视频等,增加了散热;
启用数据传输速率更高的UL,往往会造成较高的发射功率,导致更多的散热;
印刷电路板上面的嵌入式设备暴露在较高的环境温度和受限制的冷却设施,形成了一个更严重的热环境。
热设计(thermal design)的目标是为了提高产品的可靠性。良好的硬件热设计和基于软件的thermal管理方案可以使手机温度保持在可被用户接受的水平。
1.2、Thermal设计的物理设计和布局
为了限制thermal对设备的不良影响,采用下面的物理设计和布局技术很有必要:
确保在确保在MSM/MDM附近以及电路板的对面没有其他大型电源散热组件。
1.3、Thermal设计的目标
保护元件免于超过热设计极限,如果超出限制,设备性能将会降低,甚至会损坏器件;
1.4、Thermal设计的先决条件
为了妥善管理设备的thermal情景,必须从不同的热活性点测量温度。它是通过已经存在于该芯片组传感器和将热敏电阻放置在热活性点来实现。
首选的传感器位置如下所列。每个传感器可以被高通芯片内的ADC(HKADC)读取。
1、靠近功率放大器的热敏电阻器。功率放大器是导致设备温度上升的主要器件。
2、MSMs/MDMs中的热敏电阻或者内部传感器。较大处理器(AP 或者modem处理器)的使用趋向于增加此类组件产生的热量。
3、独立的第三方组件。如果使用外部的发热元件,比如使用第三方AP的设计,应该放置热敏电阻。
4、TCXO热敏电阻。在极端热环境下,TCXO往往最容易受到加热,这可能会导致丢失呼叫和较差的性能。感知这种情况,将有助于调用thermal算法。
2、Thermal管理算法
关键因素 |
热影响 |
描述 |
开发阶段 |
责任人 |
|
研发 |
QCT |
||||
机械散热设计 |
~70% |
散热的机械设计是必需的。 |
概念/模拟阶段 |
Yes |
No |
增加散热材料 |
~20% |
添加散热材料 |
模拟/验证阶段 |
Yes |
No |
软件管理 |
~10% |
需要保持热限制 |
验证阶段 |
Yes |
No |
表格1 Thermal管理的关键因素
Thermal管理算法包括三种状态:
a) 正常状态:被动的温度监控;
b) 缓解状态:降低性能(应用处理器将运行在较低的时钟速率);
c) 应急状态:强制关闭手机,以防止损坏。
该算法根据设备的温度判断设备属于何种状态。Thermal管理算法的工作方式如下:
a) 如果测量温度<阈值温度,在正常状态下运行;
b) 如果测得的温度>阈值温度,进入缓解状态;
c) 如果温度恢复到滞后阈值(threshold-hysteresis)以下,恢复到正常状态;
d) 如果温度>紧急阈值,关闭设备。
设计thermal管理算法需要符合以下条件:
a) 采用温度传感器获取thermal温度数据;
b) 在thermald.conf文件中设置阈值值。
阈值数据应该由手机的温度曲线决定,不同的阈值,系统的动作如下:
正常 |
较高 |
严重 |
危急 |
|
CPU频率 |
整个频率范围 |
性能最高的频率除外 |
中高性能的频率除外 |
最高实用频率上限 |
显示强度 |
默认强度 |
上限为90% |
上限为75% |
上限为50% |
电池充电 |
完整充电 |
涓流充电 |
不充电 |
不充电 |
表格 2系统的动作
3、电路设计
MSM8x25采用如图1所示硬件设计。MSM8x25添加了一个板上热敏电阻,通过ADC驱动从该热敏电阻读取电路板温度数据,然后传递给thermal算法(thermal algorithm)。
图表 1 MSM_THERM schematic
图表 2 I380W MSM_THERM schematic
4、Thermal软件设计
图表 3 LA thermal software architecture
Thermal daemon是一个运行在Linux Android用户层的超级用户程序,是thermal软件的控制核心。传感器输入(Sensor input)用来作为读取的温度,数据来自PMIC_THERM或者MSM_THERM,这些数据从DALRPC或者从ONCRPC接口读取,ONCRPC接口与ADC驱动通信。Thermal管理设备(thermal management devices)是监听thermal daemon的软件组件。当系统过热时,thermal daemon发送event到thermal管理设备以设置设备性能到一个预先设定的水平。
4.1 ThermalD
Thermal Daemon (ThermalD)主要用来完成两项功能:监测温度和管理控制设备。
该daemon监测thermal/temperature的传感器数据,并根据thermald.conf配置文件(默认是 /etc/thermald.conf)执行动作。在初始化阶段,ThermalD读取一个包含所有传感器和阈值数据的配置文件。如果超过温度阈值,ThermalD发送event到thermal管理设备。总体而言,设备管理接口划分为几个管理等级。典型地,将设备设置为4级,比如Level 0是正常操作;Level 1是管理的第一级。
(1)ThermalD生成
ThermalD 对应的可执行文件是thermald,由vendor/qcom/proprietary/thermal/下的代码编译生成,存放在设备路径system/bin/thermald。
(2)ThermalD执行过程
图表 4定义ThermalD service
图表 5启动ThermalD程序
图表 6 ThermalD处理流程
4.2 Thermal sensors
MSM8x25提供两种读取温度数据的方法供选择:HKADC从PMIC片上热敏电阻读取和通过ADC读取外部热敏电阻来检测MSM的运行温度。HKADC是PM8029芯片内部的一个硬件模块,提供读到的模拟数据。
软件设计上,MSM8x25相应有两个thermal缓解解决方案,这两种解决方案是互斥的:
a) PMIC热敏电阻:使用DALRPC。
b) MSM热敏电阻:外部热敏电阻,使用ONCRPC。
可以通过检查adc_null来查看ONCRPC是否可用,如果ONCRPC可用,则检查MSM热敏电阻是否工作,并最终从ONCRPC读取thermal温度;如果ONCRPC不可用,则从PMIC获取thermal温度数据。
4.2.1 HKADC
图表 7 MSM8x25 PMIC_THERM schematic
4.2.2 MSM_THERM
图表 8 MSM_THERM schematic
4.3 TMD
Thermal管理设备(Thermal Management Devices,TMD)是软件实体,用来降低系统硬件模块的整体功耗,从而降低热负荷。
4.4 Thermal配置文件
4.4.1 Thermal域定义
表格 3 Thermal域
Field name |
Values |
Units |
Notes |
temp sensor name |
See Table 4 |
||
sampling |
1000 to 65535 |
ms |
sampling rate in ms |
thresholds |
-273 to 273 |
°C |
Threshold to activate |
thresholds_clr |
-273 to 273 |
°C |
Threshold to clear |
actions |
See Table 5 |
Action to act upon at thresholds; multiple entries allowed are separated by + with no spaces; this should be same for all threshold levels |
|
action_info |
See Table 6 |
Information used by action; multiple entries allowed are separated by + with no spaces |
|
Sampling是ThermalD与配置阈值比对温度的速度。Thresholds、thresholds_clr、actions和actions_info构成阈值组合。在一个区可能有多个阈值组合。每个阈值组合分别定义thresholds、thresholds_clr、actions和actions_info。
表格 4 Sensor names
Name |
Notes |
pmic_therm |
Remote HKADC driver using DALRPC |
msm_therm |
Remote ADC driver using remote ONCRPC |
表格 5 Sensor actions and action information
Item |
Action |
Action Info |
Notes |
none |
Do nothing |
Set to 0; not used but needed for parser to work properly |
Do nothing. This mitigation step is disabled. If a threshold is crossed, no action is taken. |
report |
Report threshold crossing to UI |
Set to 0; not used but needed for parser to work properly |
The threshold crossing information is sent across an abstract local socket THERMALD_UI in a new line-separated string format. Parameters are sent in the following order: § sensorname – Name of sensor reporting § temperature – Current temperature § current_threshold_level – Current threshold level triggered or cleared § is_trigger – TRUE on level trigger, FALSE on level clearing |
cpu |
CPU frequency scaling |
Max CPU frequency in KHz |
Sets the max allowable frequency for CPUs, 0 to 1200000 kHz |
lcd |
LCD brightness throttling |
0-255 value for max LCD brightness |
Sets the backlight intensity; will not adjust the max value over the currently configured brightness set by the user. 0 to 255 § 0 – Backlight off § 255 – Maximum brightness |
modem |
Request throttling of modem functionality |
0-3 throttling level for modem mitigation |
MSM8x25不支持。 |
fusion |
Request throttling of fusion modem functionality |
0-3 throttling level for fusion modem mitigation |
MSM8x25不支持。 |
battery |
Battery charging current throttling |
0-3 throttling level for battery charging current |
MSM8x25不支持。仅MSM8960支持 |
gpu |
GPU frequency scaling |
Max GPU frequency in Hz |
|
wlan |
WLAN throttling |
0-3 throttling level for WLAN mitigation |
MSM8x25不支持。仅MSM8960支持 |
shutdown |
Shutdown target |
Shutdown delay in ms |
Sends a shutdown request to the kernel with a delay to power down the phone |
4.4.2 配置文件的要求
配置文件必须有一个pmic_therm或msm_therm thermal域定义以用作第一个入口。
注意,在thermald.conf文件的结尾应该有一个返回字符。
Actions参数标明了每个阈值对应的动作。在一个阈值组合里面的actions和actions_info必须用“+”隔开,并且不允许出现空格。
4.4.3 配置文件举例
action_info 756000+200 540000+100
4.4.4 编辑配置文件
当通过USB将手机连接到电脑后,执行下面的命令可以编辑配置文件:
4.4.5 编译配置文件
Thermal配置文件的存放路径是/system/etc/thermald.conf。在源代码中的存放路径是vendor/qcom/proprietary/thermal/,使用ls -l命令查看,显示信息如下:
可见,在源代码中是没有命名为/thermald.conf的文件的。
之所以能够在/system/etc/下看到thermald.conf,是因为在文件device/qcom/msm7627a/init.qcom.thermald_conf.sh中,做了链接:
所以,使用adb命令可以查询到如下信息:
4.4.6 ThermalD logging
在配置文件第一行加入“debug“可以使ThermalD工作在Debug mode,否则ThermalD的log会非常少。
下面的命令将会使ThermalD log信息显示在命令行窗口。
adb logcat -v time -s ThermalDaemon
4.5 Modem thermal mitigation
MSM8x25在modem没有热缓解(thermal mitigation)设计。
5、References
1、80-NA385-1_B_MSM8x25_Android_Pwr_Mgmt_Overview.pdf
2、80-N8633-5_A_MSM8x25_Thermal_Mgmt_Algorithm
文中图片、表格数据可联系本人索取。
MSM8225 thermal设计相关推荐
- 最小长度电路板排列问题_射频电路板设计,这篇文章五大总结不可忽视!
射频电路板设计由于在理论上还有很多不确定性,因此常被形容为一种"黑色艺术",但这个观点只有部分正确,RF电路板设计也有许多可以遵循的准则和不应该被忽视的法则. 不过,在实际设计时, ...
- MSM8994 thermal管理
点击打开链接 1.MSM8994 Power Thermal Management Overview文档摘要 本文档为80-NM328-12_A_MSM8994_LA_Power_Thermal_Mg ...
- 什么是硬件设计?——成功的硬件设计需要什么?
硬件设计就是根据产品经理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前业界成熟的 芯片方案或者 ...
- mentor公司的PCB设计软件:PADs, Expedition,BoardStation
mentor公司算是生产PCB设计软件在 种类上最多的一家公司了吧,而且名目多,叫法也很复杂.以前用过protel.cadence.pads,现在想研究一下其他的pcb设计的东东,发现 mentor产 ...
- 【转载】印制板设计的流程及注意事项
等待摆渡人于2010-12-21 整理!希望能帮助大家 一.概 述 本文档的目的在于说明使用PADS的印制板设计软件PowerPCB进行印制板设计的流程和一些注意事项,为一个工作组的设计人员提供设计规 ...
- altium pcb 信号高亮_作为PCB工程师,你需要了解这几个设计指南
在开始新设计时,因为将大部分时间都花在了电路设计和元件的选择上,在PCB布局布线阶段往往会因为经验不足,考虑不够周全. 如果没有为PCB布局布线阶段的设计提供充足的时间和精力,可能会导致设计从数字领域 ...
- 这是我见过最接地气的PCB设计指南了!
大家好,我是张巧龙,我们开始新设计时,因为将大部分时间都花在了电路设计和元件的选择上,在 PCB 布局布线阶段往往会因为经验不足,考虑不够周全. 如果没有为 PCB 布局布线阶段的设计提供充足的时间和 ...
- xilinx platform cable usb驱动_小白入门多路高速(8 x 8bits x 100Msps)AD驱动设计专栏启动预告...
如果部分图片消失,请移步小白仓库微信公众号查阅. 原文链接: 小白入门多路高速(8 x 8bits x 100Msps)AD驱动设计专栏启动预告blog.csdn.net 小白随笔,大佬左上角走起, ...
- 射频电路板设计常见的问题分析和解决办法
射频电路板设计由于在理论上还有很多不确定性,因此常被形容为一种"黑色艺术",但这个观点只有部分正确,RF电路板设计也有许多可以遵循的准则和不应该被忽视的法则. 不过,在实际 ...
最新文章
- mysql 导入8msql文件_MySQL导入大容量SQL文件数据问题
- Nandflash K9F1208U0B学习
- idea terminal中文乱码_Terminal优雅的办公带来超高的效率
- php破坏代码,php不破坏单词截取子字符串
- Android驱动开发第三章随想
- springboot拦截异常信息发送邮件提醒
- 随机显示个性签名代码
- 计算机应用基础word的课件,计算机应用基础之word2010课件
- 吃惊!难道Java也受美国出口管制?
- .Net -- EF Core详解
- DP(Nietzsche)的hu测 T1(状压dp)
- 邓俊辉 数据结构 图
- 百度网盘下载速度慢的解决方式
- PlatformIO使用Arduino[Ticker]库(ESP8266)
- 什么是lora无线通讯
- css之-单行文本溢出显示省略号,多行文本溢出显示省略号
- c语言的源程序的后缀名是,C语言源程序文件的后缀名是()。
- Charles联动Burp-新世界的大门
- Unity中用Shader实现镜子效果
- IIS 超简单部署免费https Let's Encrypt
热门文章
- synchronized锁升级
- 028_jQuery数据
- 010_html事件属性
- python百鸡百钱递归_百钱百鸡,一百块钱买一百只鸡的递归算法 javascript实现
- Google Guava官方教程(中文版)
- oracle 数据库日常巡检:数据库基本状况、oracle资源使用、数据备份结果、性能、cpu等、数据安全、归档日志、会话、SGA/PGA使用情况
- 第三章 PLSQL Developer 安装前oracleclient客户端的配置,在用plsql 连接oracle服务器
- 通过http协议访问FTP服务器的搭建,ftp+nginx 图片服务器搭建之后使用http访问进行配置文件的修改
- java url特殊字符处理_简单实例处理url特殊符号处理(2种方法)
- eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池