你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L1x 温度传感器应用举例

[复制链接]
STMCU小助手 发布时间:2022-7-17 21:59
前言
) a$ ~# Z, |4 [& B4 K. I) i本应用笔记说明了使用 STM32L-DISCOVERY 和 32L152CDISCOVERY 板,实现简单温度测量应用的方法。本文讲解的解决方案使用 STM32L1x 微控制器集成的温度传感器。本文讲解了使用工厂或用户校准,提高温度传感器精度的方法。5 j% y3 D5 O' u& X9 v$ F
演示应用不需要任何额外硬件。当使用相关固件更新 STM32L-DISCOVERY 和32L152CDISCOVERY,并通过连至主机 PC 的 USB 线给板子上电之后,应用即可显示STM32L1x 微控制器的温度。
& P$ w1 S$ Y* _% C; E( K温度传感器例程代码包含在 STM32L1x 探索固件包中 (STSW-STM32072),可从http://www.st.com 获得。0 T! C% S: O3 r* m& q
参考文档
* i0 S+ _2 }0 l• STM32L-DISCOVERY 和 32L152CDISCOVERY 用户手册 (UM1079)
, m! P$ @  ]. c4 v+ p/ b• STM32L-DISCOVERY 和 32L152CDISCOVERY 板软件开发工具入门 (UM1451) * P/ a* }4 M7 B) P
• STM32L1x 电流消耗测量和触摸感应演示 (AN3413)
& I! Z" t: `. L2 Q1 F9 S. g. D2 s• 超低功耗 STM32L15xx6/8/B 数据手册* j0 w5 _, N, l# X
• 超低功耗 STM32L151xC 和 STM32L152xC 数据手册$ @$ \# k' H7 U8 V
• 超低功耗 STM32L151xD 和 STM32L152xD 数据手册
1 Y- G$ `* p; m7 f) z5 d8 h& z• 超低功耗 STM32L162xD 数据手册
6 |( D" M8 S* R' U• STM32L100xx、STM32L151xx、STM32L152xx 和 STM32L162xx 基于 ARM 内核的 32 位高级 MCU 参考手册 (RM0038)+ }7 n7 k; M* j* |

! F0 e: L5 x, m3 P8 e( P3 ^5 }0 ? FEC$YHLU6EMR0UIG)29OFCF.png 8 `- b# e2 @2 D

