0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TDA4动态热检测与控制方案

星星科技指导员 来源:TI 作者:Neo Wang 2023-03-16 10:22 次阅读

1. 背景介绍:

TI上一代Jacinto 6汽车处理器中,例如DRA7x/TDA2x,为了实现性能与功能安全的综合考虑,提供了名为DVFS(Dynamic Voltage Frequency Scaling)的机制,使能系统能够实时获取芯片thermal状态,并动态反馈调节系统电压与运行频率,使得系统运行在安全温度范围内,实现性能最大化。

在TI Jacinto︎ 7 处理器中,例如DRA8x/TDA4x,目前外部PMIC输出电压NVM固定,故推荐使用DFS来实现在固定电压下的频率调节,从而实现对整芯片热状态的检测以及控制。

2. 测试条件:

TDA4VM EVM开发板

TDA4VM Linux SDK

TDA4VM RTOS SDK

3. TDA4动态热检测与控制流程:

在TDA4 SOC系统中,可参照图1所示流程进行SOC热状态检测以及控制,用户可在应用层对VTM(Voltage and Thermal Manager)的thermal值进行实时读取,并设置高温超出阈值/常温回落阈值,通过VTM的实时检测以及对比,在超出阈值时产生温度事件。或者在内核中通过增加VTM驱动,并直接在上层应用中读取thermal温度值并设置阈值,然后通过上层应用逻辑来实现对thermal的监控,在超出阈值时产生温度报警事件。

poYBAGQSfWuAO8uPAABd31l2EdA499.png

图 1 TDA4动态热检测与控制流程图

在得到温度报警事件后,通过对TDA4内部各核心运行状态以及运行频率的读取,能够在系统正常运行范围内,动态调整各核心的运行频率,从而降低系统功耗,实现对系统热状态的控制。

4. VTM动态热检测

首先需要动态读取SOC thermal温度值,VTM可以用来读取温度值以及设置温度报警阈值等,其详细介绍参照TDA4 TRM手册。其核心寄存器配置如表1所示:

表 1 VTM寄存器设置

Register in VTM module Offset Comments
WKUP_VTM_TMPSENS_STAT_j [9-0] DATA_OUT 实时温度值(ADC code数值)
WKUP_VTM_MISC_CTRL2 [9-0] MAXT_OUTRG_ALERT_THR 高温报警阈值,超出产生thermal alert
WKUP_VTM_MISC_CTRL2 [25-16] MAXT_OUTRG_ALERT_THR 常温回落阈值,产生alert clean
WKUP_VTM_TMPSENS_CTRL_j [11] MAXT_OUTRG_EN Enable/Disable alert 事件
CTRLMMR_WKUP_RESET_SRC_STAT [24] THERMAL_RST 产生/清除 alert事件的标志位

读出来的DATA_OUT值为内部ADC数值,需要进行转换才能成为摄制温度值,其转换方式如图2所示:

pYYBAGQSfWyAUDb_AACLelJ1WMg277.png

图 2 VTM ADC code与温度值计算关系表

此处提供patch,能够实现在Linux端对内部核心的thermal温度值读取。步骤如下:

a. 下载Linux SDK8.0并参照guide制作SD启动卡,并下载对应thermal patch。

poYBAGQSfW2AG7mxAAAJIChfi28906.png

b. 参照下述流程安装到原生SDK中。

cd $PSDK_PATH/board-support/linux-*

git am 0001-display-temperature-as-mili-celsius.patch

cd ../..

make linux

c. 参照下述流程将编译后的文件更新至SD卡系统中。

Edit the file $PSDK_PATH/Rules.make

Set DESTDIR=/media/$USER/rootfs

cd $PSDK_PATH

sudo make linux_install

d. 参照下述流程进行验证

cat /sys/class/thermal/thermal_zone*/temp

其中patch一共添加了五个域中kernel的温度值,其打印如图3所示:

