IC:

支持的芯片

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 默认重新打开温度传感器。

使用步骤

使用温度传感器获取当前温度的步骤如下:

  1. 设置默认参数。

    之后,可以根据需要在 TM_InitStruct 结构体中修改温度阈值、采样率等参数。

    TM_StructInit(TM_InitTypeDef *TM_InitStruct);
    
  2. 初始化温度传感器模块。

    TM_Init(TM_InitTypeDef *TM_InitStruct);
    
  3. 配置中断并注册中断回调函数。

    InterruptRegister((IRQ_FUN)TMIrqHandler, TmIrqNum[CPUID], NULL, 10);
    InterruptEn(TmIrqNum[CPUID], 10);
    
  4. 启用温度传感器。

    TM_Cmd(ENABLE);
    
  5. 启用温度传感器。

    TM_INTConfig(TM_BIT_IMR_TM_HIGH_WT | TM_BIT_IMR_TM_LOW_WT, ENABLE);