跳转至

Tsensor

概述

Tsensor 是模拟温度检测 IP,检测芯片的节温并以二进制形式输出温度信息。

检查温度范围:-40°C ~ +125°C的温度检测,10bit SARADC 量化温度,分辨率0.208°C/LSB。

支持 IP 校准后温度精度在 ±2°C 以内。

功能描述

  • 支持 Tsensor 三种测温模式:单次 16 点平均测温模式,周期 16 点平均测温模式,单点测温模式。

  • 支持 Tsensor 测温完成中断上报。

  • 支持 Tsensor 测温 overtemp 中断上报。

  • 支持高温低温门限的使用。

  • 支持软件分别可配高温门限和低温门限。

  • 支持周期采样温度上报。

  • 支持软件可配周期采样间隔。

  • 支持 Tsensor 测温门限中断上报。

工作方式

Tsensor 模块的工作模式分为以下 3 种:

  • 正常检测温度模式。

  • 高低温门限中断模式。

  • 过温保护中断模式。

说明

以上 3 种模式均为在检测温度值基础上进行,检测温度的模式有多种,此处检测温度的模式均为周期采样配合 16 次单点平均计算。

正常检测温度模式

正常检测温度模式配置步骤如下:

步骤 1 写 TSENSOR_STS[tsensor_clr]为 0x1,清除所有模式的状态信息。

步骤 2 写 TSENSOR_TEMP_INT_CLR[tsensor_int_clr]为 0x1,清除 Tsensor 中断信号。

步骤 3 写 TSENSOR_TEMP_INT_EN[tsensor_done_int_en]为 0x1,打开 Tsensor 的采集温度完成中断使能。

步骤 4 写 TSENSOR_CTRL[tsensor_mode]为 0x0,选择 16 次平均值的单次上报方式。

步骤 5 写 TSENSOR_CTRL[tsensor_enable]为 0x1,开启 Tsensor 的使能信号。

步骤 6 写 TSENSOR_AUTO_REFRESH_PERIOD[tsensor_auto_refresh_period],设置合适的周期采样的时间间隔。

步骤 7 写 TSENSOR_AUTO_REFRESH_CFG[tsensor_auto_refresh_enable]为 0x1,开启周期采样的使能信号。

步骤 8 读 TSENSOR_TEMP_INT_STS[tsensor_done_int_sts]为 0x1,等待 16 点平均计算温度模式下的中断信号的产生。

步骤 9 读 TSENSOR_STS[tsensor_data],获取 16 点平均单次上报模式下的温度值。

----结束

高低温门限中断模式

高低温门限中断模式配置步骤如下:

步骤 1 写 TSENSOR_STS[tsensor_clr]为 0x1,清除自动模式下产生的 rdy 信号。

步骤 2 写 TSENSOR_TEMP_INT_CLR[tsensor_int_clr]为 0x1,清除 Tsensor 中断信号。

步骤 3 写 TSENSOR_TEMP_INT_EN[tsensor_out_thresh_int_en]为 0x1,打开 Tsensor 的超门限范围中断使能。

步骤 4 写 TSENSOR_TEMP_HIGH_LIMIT[tsensor_temp_high_limit]、TSENSOR_TEMP_LOW_LIMIT[tsensor_temp_low_limit],设置合适的高低温门限值。

步骤 5 写 TSENSOR_CTRL[tsensor_mode]为 0x0,选择 16 次平均值的单次上报方式。

步骤 6 写 TSENSOR_CTRL[tsensor_enable]为 0x1,开启 Tsensor 的使能信号。

步骤 7 写 TSENSOR_AUTO_REFRESH_PERIOD[tsensor_auto_refresh_period],设置合适的周期采样的时间间隔。

步骤 8 写 TSENSOR_AUTO_REFRESH_CFG[tsensor_auto_refresh_enable]为 0x1,开启周期采样的使能信号。

步骤 9 读 TSENSOR_TEMP_INT_STS[tsensor_out_thresh_int_sts]是否为 1,如果为 1,则当前的温度值高于高温门限或低于低温门限。

----结束

过温保护中断模式

过温保护中断模式配置步骤如下:

步骤 1 写 TSENSOR_STS[tsensor_clr]为 0x1,清除自动模式下产生的 rdy 信号。

步骤 2 写 TSENSOR_TEMP_INT_CLR[tsensor_int_clr]为 0x1,清除 Tsensor 中断信号。

步骤 3 写 TSENSOR_TEMP_INT_EN[tsensor_overtemp_int_en]为 0x1,打开 Tsensor 的过温中断使能。

步骤 4 写 TSENSOR_OVER_TEMP[tsensor_overtemp_thresh],设置合适的过温门限值。

步骤 5 写 TSENSOR_OVER_TEMP[tsensor_overtemp_thresh_en]为 0x1,打开过温保护使能信号。

步骤 6 写 TSENSOR_CTRL[tsensor_mode]为 0x0,选择 16 次平均值的单次上报方式。

步骤 7 写 TSENSOR_CTRL[tsensor_enable]为 0x1,开启 Tsensor 的使能信号。

