论坛» 嵌入式开发» STM32

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

助工
2020-07-29 14:09 1楼

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

使用说明:

手册上写的很奇怪:先要使能内部低速时钟LRC,然后再启动外部或内部的高速时钟,why? 手册上也没有时钟树的说明!?
盘它:

  1. /* OTS clock selection. */

  2. #define OTS_CLK_SEL_XTAL (0u) /*使用外部高速时钟*/

  3. #define OTS_CLK_SEL_HRC (1u) /*使用内部高速时钟*/


  4. /* Select XTAL as OTS clock. */

  5. #define OTS_CLK_SEL (OTS_CLK_SEL_HRC)


  6. /* Select EVT_AOS_STRG as OTS trigger source. */

  7. #define OTS_TRG_SRC (EVT_AOS_STRG)


  8. /* System clock frequency in MHz. */

  9. #define SYS_CLOCK_FREQ_MHZ (SystemCoreClock / 1000000ul)

复制代码

然后初始化:


  1. void OtsBase_Config(void)

  2. {

  3. stc_ots_init_t stcOtsInit;


  4. stcOtsInit.enAutoOff = OtsAutoOff_Enable;

  5. #if (OTS_CLK_SEL == OTS_CLK_SEL_HRC)

  6. stcOtsInit.enClkSel = OtsClkSel_Hrc;

  7. #else

  8. stcOtsInit.enClkSel = OtsClkSel_Xtal;

  9. #endif

  10. stcOtsInit.u8ClkFreq = (uint8_t)SYS_CLOCK_FREQ_MHZ;


  11. /* 1. Enable OTS. */

  12. PWC_Fcg3PeriphClockCmd(PWC_FCG3_PERIPH_OTS, Enable);

  13. /* 2. Initialize OTS. */

  14. OTS_Init(&stcOtsInit);


  15. #if (OTS_CLK_SEL == OTS_CLK_SEL_HRC)

  16. /* Enable HRC for OTS. */

  17. CLK_HrcCmd(Enable);

  18. /* Enable XTAL32 while clock selecting HRC. */

  19. CLK_Xtal32Cmd(Enable);

  20. #else

  21. /* Enable XTAL for OTS. */

  22. CLK_XtalCmd(Enable);

  23. #endif

  24. /* Enable LRC for OTS. */

  25. CLK_LrcCmd(Enable);

  26. }

复制代码

在这里我选用2种时钟源亲自测过,都是OK的。
应用场景:如果没有外部晶体,就只用内部高速时钟;如果用,那么都可以用~
效果图:


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


工程师
2020-07-29 19:36 2楼

感谢分享

高工
2020-07-31 23:11 3楼

希望能继续出一些测评贴

高工
2021-01-02 22:33 4楼

谢谢分享

工程师
2021-01-12 23:22 5楼

学到了

高工
2021-04-05 09:29 6楼

很不错的教程贴啊

工程师
2021-04-05 22:35 7楼

十分感谢你的分享

高工
2021-04-07 11:20 8楼

太好了,还带有程序

工程师
2021-04-10 00:00 9楼

代码写的非常不错的

共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]