pYYBAGQSfW2AQINPAADCTa8phak246.png

图 3 thermal温度值读取

其中对应了五个Linux中的设备节点,所输出的值单位为毫摄氏度,例如图3中所示结果以及硬件对应关系为:

thermal_zone0 -> WKUP domain DMSC core -> 67.640℃

thermal_zone1 -> MAIN domain MPU A72 core -> 68.074℃

thermal_zone2 -> MAIN domain C7x core -> 68.507℃

thermal_zone3 -> MAIN domain GPU core -> 69.371℃

thermal_zone4 -> MAIN domain R5F core -> 68.074℃

5. TDA4核心动态调频控制

获取到TDA4内部各个核心实时的thermal值后,可以通过上层逻辑对读取到的温度值与预设的报警阈值进行逻辑比较,然后采取对应的措施进行核心频率调整。

在TDA4默认文件系统中,提供k3conf通过指定的device ID以及clock ID来实现对各个核心频率的读取以及控制。

5.1 Device ID的获取:

可通过TISCI手册J721E部分对各个模块的device ID进行查询

图4中列出了常用几个核心的device ID。

poYBAGQSfW6ARJvdAAEEBE_a74k044.png

图 4 processor device ID

5.2 Clock ID的获取:

为了标识在一个核心中多个不同模块的频率设置,引入了clock ID对其进行区分,可在TISCI J721E部分对clock ID进行查询。

5.3 对应核心运行频率检测:

获取到对应核心device ID后,可通过下述指令打印出当前对应核心的运行频率。

k3conf dump clock DEVICE_ID

以A72_CORE0为例,可以得到其当前运行频率为2GHz如图5所示。

pYYBAGQSfW-AK70rAACPl0pES6o690.png

图 5 A72 CORE0 运行频率

5.4 设置对应核心运行频率:

若按照第三章中的流程计算,当前运行频率需要进行调整,可使用下述指令对当前指定device ID以及clock ID 的模块进行频率控制。在对其核心频率进行修改之前,需要首先对其对应的锁相环进行修改,以A72_CORE0核心为例:

devmem2 0x00688040 w 0x80000001

k3conf set clock 202 2 1000000000

其修改过程如图6所示:

pYYBAGQSfW-AWApBAAEjB_PdXD4710.png

图 6 A72 CORE0频率修改流程

其中每个TDA4内部核心所支持的最大频率受硬件限制,以TDA4VM为例,如图7所示为不同PN中各核心所支持的最大频率。

poYBAGQSfXCAcx6DAABGLyHSmyQ510.png

图 7 TDA4VM中各核心所支持最大频率

同样的,在最大频率之下,各核心的频率设置并非随机设置,其必须满足内部分频器等硬件时钟要求。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18293

    浏览量

    222194
  • 芯片
    +关注

    关注

    447

    文章

    47816

    浏览量

    409190
  • adc
    adc
    +关注

    关注

    95

    文章

    5653

    浏览量

    539496