- A9 B) U; D' A. b1 l- w' M! o4 S1 应用概述
8 ^0 g$ k6 }2 g6 ~( h* V1 T8 N6 v本章说明了温度传感器的工作原理以及如何使用 STM32L-DISCOVERY 或32L152CDISCOVERY 上内置的 STM32L1x 微控制器进行温度测量。
4 W' ]0 X7 }$ b7 h后面会简单说明如何实现示例温度测量应用。
! M. I) x) ?! R( p1 ]  S  P, N' D1 H在整个文档中,使用 STM32L1xxDISCOVERY 表示 STM32L-DISCOVERY 或32L152CDISCOVERY 评估套件。
4 F! z& e; i" D2 g6 q  R' ^7 q6 z1 h3 j! E
1.1 温度传感器  s5 `) A/ S$ q2 }6 g% {
集成于 STM32L1x 微控制器中的温度传感器可输出与器件芯片结温成正比的模拟电压。
  u5 W5 b" d$ O2 V! B4 u0 a注: 请注意,传感器提供的温度信息为芯片结温 (半导体表面的实际温度),它可能与环境温度不同。若需更详细信息,请参见产品数据手册的 热特性 一节。
: u( t- e: R8 ?  e8 _集成的温度传感器提供了较好的线性特性,典型偏差为 ± 1%。其温度范围等于器件的温度范围 (–40 °C 到 85 °C),最大结温为 150 °C。3 E' }4 T5 O4 C7 Y% ^( d& s
传感器的线性很好,但可交换性很差,必须对其校准以得到较好的总体精度。若应用设计为仅测量温度的相对变化,则不需要校准温度传感器。
' }4 F' z! u$ {2 n# E4 ~
+ w1 T# R: r* {% W
7 K: N/ q* t6 E, h' w5 o8 a
1.2 温度测量和数据处理+ v- g2 z2 {7 n. |9 e
温度传感器的输出在芯片内部连至 STM32L1x 中 ADC (模数转换器)的通道 16(ADC_IN16), ADC 通道用于采样和转换温度传感器的输出电压。必须进一步处理原始ADC 数据,以便用标准温度单位显示温度 (摄氏度、华氏度、开氏温度)。& h* H2 b  d  @, ]) V! Z- B$ r
ADC 参考电压 (VDDA = VREF+)连至 STM32L1xxDISCOVERY 板的 3 V VDD 电源。若不知道 VDD 的精确值,则与使用电池工作的应用一样,必须对它测量以得到正确的总体 ADC转换范围 (见下节的详细信息)。8 V" k) t# C7 z/ G
3 k8 A9 g5 h0 P/ f/ `
电池供电设备上的温度测量
9 U+ x8 U& u2 G6 V) ?, Z3 w# e7 K; h若器件直接用电池供电,则微控制器的供电电压会有变化。若 ADC 参考电压连至 VDDA,即低引脚数封装器件的连接方式,ADC 转换的值会随电池电压漂移。需要知道供电电压以补偿该电压漂移。可使用芯片的内部电压参考 (VREFINT)来确定实际供电电压 (VDDA)。1 ?( X  E* J& X1 r  F1 |6 \
ADC_IN17 内部参考输入上的 ADC 采样值 (Val_VREFINT)可由下式表示:
9 o8 B5 G; T$ W& ~8 U9 V/ v# M) @( d
3 _9 H  W- {" d

; \. G  ^; W8 @3 c0 T H2BX]JDU)BY[IPC3DRIHBM3.png # R. G! f; @( @$ D% e: y) v$ N; c% b

: p3 Z- z& ]! P; t8 d
精确的芯片内部参考电压 (VREFINT)由 ADC 单独采样,在制造过程期间,将每个器件的对应转换值 (Val_VREFINT_CAL)储存于受保护的存储区,其地址为产品数据手册中规定的VREFINT_CAL。内部参考电压校准数据为 12 位的无符号数 (右对齐,存储于 2 个字节中),由用于参考的 STM32L1x ADC 获取
) o6 g" q2 Y* M* Z3 v% T8 u. v
, F; m9 o) X" N" l& [+ g
: C: _1 G% x5 b1 _) K# y
BL}ONH[COVZ$B6]FONVW5@R.png $ {. _; r! Q: y2 u* d& U  O; g

. j) P- H, i) v
工厂测量的校准数据总体精度为 ± 5 mV (若需更详细信息,请参考数据手册)。: K( e7 I, F: ]* d% A$ k
我们可使用上式确定实际的 VDDA 电压,如下所示:1 S+ s7 B( Z$ f+ H
" s) X6 y- I1 b' k2 M% u
Z{T]$LI~`3DDN7SVRWID(Q9.png $ p& x; M( D" G

- M! o% {9 }( j+ C: d6 h当采样温度传感器数据 ValTS_bat 时,ADC 量程会参考前面步骤中确定的实际 VDDA 值。因为温度传感器工厂校准数据是在 ADC 量程设为 3 V 时获得的,所以我们需要归一化ValTS_bat,以得到 ADC 量程为 3 V 时应获得的温度传感器数据 (ValTS)。可使用下式归一化 ValTS_bat:   y9 H- J+ V# C8 P9 v
1 f5 }2 X, n, u2 @& S
2 I" K7 B5 V  n9 k- v
J}UA%}$JW4D22@T$KE19(BM.png
) e( Q7 R( [- o8 d2 P2 Q. L4 R* O1 M  s5 u% I* L
若 ADC 参考为 3 V 供电 (STM32L1 Discovery 的情况),则不需要这样归一化,可直接使用采样温度数据确定温度,如2.2.1 章节:温度传感器校准中所述。
. ^/ M* D% ^7 \: u8 J
- X- n) g: ^+ t2 l$ C0 z5 X7 {
1.3 应用程序示例说明
$ \' f1 n3 S2 f, f3 v每 2 秒,应用从温度传感器电压获取 16 个采样。使用四分均值算法,对 ADC 原始数据滤波、平均,以降低电源系统的噪声。将结果重新计算为标准的温度测量单位下的数值 (在本例中为 °C)。& z( {' u9 r! h, x
ADC 原始数据或当前温度值每 2 秒更新一次 LCD 显示,单位为摄氏度。用户可通过按用户按钮在两种温度数据表示之间切换。6 o8 e' ~- _  H8 J
为演示 STM32L1x 超低功耗微控制器的低功耗能力,在温度传感器数据测量间歇期, CPU切换至停止模式, RTC (实时时钟)唤醒设为 2 秒。 ADC 数据获取和数据传输由直接存储器访问 (DMA)管理在此阶段 CPU 处于低功耗睡眠模式。仅在初始化阶段和数据处理期间, CPU 才处于运行模式,其频率为 16 MHz (基于 HSI 振荡器时钟)。" d4 T6 X% ?: d& k: [9 n1 l
; l& ?7 e* j- O% G
" S( [7 X( z, X! _/ q  ~4 k
ZY4D5`$TCPVMXXD8%CI_$MD.png + ~$ `. r3 |- l& g7 C+ h. j

1 C/ v1 Y. ~7 F& V- F

+ s# _$ }+ h$ X7 w8 l3 s2 起始
& y) a% A  m& o在开始运行例程之前,必须如下节中所述更新固件和配置硬件。
) i" M: x1 w. v* s4 _5 E1 \, ?2.1 搭建板子运行环境$ B4 p9 r, T$ c4 Q9 [+ i
更新固件
' Z9 W  p7 @- S+ j4 R需要使用本应用笔记相关的固件更新 STM32L1x 程序存储器。若需如何更新固件的信息,请阅读项目目录中的 ‘readme.txt’ 文件。8 D& ^9 k' `) y) J3 c
8 u* K0 k: G6 q" R4 z4 {. m, ~
例程会用到的硬件元件4 q( K! h* I) V- n7 ^$ M
本应用例程使用 STM32L1xxDISCOVERY 板上现成的硬件元件:STM32L1x 微控制器上集成的外设、 6 位 LCD 玻璃显示器、用户按钮。不需额外元件。
0 E3 f* T. Q% @+ q
2 o" w; C6 e$ H
STM32L1xxDISCOVERY 硬件设置' p, g- K7 W+ ?; c1 @. h' K
IDD 跳线 JP1 必须置于 ON 位置。
$ Q) c) r# @( a" P9 {7 G) p: K( `必须安装 CN3 上的两个跳线,以通过串行线调试 (SWD)接口启用 STM32L1x 微控制器和 ST-Link 调试工具之间的通信。
; P4 E1 n9 z! S) S注: 所有焊桥必须为 UM1079 中所述的默认状态。
# W; l4 J0 r* J  c( |* a6 l) I2.2 运行演示例程
' x* T2 ?8 X* X, d运行演示例程很简单。5 z3 Y) A* |+ p
开机后,例程首先会显示欢迎消息,然后立即显示电流温度,单位为摄氏度,刷新率为 2秒。当按下用户按钮后,显示屏会显示 ADC 获取的一组 16 个样例的平均值。再按一下用户按钮会在显示当前摄氏度温度和均值之间切换。均值可在之后用作校准点,作为已知温度来提高温度测量的整体精度! ^0 q6 ?. X# D

