1. 引言
STM32 在内部都带有一个温度传感器,STM32U5 也不例外。这个位于晶圆上的温度传感器虽然不太适合用来测量外部环境的温度,但是用于监控一下晶圆上的温度也是挺好的,可以防止芯片过温运行。
2. 问题
2.1. 问题详情
某客户在使用 STM32U575ZIT6Q 时,使用 ADC4 对内部温度传感器 VSENSE进行采样计算,但是总是觉得得到的温度值不对。那么,应该如何对内部温度传感器的 ADC 采样进行计算以得到正确温度值呢?
2.2. 问题分析
首先,应该先来看一下参考手册中,如何描述内部温度传感器的。参考手册说明了,未经校准的内部温度传感器更适用于对温度变量而非绝对温度进行测量的应用。为了提高温度传感器测量的准确性,ST 在生产过程中将校准值存储在每个器件的系统存储器中。用户在软件开发中,可以在应用中去读取这些数据,用于提高温度传感器的准确性。
这个校准值是写在数据手册的,如图 1 所示。
图1. 内部温度传感器
这张表格告诉我们,校准值 TS_CAL1 的数值位于存储器地址 0x0BFA0710 和0x0BFA0711,也就是它是一个 16-bit 的数据;同理,校准值 TS_CAL2 的数值位于存储器地址 0x0BFA0742 和 0x0BFA0743。
再回过头来看一下参考手册是如何描述怎么读取内部温度传感器的温度的,如图 2 所示。
图2. 读取温度传感器
这里描述的是如何读取内部温度传感器的温度,前面主要介绍 ADC 的配置和对温度传感器的采样,最后根据得到的数据使用公式进行计算,得到温度值。前面的 ADC 的配置和采样就不说了,我们主要来看一下公式的使用。
标签:温度传感器,校准,CAL1,CAL2,30,STM32U5,TS,片内
From: https://blog.csdn.net/u014319604/article/details/137244145