收藏 人收藏

    评论

    相关推荐

    TDA7854检测

    本帖最后由 eehome 于 2013-1-5 10:04 编辑 CD没有声音了 估计是功放烧了 TDA7854怎么检测好坏呀
    发表于 11-25 19:55

    释红外检测动态人体的一种办法尝试

    释红外传感模块进行方波脉冲供电,这样红外模块会打开一段时间,再关闭一段时间。打开后会不会重新检测人体发出的红外线?这样会不会能让红外传感模块检测动态人体?求知情人或实践过者给个答
    发表于 01-07 17:29

    关于即净水器水位检测方案

    研发一款即式净水器,目前在出水口采用两根探针的方式用来检测是否有水,供MCU判断是否开启加热。目前这个方案会受水质影响,纯净水和自来水时MCU检测到的AD值会不一样,导致误判。请教哪
    发表于 04-19 16:05

    最新汽车电子胎压检测方案

    轮胎的正常工作是安全行车的重要保障,相当大一部分的汽车安全事故是由轮胎故障造成的。本方案采用英飞凌胎压检测方案中的关键器件(SP37,TDA5235/
    发表于 05-06 07:34

    恩智浦S32V/英伟达DRIVE PX2/TI的TDA4/寒武纪1M/高通SA8155对比分析哪个好?

    恩智浦S32V/英伟达DRIVE PX2/TI的TDA4/寒武纪1M/高通SA8155对比分析哪个好?
    发表于 09-30 07:03

    基于双TDA4VM行泊一体方案

    ,我们也看到了智能驾驶技术的提升和巨大的想象空间。 基于双TDA4VM行泊一体方案已经量产。同时,伴随着算法软件成熟度的提高、更高性能芯片的出现,以及系统成本优势,使得单芯片TDA4行泊一体化的
    发表于 11-03 07:54

    TDA4对深度学习的重要性

    。RTOS SDK 中集成了众多的Demo展示TIDL在TDA4处理器上对实时的语义分割和 SSD 目标检测的能力。如下图2:AVP的demo展示了使用TIDL对泊车点、车辆的检测。图2. TIDL
    发表于 11-03 06:53

    超异构芯片TDA4内核解析

    1、超异构芯片TDA4内核解析超异构芯片最近是比较火的一个名词,其集中特性是将各类不同的芯片内核进行融合,这种集成式芯片设计可以充分整合芯片资源,进一步提升数据计算效率。并且由于芯片在设计之初就打
    发表于 12-09 16:29

    TDA4动态检测控制设计方案

    在TI上一代Jacinto 6汽车处理器中,例如DRA7x/TDA2x,为了实现性能与功能安全的综合考虑,提供了名为DVFS(Dynamic Voltage Frequency Scaling
    的头像 发表于 02-15 13:36 3259次阅读
    <b class='flag-5'>TDA4</b><b class='flag-5'>动态</b>热<b class='flag-5'>检测</b>与<b class='flag-5'>控制</b>设计<b class='flag-5'>方案</b>

    TDA4行泊一体,打开智能驾驶的新篇章

    TDA4行泊一体,打开智能驾驶的新篇章
    发表于 10-28 11:59 13次下载
    单<b class='flag-5'>TDA4</b>行泊一体,打开智能驾驶的新篇章

    当深度学习遇上TDA4

    当深度学习遇上TDA4
    发表于 10-28 11:59 2次下载
    当深度学习遇上<b class='flag-5'>TDA4</b>

    TDA4动态检测控制方案

    TDA4动态检测控制方案
    发表于 10-28 11:59 1次下载
    <b class='flag-5'>TDA4</b><b class='flag-5'>动态</b>热<b class='flag-5'>检测</b>与<b class='flag-5'>控制</b><b class='flag-5'>方案</b>

    德州仪器TDA4背后的OpenVX介绍

    近年来行泊一体大行其道,德州仪器的TDA4占了行泊一体大约70%的市场。其背后关键的就是OpenVX。
    的头像 发表于 02-16 09:18 6239次阅读

    经纬恒润:基于EyeQ6方案项目预计明年交付

    近日,经纬恒润在接受机构调研时表示,在智能驾驶合作芯片方面,公司目前有三条路线。(1)基于mobileyeeyeq芯片的不同级别辅助运行方案;(2)ti的tda4,中低运算能力的芯片方案;(3)高性能国产芯片
    的头像 发表于 09-12 14:45 518次阅读

    TDA4 SPL SBL启动流程简析

    TDA4是TI推出的一款高性能、超异构的多核SoC,拥有ARM Cortex-R5F、ARM Cortex-A72、C66以及C71内核,可以部署AUTOSAR CP系统、HLOS(Linux
    的头像 发表于 10-24 16:37 994次阅读
    <b class='flag-5'>TDA4</b> SPL SBL启动流程简析