首页 > 技术 > 内容

STM32U5片内温度传感器测温实战分享

时间:2025-12-07  作者:Diven  阅读:0

01

引言

STM32 在内部都集成了一个温度传感器,STM32U5 也不例外。这个位于晶圆上的温度传感器虽然不太适合用来测量外部环境的温度,但是用于监控晶圆上的温度还是挺好的,以防止芯片过温运行。

02

问题

2.1.问题详情

某客户在使用 STM32U575ZIT6Q 时,使用 ADC4 对内部温度传感器 VSENSE进行采样计算,但是总觉得温度值不对。那么,应该如何对内部温度传感器信号的 ADC 采样进行计算以得到正确温度值呢?

2.2. 问题分析

我们应该看一下参考手册如何描述内部温度传感器的。参考手册说明了,未经校准的内部温度传感器更适用于对温度变化而非绝对温度进行测量的应用。为了提高温度传感器测量的准确性,ST 在生产过程中将校准值存储在每个器件的系统存储器中,用户可以在应用中去读取这些数据。

这个校准值是写在数据手册的,如图 1 所示。

5b14c82e-d164-11ee-a297-92fbcf53809c.jpg

图1. 内部温度传感器

这张表格告诉我们,校准值 TS_CAL1 的数值位于存储器地址 0x0BFA0710 和0x0BFA0711,也就是是一个 16-bit 的数据;同理,校准值 TS_CAL2 的数值位于存储器地址 0x0BFA0742 和 0x0BFA0743。

再回过头来看一下参考手册是如何描述怎么读取内部温度传感器的温度的,如图 2 所示。

5b1f05f0-d164-11ee-a297-92fbcf53809c.jpg

图2. 读取温度传感器

这里描述的是如何读取内部温度传感器的温度,前面主要介绍 ADC 的配置和对温度传感器的采样,最后根据得到的数据使用公式进行计算,得到温度值。前面的 ADC 的配置和采样就不说了,我们主要来看一下公式的使用。

5b296b3a-d164-11ee-a297-92fbcf53809c.jpg

其中,

Temperature (in ℃) 就是内部传感器的当前温度结果;

TS_DATA 为内部传感器当前温度对应的采样值;

TS_CAL2_TEMP 为校准值 2 的温度值,TS_CAL2 为对应的采样值,对于 STM32U5来说,TS_CAL2_TEMP 为 130℃,对应的采样值存储在 0x0BFA0742 和 0x0BFA0743;

TS_CAL1_TEMP 为校准值 1 的温度值,TS_CAL1 为对应的采样值,对于 STM32U5来说,TS_CAL1_TEMP 为 30℃,对应的采样值存储在 0x0BFA0710 和 0x0BFA0711;

对于 STM32U5 来说,公式可简化为:

5b369260-d164-11ee-a297-92fbcf53809c.jpg

那么,是不是直接读取了 TS_CAL2 和 TS_CAL1,放到公式里,然后通过 ADC 得到TS_DATA,就可以直接算温度了呢?接着往下看。

2.3. 问题解决

在室温下使用 NUCLEO-U575ZI-Q 做个实验:

读取 0x0BFA0742 和 0x0BFA0743 得到 TS_CAL2 为 0x155D,也就是 0d5469;读取 0x0BFA0710 和 0x0BFA0711 得到 TS_CAL1 的值为 0x102F,也就是 0d4143。

此时,由 ADC1 对内部温度传感器进行采样转换,得到 TS_DATA 为 0xEAA,也就是0d3754。

那么,如果直接放进去算:

5b499586-d164-11ee-a297-92fbcf53809c.jpg

室温下,这个 0.66℃显然不对。

2.3.1. 使用 ADC1 测量内部温度传感器的温度值

再来看数据手册里对校准值的描述,如图 3 所示。

5b57131e-d164-11ee-a297-92fbcf53809c.jpg

图3. 温度传感器校准值重要参数

这个表格有一个非常重要的参数,就是 ADC1 的参考电压,是 3.0V,而 NUCLEOU575ZI-Q 板子的 ADC 参考电压为 3.3V。所以,这两个 TS_CAL1 和 TS_CAL2 对于NUCLEO-U575ZI-Q 中的 STM32U575ZIT6Q 的内部温度传感器肯定是不能直接用的,需要先换算为 3.3V 参考电压的值才行。

所以,新的值计算如下:

TS_CAL2 = 5469 × 3 / 3.3 = 4972

TS_CAL1 = 4143 × 3 / 3.3 = 3766

