• 正文
  • 相关推荐
申请入驻 产业图谱

STM32U5 片内温度传感器正确测算指南:校准值转换是关键

15小时前
184
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

STM32U5 片内温度传感器的正确测算核心是校准值需匹配实际 ADC 位数与参考电压,直接使用芯片存储的原始校准值(TS_CAL1/TS_CAL2)会导致温度偏差,需先将校准值转换为当前 ADC 配置下的等效值,再代入官方公式计算,才能得到准确结果。

资料获取:【应用笔记】基于STM32U5片内温度传感器正确测算温度

1. 核心概述

1.1 传感器与校准值基础

  • 片内温度传感器用于监控晶圆温度(不适合外部环境测温),输出 VSENSE 信号,需通过 ADC 采样转换;
  • 校准值存储:ST 在生产时将两个校准点数据存入系统存储器,供用户提升测量准确性:
    • TS_CAL1:ADC1 在 30℃(±5℃)、VDDA=VREF+=3.0V(±10mV)下的 14 位采样值,地址 0x0BFA0710~0x0BFA0711;
    • TS_CAL2:ADC1 在 130℃(±5℃)、相同参考电压下的 14 位采样值,地址 0x0BFA0742~0x0BFA0743;
  • 官方计算公式:

    其中 TS_DATA 为当前 ADC 采样值。

1.2 核心问题根源

原始校准值是基于 “ADC1(14 位)+3.0V 参考电压” 获取的,若实际使用其他 ADC(如 ADC4,12 位)或不同参考电压(如 3.3V),直接代入公式会导致测算错误(如室温下算出 0.6℃,实际应为 29℃)。

2. 正确测算四步骤

步骤 1:读取原始校准值

通过存储器地址直接读取 16 位校准值,示例代码(C 语言):

// 读取TS_CAL1(14位,存储为16位数据)
uint16_t TS_CAL1 = *(uint16_t*)0x0BFA0710;
// 读取TS_CAL2(14位,存储为16位数据)
uint16_t TS_CAL2 = *(uint16_t*)0x0BFA0742;

步骤 2:校准值转换(关键步骤)

需根据实际 ADC 配置,完成 “参考电压转换” 和 “ADC 位数转换”,确保校准值与采样条件一致。

(1)参考电压转换

若实际 VDDA/VREF+≠3.0V(如 3.3V),按比例转换校准值:

参考电压示例(实际参考电压 3.3V):
  • TS_CAL1 原始 = 0x102F(4143)→ 转换后 = 4143×3.0/3.3≈3766;
  • TS_CAL2 原始 = 0x155D(5469)→ 转换后 = 5469×3.0/3.3≈4972。

(2)ADC 位数转换

若使用非 ADC1(如 ADC4 为 12 位,ADC1 为 14 位),按位数比例转换(高位→低位右移差值位):

  • 14 位→12 位:右移 2 位(÷4);

    示例(ADC4,12 位):

  • TS_CAL1 电压转换后 = 3766 → 位数转换后 = 3766÷4≈941;
  • TS_CAL2 电压转换后 = 4972 → 位数转换后 = 4972÷4≈1243。

步骤 3:ADC 配置与 VSENSE 采样

需正确配置 ADC 并唤醒温度传感器,确保采样有效:

  • 配置要点:
    1. 选择对应 ADC 通道(连接 VSENSE,如 ADC1_CH16、ADC4_CHx,参考手册 ADC 互连表);
    2. 唤醒传感器:置位 ADC_CCR 寄存器的 VSENSESEL 位,等待稳定时间(tsTART,参考数据手册);
    3. 设置采样时间:按数据手册要求配置(如 TS_temp,确保采样充分);
    4. 启动 ADC 转换,读取 TS_DATA(ADC_DR 寄存器值)。

步骤 4:代入公式计算温度

将转换后的校准值与 TS_DATA 代入公式,示例:

  • ADC1+3.3V 参考电压:TS_DATA=3754 → 温度 =(100÷(4972-3766))×(3754-3766)+30≈29℃;
  • ADC4+3.3V 参考电压:TS_DATA=938 → 温度 =(100÷(1243-941))×(938-941)+30≈29℃。

3. 错误与正确案例对比

测算条件 校准值使用方式 测算结果 结论
ADC1+3.3V 参考电压 直接使用原始校准值 0.6℃ 错误(未做电压转换)
ADC1+3.3V 参考电压 电压转换后校准值 29℃ 正确
ADC4+3.3V 参考电压 原始校准值(未转换) 偏差极大 错误(未做电压 + 位数转换)
ADC4+3.3V 参考电压 电压 + 位数转换后 29℃ 正确

4. 避坑关键要点

  1. 参考电压必匹配:原始校准值基于 3.0V,实际电压不同需按比例转换,否则偏差显著;
  2. ADC 位数要一致:14 位 ADC(如 ADC1)无需位数转换,12 位 ADC(如 ADC4)需右移 2 位;
  3. 传感器唤醒与稳定:必须置位 VSENSESEL 位唤醒传感器,且等待稳定时间后再采样;
  4. 采样时间足够:需按数据手册要求配置采样时间(TS_temp),避免采样不充分导致数据失真

STM32U5 片内温度传感器的准确测算,核心是 “校准值与实际采样条件对齐”—— 先根据参考电压和 ADC 位数转换 TS_CAL1/TS_CAL2,再通过规范的 ADC 配置采样 VSENSE,最后代入官方公式计算。忽略校准值转换是导致温度测算错误的主要原因,按步骤完成转换与配置即可获得可靠结果。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录