步骤 8 写 TSENSOR_AUTO_REFRESH_PERIOD[tsensor_auto_refresh_period],设置合适的周期采样的时间间隔。

步骤 9 写 TSENSOR_AUTO_REFRESH_CFG[tsensor_auto_refresh_enable]为 0x1,开启周期采样的使能信号。

TSENSOR_TEMP_INT_STS[tsensor_overtemp_int_sts]是否为 1,如果为 1,则当前的温度值超过了设置的过温门限值。

----结束

寄存器概览

Tsensor 寄存器概览如表 1-1 所示。

表6-12 Tsensor 寄存器概览(基址是 0x4000_0000)

偏移地址名称描述
0x0000 + 0x1000×CH_NUMTSENSOR_CTL_IDTSENSOR CTL ID 寄存器。
0x0010 + 0x1000×CH_NUMTSENSOR_REG0通用寄存器。
0x0014 + 0x1000×CH_NUMTSENSOR_REG1通用寄存器。
0x0018 + 0x1000×CH_NUMTSENSOR_REG2通用寄存器。
0x001C + 0x1000×CH_NUMTSENSOR_REG3通用寄存器。
0x0300 + 0x1000×CH_NUMTSENSOR_STARTTSENSOR 启动寄存器。
0x0304 + 0x1000×CH_NUMTSENSOR_CTRLTSENSOR 控制寄存器。
0x0308 + 0x1000×CH_NUMTSENSOR_STSTSENSOR 状态寄存器。
0x0310 + 0x1000×CH_NUMTSENSOR_CTRL1TSENSOR 控制寄存器1。
0x0314 + 0x1000×CH_NUMTSENSOR_TEMP_HIGH_LIMITTSENSOR 温度门限上限。
0x0318 + 0x1000×CH_NUMTSENSOR_TEMP_LOW_LIMITTSENSOR 温度门限下限。
0x031C + 0x1000×CH_NUMTSENSOR_OVER_TEMPTSENSOR 过温控制寄存器。
0x0320 + 0x1000×CH_NUMTSENSOR_TEMP_INT_ENTSENSOR 中断控制寄存器。
0x0324 + 0x1000×CH_NUMTSENSOR_TEMP_INT_CLRTSENSOR 中断控制寄存器。
0x0328 + 0x1000×CH_NUMTSENSOR_TEMP_INT_STSTSENSOR 中断控制寄存器。
0x0330 + 0x1000×CH_NUMTSENSOR_AUTO_REFRESH_PERIODTSENSOR 自动检测控制寄存器。
0x0334 + 0x1000×CH_NUMTSENSOR_AUTO_REFRESH_CFGTSENSOR 自动检测控制寄存器。

Tsensor 寄存器偏移地址中变量的取值范围和含义如表 6-15 所示。

表6-13 Tsensor 寄存器偏移地址变量表

变量名称取值范围描述
CH_NUM0Tsensor 组数

寄存器描述

TSENSOR_CTL_ID

TSENSOR_CTL_ID 为 TSENSOR CTL ID 寄存器

Offset Address: 0x0000 + 0x1000 × CH_NUM Total Reset Value: 0x0106

BitsAccessNameDescriptionReset
[15:0]ROtsensor_ctl_idTSENSOR CTL ID 寄存器。0x0106

TSENSOR_REG0

TSENSOR_REG0 为通用寄存器。

Offset Address: 0x0010 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:0]RWtsensor_reg0Tsensor 通用寄存器 0。0x0000

TSENSOR_REG1

TSENSOR_REG1 为通用寄存器。

Offset Address: 0x0014 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:0]RWtsensor_reg1Tsensor 通用寄存器 1。0x0000

TSENSOR_REG2

TSENSOR_REG2 为通用寄存器。

Offset Address: 0x0018 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:0]RWtsensor_reg2Tsensor 通用寄存器 2。0x0000

TSENSOR_REG3

TSENSOR_REG3 为通用寄存器。

Offset Address: 0x001C + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:0]RWtsensor_reg3Tsensor 通用寄存器 3。0x0000

TSENSOR_START

TSENSOR_START 为 TSENSOR 启动寄存器。

Offset Address: 0x0300 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:1]-reserved保留。0x0000
[0]W1_PULSEtsensor_start自动模式下,写1刷新一次温度码,回读tsensor_data_auto获取当前温度值,当tsensor_rdy_auto为1时,表明温度值有效。写0无效。0x0

TSENSOR_CTRL

TSENSOR_CTRL 为 TSENSOR 控制寄存器。

Offset Address: 0x0304 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:3]-reserved保留。0x0000
[2:1]RWtsensor_mode模式选择2'b00: 16 点平均单次上报模式;2'b01: 16 点平均循环上报模式;2'b10、2'b11: 单点循环上报模式(该模式不比较阈值,仅上报温度码)。0x0
[0]RWtsensor_enableTSENSOR_CTRL 开关0: 关闭 TENSOR_CTRL:
1: 打开 TENSOR_CTRL。
0x0

