[Linux外设驱动详解]RK3588 SOC CPU 温度监控机制

RK3588 SOC CPU 温度监控机制

1. 概述

RK3588 是瑞芯微推出的一款高性能 ARM SoC,集成了多个温度传感器用于监控芯片不同区域的温度。本文档介绍 RK3588 SOC 中 CPU 温度传感器的工作原理、内核驱动实现以及如何获取 CPU 温度数据。

2. 温度传感器类型与工作原理

2.1 TSADC 温度传感器

RK3588 使用 TSADC(Temperature Sensor ADC) 模块来实现温度监测。TSADC 是一个片上温度传感器,通过将温度转换为模拟电压信号,再经过 ADC(模数转换器)转换为数字值,最终通过查表或公式计算出实际温度。

2.2 传感器分布

RK3588 共有 7 个温度传感器通道,分布在芯片的不同区域:

通道 ID 传感器名称 描述
0 top 整体芯片顶部温度
1 big_core0 大核 CPU 0 温度
2 big_core1 大核 CPU 1 温度
3 little_core 小核 CPU 温度
4 center 中心区域温度
5 gpu GPU 温度
6 npu NPU 温度

2.3 工作原理

TSADC 的工作流程如下:

温度变化

温度传感器

模拟电压信号

ADC转换

数字码值

查表/公式转换

实际温度值

2.3.1 硬件结构

TSADC 模块的主要组成部分:

  • 温度传感器:将温度转换为电压信号
  • ADC 转换器:将模拟电压转换为数字值
  • 控制寄存器:配置采样周期、中断、阈值等
  • 数据寄存器:存储转换后的温度码值
2.3.2 寄存器定义

关键寄存器(基于驱动代码):

寄存器偏移 名称 功能
0x00 TSADCV2_USER_CON 用户控制寄存器
0x04 TSADCV2_AUTO_CON 自动控制寄存器
0x08 TSADCV2_INT_EN 中断使能寄存器
0x0c TSADCV2_INT_PD 中断pending寄存器
0x2c + chn*4 TSADCV3_DATA(chn) 通道数据寄存器
0x6c + chn*4 TSADCV3_COMP_INT(chn) 中断比较寄存器
0x10c + chn*4 TSADCV3_COMP_SHUT(chn) 关断比较寄存器
2.3.3 温度转换表

RK3588 使用查表法将 ADC 码值转换为温度。代码中定义的转换表如下:

// 文件: kernel/drivers/thermal/rockchip_thermal.c:769
static const struct tsadc_table rk3588_code_table[] = {
   
   
    {
   
   0,     -60000},    // 码值0对应-60°C
    {
   
   194,   -60000},    // 码值194对应-60°C
    {
   
   215,   -40000},    // 码值215对应-40°C
    {
   
   285,   25000},     // 码值285对应25°C
    {
   
   350,   85000},     // 码值350对应85°C
    {
   
   395,   125000},    // 码值395对应125°C
    {
   
   455,   180000},    // 码值455对应180°C
    {
   
   TSADCV4_DATA_MASK, 180000},  // 最大码值对应180°C
};

说明

  • 温度单位为毫摄氏度(millidegrees Celsius)
  • TSADCV4_DATA_MASK 为 0x1ff(9位ADC)
  • 对于两个码值之间的温度,使用线性插值计算

3. 内核驱动实现

3.1 驱动框架

RK3588 温度监控驱动基于 Linux Thermal 框架实现,主要包含以下几个部分:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JustaUncle

一杯咖啡,换我肝到天亮!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值