0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32U5片内温度传感器正确测算温度实战经验分享

STM32单片机 来源:STM32单片机 2024-02-22 17:27 次阅读

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 及条件不一样时,应该对存储单元里的校准值先做计算转化,然后才可以使用参考手册所提供的公式进行计算,否则将会得到错误值。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 温度传感器
    +关注

    关注

    48

    文章

    2902

    浏览量

    155868
  • 存储器
    +关注

    关注

    38

    文章

    7447

    浏览量

    163579
  • 晶圆
    +关注

    关注

    52

    文章

    4835

    浏览量

    127760
  • adc
    adc
    +关注

    关注

    98

    文章

    6429

    浏览量

    544033
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354682
  • ADC采样
    +关注

    关注

    0

    文章

    134

    浏览量

    12829

原文标题:实战经验 | 基于 STM32U5 片内温度传感器正确测算温度

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    挑选正确温度传感器的方法

    引言 如果您要进行可靠的温度测量,就需要为您的应用选择正确温度传感器 。热电偶、热敏电阻、铂电阻(RTD)和温度IC是测试中最常用的
    发表于 10-10 14:34 2895次阅读
    挑选<b class='flag-5'>正确</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>的方法

    基于STM32U5STM32CubeMX环境搭建

    基于STM32U5STM32CubeMX环境搭建
    的头像 发表于 09-21 17:35 1443次阅读
    基于<b class='flag-5'>STM32U5</b> 的 <b class='flag-5'>STM32</b>CubeMX环境搭建

    基于LL库实现STM32U5 LPTIM功能

    有人打算使用STM32U5系列LPTIM做低功耗模式唤醒。基于STM32 LL库组织代码,折腾几天后似乎连中断都进不了,想找找是否有现存LL库例程可以参考。
    的头像 发表于 01-07 14:12 1445次阅读
    基于LL库实现<b class='flag-5'>STM32U5</b> LPTIM功能

    怎么读取51温度传感器温度

    我采用的是新华龙的c8051f413,现在想要读取温度传感器温度,现在已经把ad都配置好了,然后我配置了
    发表于 08-09 04:35

    振动传感器项目外包,有实战经验的电子工程师联系我。

    振动传感器项目外包,有实战经验的电子工程师联系我。
    发表于 12-01 12:28

    开关电源维修方法和实战经验

    开关电源维修方法和实战经验开关电源维修方法和实战经验
    发表于 01-15 16:38 49次下载

    KE04在集成温度传感器使用方法

      KE04在集成了一个温度传感器,可以用于测量芯片本身的温度,从而间接测量环境的温度
    发表于 09-15 16:37 16次下载
    KE04在<b class='flag-5'>片</b><b class='flag-5'>内</b>集成<b class='flag-5'>温度</b><b class='flag-5'>传感器</b>使用方法

    C8051单片机温度传感器测量环境温度误差的分析论文

    单片机温度传感器虽然成本较低:但其检测到的是单片机的芯片温度,如用其测量外部环境温度,误差较
    发表于 03-04 17:11 13次下载
    C8051单片机<b class='flag-5'>片</b><b class='flag-5'>内</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>测量环境<b class='flag-5'>温度</b>误差的分析论文

    嵌入式项目实战经验

    嵌入式项目实战经验分享,C/C++、Linux、STM32、51单片机、FPGA、IoT、OpenCV、数字图像处理、通信、算法!
    发表于 11-03 12:36 23次下载
    嵌入式项目<b class='flag-5'>实战经验</b>

    STM32U5系列采用LPBAM进行电源优化

    STM32U5系列采用LPBAM进行电源优化
    发表于 11-21 08:11 0次下载
    <b class='flag-5'>STM32U5</b>系列采用LPBAM进行电源优化

    STM32U5 LPBAM模式介绍

    STM32U5 LPBAM模式介绍
    的头像 发表于 10-26 17:59 719次阅读
    <b class='flag-5'>STM32U5</b> LPBAM模式介绍

    实战经验 | STM32U5 ADC 自校准不成功的问题分析

    关键词:STM32U5,ADC 目录预览 1、引言 2、问题 3、问题解决 4、小结 01 引言 很多 STM32 系列中的 ADC 都带有自校准的功能。它提供了一个自动校准的过程,用于驱动包括
    的头像 发表于 12-10 16:45 1891次阅读
    <b class='flag-5'>实战经验</b> | <b class='flag-5'>STM32U5</b> ADC 自校准不成功的问题分析

    STM32项目实战:基于STM32U5的智能灯光控制系统(LVGL),附项目教程/源码

    《智能灯光控制系统_STM32U5》项目完整文档、项目源码,点击免费领取。项目资料领取:https://s.c1ns.cn/F5XyUSTM32项目实战之“智能灯光控制系统”(基于STM32U
    的头像 发表于 11-07 18:50 459次阅读
    <b class='flag-5'>STM32</b>项目<b class='flag-5'>实战</b>:基于<b class='flag-5'>STM32U5</b>的智能灯光控制系统(LVGL),附项目教程/源码

    STM32项目实战:基于STM32U5的火灾报警系统(LVGL),附项目教程/源码

    《火灾报警系统_STM32U5》项目完整文档、项目源码,点击下方链接免费领取。项目资料领取https://s.c1ns.cn/F5XyUSTM32项目实战之“火灾报警系统”(基于STM32U5
    的头像 发表于 11-13 14:18 361次阅读
    <b class='flag-5'>STM32</b>项目<b class='flag-5'>实战</b>:基于<b class='flag-5'>STM32U5</b>的火灾报警系统(LVGL),附项目教程/源码

    STM32项目实战:基于STM32U5的智能大棚温控系统(LVGL),附项目教程/源码

    《智能大棚温控系统_STM32U5》项目完整文档、项目源码,点击下方链接免费领取。项目资料领取https://s.c1ns.cn/F5XyUSTM32项目实战之“智能大棚温控系统
    的头像 发表于 11-13 17:08 307次阅读
    <b class='flag-5'>STM32</b>项目<b class='flag-5'>实战</b>:基于<b class='flag-5'>STM32U5</b>的智能大棚温控系统(LVGL),附项目教程/源码