TSENSOR_STS

TSENSOR_STS 为 TSENSOR 状态寄存器。

Offset Address: 0x0308 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:12]-reserved保留。0x0
[11:2]ROtsensor_data所有模式下获取到的温度值。
10bit 温度区间码值输出,线性分布;-40C~dec'114125C~dec'896即是 tsensor 直接输出码值对温度°C单位换算公式 T_°C=[BIN2DEC(temp_out <9:0>)-114]/(896-114)*[125-(-40)]+(-40)
0x000
[1]ROtsensor_rdy所有模式下。0:检测未启动或手动检测中:
1:tsensor_data 值为有效的温度值。
0x0
[0]W1_PULSEtsensor_clr清除所有模式的状态。0:无效:
1:清除。
0x0

TSENSOR_CTRL1

TSENSOR_CTRL1 为 TSENSOR 控制寄存器 1。

Offset Address: 0x0310 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:5]-reserved保留。0x000
[4]RWtemp_scan_dftDFT使能0:功能输出:
1:DFT输出。
0x0
[3]RWtemp_set0:功能模式下 temp_out 正常输出(默认):
1:功能模式下 temp_out 可以通过数模接口输入来配置输出值。
0x0
[2:1]RWtemp_ct_sel对于输入 1M 精准时钟情况下:
00:0.512ms
01:0.256ms
10:1.024ms
11:2.048ms。
0x0
[0]RWtemp_calib0:选择开启校准算法(默认);1.:不开启校准算法。0x0

TSENSOR_TEMP_HIGH_LIMIT

TSENSOR_TEMP_HIGH_LIMIT 为 TSENSOR 温度门限上限。

Offset Address: 0x0314 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:10]-reserved保留。0x00
[9:0]RWtsensor_temp_high_limit过高温度阈值门限。0x000

TSENSOR_TEMP_LOW_LIMIT

TSENSOR_TEMP_LOW_LIMIT 为 TSENSOR 温度门限下限。

Offset Address: 0x0318 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:10]-reserved保留。0x00
[9:0]RWtsensor_temp_low_limit过低温度阈值门限。0x000

TSENSOR_OVER_TEMP

TSENSOR_OVER_TEMP 为 TSENSOR 过温控制寄存器

Offset Address: 0x031C + 0x1000×CH_NUM Total Reset Value: 0x03FF

BitsAccessNameDescriptionReset
[15:11]-reserved保留。0x00
[10]RWtsensor_overtemp_thresh_en16点平均单次上报模式或16点平均循环上报模式下过温PA保护使能。0: PA保护使能关闭:
1: PA保护使能打开。
0x0
[9:0]RWtsensor_overtemp_thresh过温保护阈值门限。0x3FF

TSENSOR_TEMP_INT_EN

TSENSOR_TEMP_INT_EN 为 TSENSOR 中断控制寄存器

Offset Address: 0x0320 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:3]-reserved保留。0x0000
[2]RWtsensor_overemp_int_enTSENSOR 过温保护中断使能。0x0
[1]RWtsensor_out_thresh_int_enTSENSOR 温度超门限范围中断使能。0:禁止:
1:使能。
0x0
[0]RWtsensor_done_int_enTSENSOR 温度采集完毕中断使能。0:禁止:
1:使能。
0x0

TSENSOR_TEMP_INT_CLR

TSENSOR_TEMP_INT_CLR 为 TSENSOR 中断控制寄存器。

Offset Address: 0x0324 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:1]-reserved保留。0x0000
[0]W1_PULSEtsensor_int_clr0:无效:
1:清除中断。
0x0

TSENSOR_TEMP_INT_STS

TSENSOR_TEMP_INT_STS 为 TSENSOR 中断控制寄存器。

Offset Address: 0x0328 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:3]-reserved保留。0x0000
[2]ROtsensor_overtemp_int_stsTSENSOR 过温保护中断状态。0x0
[1]ROtsensor_out_thresh_int_stsTSENSOR 温度超门限范围中断状态。0x0
[0]ROtsensor_done_int_stsTSENSOR 温度采集完毕中断状态。0x0

TSENSOR_AUTO_REFRESH_PERIOD

TSENSOR_AUTO_REFRESH_PERIOD 为 TSENSOR 自动检测控制寄存器。

Offset Address: 0x0330 + 0x1000×CH_NUM Total Reset Value: 0xFFFF

BitsAccessNameDescriptionReset
[15:0]RWtsensor_auto_refresh_periodTSENSOR 自动检测周期,32k 时钟周期数。0xFFFF

TSENSOR_AUTO_REFRESH_CFG

TSENSOR_AUTO_REFRESH_CFG 为 TSENSOR 自动检测控制寄存器。

Offset Address: 0x0334 + 0x1000×CH_NUM Total Reset Value: 0x0000

BitsAccessNameDescriptionReset
[15:1]-reserved保留。0x0000
[0]RWtsensor_auto_refresh_enable16 点平均单次上报模式下周期检测使能。0:定时周期检测关闭:
1:定时周期检测打开。
0x0