: o1 a3 O4 t, s: F$ s

9 G* Z4 T4 ~6 a4 O: k1 T" L5 t; `2.2.1 温度传感器校准
$ a( l  }6 u9 O. e在制造过程期间,温度传感器校准数据存储于受保护的存储区中,用户可从该处读取并使用该数据以提高温度测量的精度。生产过程中测量两个点的校准数据:
7 X1 M  `4 U9 Q- r: X% V室温 (30 °C ± 5°C):TS_CAL15 g9 N. l2 |6 R6 J9 i
高温 (110 °C ± 5°C):TS_CAL2。6 @& n: y# C9 p  D& v) Y; N
若需获取校准数据所存储的存储器地址,请参考产品数据手册。
' c7 v7 x3 i/ S$ ]# v/ e+ G温度传感器校准数据为 12 位的无符号数 (存储于 2 个字节中),由 STM32L1x ADC 在使用3 V (± 10 mV)参考电压时获得。) d7 F) H$ _" {( \% I' _0 |6 s4 j& i
例程初始化时,会检查工厂校准数据的有效性。若存储器中存在数据,则用它做温度计算。
1 h7 Q, A. h6 Q+ h6 s否则,则验证并使用用户校准期间存储在 EEPROM 存储区中的校准数据。若用户校准数据也不可用,则使用默认值计算。工厂校准或用户校准数据为温度测量提供了较好的精度。3 E! \2 O, r) L; g" L
默认校准数据基于典型温度传感器特性的统计数据,由于制造过程期间温度传感器特性变化较大,所以使用默认值可能会导致温度估计的精度较差。建议使用工厂校准数据或对温度传感器执行两点校准,这代表了温度传感器的个体特性,可得到较好精度的测量。& G; u7 o9 }/ P

( g) S/ s8 Z. a
5 E- A- g2 l' U7 v' H
Y1[)6I_7I1HDZ7WAIJYV99O.png
$ V3 }5 M- n5 P- V8 q9 V, f  _" I" X
可由 ADC 使用线性估计采样,从数字值 ValTS 计算温度。若两个校准点 C1 和 C2 的坐标已知,则可使用此方法,如 2 中所示。
, V, ?( r, n. K" X当前温度可如下计算,其中低温坐标对表示为(TC1, ValC1),高温对为(TC2, ValC2):
3 s4 m! o5 U1 N* b  D
( |2 F* J% t0 a6 X( C. e; y
4 L( ~% M7 [+ p1 ]
~RRKJBLTYNLCM{`5(SRRRZ2.png
4 }; ?  }6 {% I0 ~% H) v0 f8 p8 L5 ^4 B2 U/ F: i4 h0 z  h
) l2 o' A0 J. K. O
使用工厂校准数据,公式可重写如下:
7 j- l! p/ G8 i( @7 T; [) c$ y' Z
7 V0 a& }/ u- U. m/ }
% R2 }, \6 s" m9 y! {! h6 b
QJFDXRUSKO`}H9R%8WPF)`Q.png
+ R: [% d: k7 R  W/ e0 \% z3 K7 [0 N% N& s. S: x# d3 V
% ?% F& d, s. ]' J9 k
2.3 温度传感器估计的工程容差# E! h; G4 k% q% K
2 中可以看到,两点校准方法极大提高了测量精度。温度测量的偏移主要有两个原因:校准点的温度裕度及传感器的线性。其它造成偏移的原因,例如 ADC 参考电压裕度可被有效降低。对于使用 3 V (± 10 mV)参考电压测量的工厂校准值则可忽略。
# ^' s6 M& j+ E! g$ x温度估计的工程容差示于 2 中,它有两个边界线:最小偏移值 (绿色)和最大偏移值(蓝色)。校准点之间的区域具有恒定的容差,比外面的容差稍微增加。因此,校准点的建议位置应与测量范围的最大和最小值尽量接近。$ y% K+ n  o; P* I  N/ o- y: Z
3 t, b0 F0 I- H' x2 C) y

7 m% r6 l, [6 G; x$ g$ ~2 m* n4 w4 o) G- R# V+ J3 W
完整版请查看:附件

; s" G  B# [, `# p0 d
( o2 v  \/ D) B" l. s3 H  l" ^7 v* `; S5 U# T

DM00035957_ZHV3.pdf

下载

438.29 KB, 下载次数: 1

收藏 评论0 发布时间:2022-7-17 21:59

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版