caizhiwei 发表于 2020-7-16 09:50

【华大测评】05 + 内部温度传感器(OTS)测评

      目前很多高级的MCU都自带了内部温度传感器,其原理都差不多,就是利用内部的ADC的一个内部通道采集电压数据,然后转换成温度数据。应用场景: 对于某些应用,需要监测板载温度,例如充电板,UPS电源主板等,上面一般都有一个温感,例如LM75. 利用mcu内部的OTS,可以节省BOM成本!
介绍:
       温度传感器( On-chip Temperature Sensor,以下简称 OTS)可以获取芯片内部的温度,以支持系统的可靠性操作。 OTS 提供了一组与温度相关的数字量,通过计算可以得到温度值。不使用时可以通过模块停止功能将其关闭以减少系统功耗。

使用说明:

手册上写的很奇怪:先要使能内部低速时钟LRC,然后再启动外部或内部的高速时钟,why? 手册上也没有时钟树的说明!?
盘它:
/* OTS clock selection. */
#define OTS_CLK_SEL_XTAL            (0u) /*使用外部高速时钟*/
#define OTS_CLK_SEL_HRC             (1u) /*使用内部高速时钟*/

/* Select XTAL as OTS clock. */
#define OTS_CLK_SEL               (OTS_CLK_SEL_HRC)

/* Select EVT_AOS_STRG as OTS trigger source. */
#define OTS_TRG_SRC               (EVT_AOS_STRG)

/* System clock frequency in MHz. */
#define SYS_CLOCK_FREQ_MHZ          (SystemCoreClock / 1000000ul)然后初始化:

void OtsBase_Config(void)
{
    stc_ots_init_t stcOtsInit;

    stcOtsInit.enAutoOff = OtsAutoOff_Enable;
#if (OTS_CLK_SEL == OTS_CLK_SEL_HRC)
    stcOtsInit.enClkSel = OtsClkSel_Hrc;
#else
    stcOtsInit.enClkSel = OtsClkSel_Xtal;
#endif
    stcOtsInit.u8ClkFreq = (uint8_t)SYS_CLOCK_FREQ_MHZ;

    /* 1. Enable OTS. */
    PWC_Fcg3PeriphClockCmd(PWC_FCG3_PERIPH_OTS, Enable);
    /* 2. Initialize OTS. */
    OTS_Init(&stcOtsInit);

#if (OTS_CLK_SEL == OTS_CLK_SEL_HRC)
    /* Enable HRC for OTS. */
    CLK_HrcCmd(Enable);
    /* Enable XTAL32 while clock selecting HRC. */
    CLK_Xtal32Cmd(Enable);
#else
    /* Enable XTAL for OTS. */
    CLK_XtalCmd(Enable);
#endif
    /* Enable LRC for OTS. */
    CLK_LrcCmd(Enable);
}在这里我选用2种时钟源亲自测过,都是OK的。
应用场景:如果没有外部晶体,就只用内部高速时钟;如果用,那么都可以用~
效果图:


说明: 和环境室温对比,相差不多。

caizhiwei 发表于 2020-7-16 09:52

打印温度:
void Get_CPU_Temperature(void)
{   
   if (Ok == OTS_StartGetTemp(&f_temperature, 100))
   {
          printf("CPU Temperature is %0.3f\r\n", f_temperature);
   }
}

caizhiwei 发表于 2020-7-16 09:55

附上源码工程:

caizhiwei 发表于 2020-7-20 19:07

听说温度还需要标定,才能使用~

HuangHongLun 发表于 2020-7-29 08:29

caizhiwei 发表于 2020-7-20 19:07
听说温度还需要标定,才能使用~

是的,这个温度误差有点大,看你测量这个温度是干什么用的,用来做热保护还是不错的。

既胜若否123 发表于 2022-6-13 18:29

请问ERC读出来一直是0是什么原因

yangxiaor520 发表于 2022-6-13 18:55

测试精度咋样?

carpsnow 发表于 2022-6-19 11:25

温度标定,只是为了能够产品一致性好一些

pklong 发表于 2022-6-20 15:23

温度传感器有什么作用呢

adolphcocker 发表于 2022-6-20 15:51

是ADC测量还是标定好的?

asmine 发表于 2022-6-26 12:13

这就是提供个参考,能评估下芯片温度

macpherson 发表于 2022-7-9 13:04

这个是直接转换的吗?

qiufengsd 发表于 2022-7-9 13:18

这个有什么作用呢

hearstnorman323 发表于 2022-7-9 13:35

测量内部温度的作用是什么呢   
页: [1]
查看完整版本: 【华大测评】05 + 内部温度传感器(OTS)测评