再回到刚才的实验中,计算的公式如下:

5b63e27e-d164-11ee-a297-92fbcf53809c.jpg

这次算出来的结果为 29℃就对了。

2.3.2. 使用 ADC4 测量内部温度传感器的温度值

那对于 ADC4 是否也是一样的呢?

要知道在 STM32U5 中,ADC1 为 14-bit SAR ADC,而 ADC4 为 12-bit SARADC。同样的这块板子,同样的室温下,由 ADC4 对内部温度传感器进行采样转换得到的值是 0x3AA,也就是 0d938。

要使用 0d938 计算温度值,TS_CAL1 和 TS_CAL2 也要相应转为 12 位的数据才行。将由 14 位数据转为 12 位的数据,相当于就是右移 2 位,也相当于除以 4。

由于参考电压仍然是 3.3V,所以针对 ADC4 的 TS_CAL2 和 TS_CAL1 应该计算如下:

TS_CAL2 :由读取到的 0x155D 右移 2 位,得到 0x557,也就是 0d1367,再换算成3.3V 的 。

TS_CAL2 = 1367 × 3 / 3.3 = 1243也可以直接使用上面 ADC1 例子的值来计算。

TS_CAL2 = 4972 / 4 = 1243

TS_CAL1 :由读取到的 0x102F 右移 2 位,得到 0x40B,也就是 0d1035,再换算成3.3V 的 。

TS_CAL2 = 1035 × 3 / 3.3 = 941

也可以直接使用上面 ADC1 例子的值来计算。

TS_CAL2 = 3766 / 4 = 941

计算的公式如下:

5b758358-d164-11ee-a297-92fbcf53809c.jpg

算出来的结果也是 29℃。

03

小结

当我们使用芯片的内部温度传感器计算内部温度时,需注意校准值是使用哪个 ADC、在什么参考电压下得到的。当实际应用与内部温度传感器校准时所使用 ADC 及条件不一样时,应该对存储单元里的校准值先做计算转化,然后才可以使用参考手册所提供的公式进行计算,否则将会得到错误值。


审核编辑:刘清

猜您喜欢


隔离式I2C是重要的通信接口,应用于多个领域。在工业自动化中,隔离式I2C用于设备间的安全数据传输,能够有效防止电磁干扰和地环路问题,确保系统的稳定性与可靠性。...
2022-10-19 00:00:00
在电气安全领域,断路器锁是重要的安全装置,用于防止意外启用断路器,从而保护设备和人身安全。那么,断路器锁的规格尺寸到底是多少呢?断路器锁的尺寸会因不同品牌和型号...
2021-09-21 00:00:00
瓷片电容是常见的电容器,应用于电子设备。具有许多优越特性,使其在电路中不可少。接下来,我们将探讨瓷片电容的几个重要特性。高稳定性瓷片电容特别稳定,适应性强。在不...
2025-03-23 15:01:39
功率计是测量电力系统中功率的重要仪器,应用于电力、电子、通信等领域。根据不同的分类标准,功率计主要可以分为以下几类。按照测量原理的不同,功率计可分为模拟功率计和...
2013-03-10 00:00:00
海绵砂纸是新型的砂纸,其主要优势体现在以下几个方面。海绵砂纸具有良好的柔韧性,可以轻松适应各种曲面和不规则形状,确保打磨效果均匀。海绵材料的吸水性和透气性使其在...
2010-04-26 00:00:00
防浪涌电阻作为保护电路免受瞬时高压冲击的重要元件,其性能和品牌选择受到关注。禾伸堂(HEC)作为知名电子元器件制造商,其防浪涌电阻产品因优异的品质和稳定的性能,...
2013-06-19 08:56:30
一。 现场总线技术高炉煤气洗涤系统是将高炉回收的煤气通过洗涤塔净化后送至用户。现将原常规电气控制系统改造成PLC集中监控系统,该项目包括4座洗涤塔和公共部分。...
2020-03-31 10:17:00
现代社会,UPS(不间断电源)是非常重要的设备。能够提供稳定的电力,确保设备正常运行。电容在UPS中起着关键作用。本文将探讨UPS中的电容的作用和用途。电容的基...
2025-03-25 04:00:02
在电缆管理中,电缆扎带是不可少的工具,不仅能帮助我们有效地整理和固定电缆,还能提升整体的美观度和安全性。那么,电缆扎带的架子和安装件规格尺寸具体是多少呢?电缆扎...
2010-12-08 00:00:00