支持的芯片
Ameba SoC |
RTL8721Dx |
RTL8720E |
RTL8726E |
RTL8713E |
RTL8730E |
RTL8721F |
---|---|---|---|---|---|---|
支持状态 |
N |
Y |
Y |
Y |
Y |
Y |
概述
芯片内部集成了一个温度传感器(thermal sensor),可用于检测和监控芯片内部的实时温度。其主要特性包括:
测量范围:-40°C ~ 125°C
精确度:±1°C(典型值),±3°C(最差值)
提供低温警告、高温警告和超温保护功能
提供温度传感器使能和超温保护使能的写入访问控制
可配置的启动间隔时间
记录历史高低温
温度保护
温度保护机制是温度传感器的重要特性,具体实现如下:
当温度超过限定的高温阈值时,向 CPU 发送中断,CPU 可以降低频率。
当温度低于限定的低温阈值时,向 CPU 发送中断,CPU 可以提高频率。
当温度超过限定的超温保护阈值时,硬件将自动关闭电源以进行超温保护。
备注
SDK 默认不会根据温度传感器检测到的温度自动调整 CPU 的频率。如果用户需要使用此功能,请调用相关 API,并根据实际应用和散热条件配置温度阈值。
超温保护关闭电源后,芯片会定时自动重启,并且重启日志中会提示
BOOT REASON: THM
.
低功耗模式
芯片进入深度睡眠模式或 power-gating 睡眠模式后,温度传感器所在电源域处于断电状态,无法工作。
芯片进入 clock-gating 睡眠模式后,SDK 默认关闭温度传感器,同样使其无法工作。
备注
芯片一旦进入深度睡眠模式或 power-gating 睡眠模式后,温度传感器记录的历史高低温将丢失。
芯片退出 clock-gating 睡眠模式后, SDK 默认重新打开温度传感器。
使用步骤
使用温度传感器获取当前温度的步骤如下:
设置默认参数。
之后,可以根据需要在
TM_InitStruct
结构体中修改温度阈值、采样率等参数。TM_StructInit(TM_InitTypeDef *TM_InitStruct);
初始化温度传感器模块。
TM_Init(TM_InitTypeDef *TM_InitStruct);
配置中断并注册中断回调函数。
InterruptRegister((IRQ_FUN)TMIrqHandler, TmIrqNum[CPUID], NULL, 10); InterruptEn(TmIrqNum[CPUID], 10);
启用温度传感器。
TM_Cmd(ENABLE);
启用温度传感器。
TM_INTConfig(TM_BIT_IMR_TM_HIGH_WT | TM_BIT_IMR_TM_LOW_WT, ENABLE);