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

STM32L1x 温度传感器应用举例

[复制链接]
STMCU小助手 发布时间:2022-7-17 21:59
前言
- [( c, S* [9 l0 c3 B- g本应用笔记说明了使用 STM32L-DISCOVERY 和 32L152CDISCOVERY 板,实现简单温度测量应用的方法。本文讲解的解决方案使用 STM32L1x 微控制器集成的温度传感器。本文讲解了使用工厂或用户校准,提高温度传感器精度的方法。* M+ C; N2 S6 j. G+ t8 P
演示应用不需要任何额外硬件。当使用相关固件更新 STM32L-DISCOVERY 和32L152CDISCOVERY,并通过连至主机 PC 的 USB 线给板子上电之后,应用即可显示STM32L1x 微控制器的温度。; ?! `: \  n$ c
温度传感器例程代码包含在 STM32L1x 探索固件包中 (STSW-STM32072),可从http://www.st.com 获得。  b1 y5 ~3 T3 Q  h* ?+ t
参考文档
+ p! T" s9 Q1 _  F& h/ t9 I• STM32L-DISCOVERY 和 32L152CDISCOVERY 用户手册 (UM1079) 7 J2 T* Y0 D" V: H% h! H
• STM32L-DISCOVERY 和 32L152CDISCOVERY 板软件开发工具入门 (UM1451) - q7 p. H- p$ X0 C5 q
• STM32L1x 电流消耗测量和触摸感应演示 (AN3413)
6 Z4 a7 ], n, ^8 c• 超低功耗 STM32L15xx6/8/B 数据手册4 y- L8 G8 \" ^6 |
• 超低功耗 STM32L151xC 和 STM32L152xC 数据手册
, g5 @6 \+ g% d. h. c/ V• 超低功耗 STM32L151xD 和 STM32L152xD 数据手册
; [4 i" _/ |! J/ Z• 超低功耗 STM32L162xD 数据手册
' M8 m. J4 n. j• STM32L100xx、STM32L151xx、STM32L152xx 和 STM32L162xx 基于 ARM 内核的 32 位高级 MCU 参考手册 (RM0038)! X) {/ Z- N. P+ R. P% k) p8 [

+ }6 D6 ~3 U: i# |& s FEC$YHLU6EMR0UIG)29OFCF.png * b& b! w$ ]) K8 h, ^

% x& F7 M; ]5 a( g5 I4 T" |1 应用概述3 ]2 O2 ~" t8 i4 h- h  o
本章说明了温度传感器的工作原理以及如何使用 STM32L-DISCOVERY 或32L152CDISCOVERY 上内置的 STM32L1x 微控制器进行温度测量。  D3 P, D, R' c1 s5 u* t! g1 J
后面会简单说明如何实现示例温度测量应用。5 g, u" _8 n; r2 v# o8 F' p
在整个文档中,使用 STM32L1xxDISCOVERY 表示 STM32L-DISCOVERY 或32L152CDISCOVERY 评估套件。
6 J- w0 X6 i3 ^9 W& M( @6 r; t7 v( J3 |/ a- D6 `
1.1 温度传感器4 C6 }8 X/ l+ a( [( b
集成于 STM32L1x 微控制器中的温度传感器可输出与器件芯片结温成正比的模拟电压。, X( n7 a1 T) r$ \- d
注: 请注意,传感器提供的温度信息为芯片结温 (半导体表面的实际温度),它可能与环境温度不同。若需更详细信息,请参见产品数据手册的 热特性 一节。4 s8 b0 J4 G0 w1 }! n5 g! g
集成的温度传感器提供了较好的线性特性,典型偏差为 ± 1%。其温度范围等于器件的温度范围 (–40 °C 到 85 °C),最大结温为 150 °C。6 `+ O5 d* q/ t" q$ e3 f
传感器的线性很好,但可交换性很差,必须对其校准以得到较好的总体精度。若应用设计为仅测量温度的相对变化,则不需要校准温度传感器。( O. u6 P2 V% R
6 C1 x0 U! e! U5 [- w2 E0 ?
- K& T2 V0 o9 E" O, O8 a
1.2 温度测量和数据处理- |$ M8 ^  x8 h1 d: h
温度传感器的输出在芯片内部连至 STM32L1x 中 ADC (模数转换器)的通道 16(ADC_IN16), ADC 通道用于采样和转换温度传感器的输出电压。必须进一步处理原始ADC 数据,以便用标准温度单位显示温度 (摄氏度、华氏度、开氏温度)。0 Z. O" }3 ~4 Q. P: s5 s9 C
ADC 参考电压 (VDDA = VREF+)连至 STM32L1xxDISCOVERY 板的 3 V VDD 电源。若不知道 VDD 的精确值,则与使用电池工作的应用一样,必须对它测量以得到正确的总体 ADC转换范围 (见下节的详细信息)。' T1 q+ j1 A( \# G7 h5 m3 f  |

, D6 s6 B9 T% s
电池供电设备上的温度测量
/ W* \' u# N- L# u9 b若器件直接用电池供电,则微控制器的供电电压会有变化。若 ADC 参考电压连至 VDDA,即低引脚数封装器件的连接方式,ADC 转换的值会随电池电压漂移。需要知道供电电压以补偿该电压漂移。可使用芯片的内部电压参考 (VREFINT)来确定实际供电电压 (VDDA)。4 a3 i; Y" I% b" ?6 I$ j& S  r
ADC_IN17 内部参考输入上的 ADC 采样值 (Val_VREFINT)可由下式表示:3 b( U" y$ h& h7 b

5 W; h3 U% \/ I& p9 p! Q  F

4 G8 N5 R0 f2 W- O H2BX]JDU)BY[IPC3DRIHBM3.png
. q) ?; ^( h% w) V; f  {, A! l, l2 ~& d' Y" G. \
精确的芯片内部参考电压 (VREFINT)由 ADC 单独采样,在制造过程期间,将每个器件的对应转换值 (Val_VREFINT_CAL)储存于受保护的存储区,其地址为产品数据手册中规定的VREFINT_CAL。内部参考电压校准数据为 12 位的无符号数 (右对齐,存储于 2 个字节中),由用于参考的 STM32L1x ADC 获取. Z+ `3 @( @8 `* [/ w

, Y7 [( d0 L3 x+ c0 x4 s2 {
/ w, b% }6 ?% @: x+ Z; B  o
BL}ONH[COVZ$B6]FONVW5@R.png ' \/ O# a' Q3 [) V, L
5 U0 Y# P. v- r+ v- K
工厂测量的校准数据总体精度为 ± 5 mV (若需更详细信息,请参考数据手册)。& h$ c  R- R* I9 G+ v& {0 U
我们可使用上式确定实际的 VDDA 电压,如下所示:
/ n# S6 `8 w% o  Q0 y
, X9 B% t1 o& [3 } Z{T]$LI~`3DDN7SVRWID(Q9.png
5 u# t9 v7 q& Z' P5 X: r  `* h( Q- p
当采样温度传感器数据 ValTS_bat 时,ADC 量程会参考前面步骤中确定的实际 VDDA 值。因为温度传感器工厂校准数据是在 ADC 量程设为 3 V 时获得的,所以我们需要归一化ValTS_bat,以得到 ADC 量程为 3 V 时应获得的温度传感器数据 (ValTS)。可使用下式归一化 ValTS_bat: $ \6 r& y0 g: f

1 ^1 j# X% G# G7 ^- d5 r
. C  g3 l# k) k+ U0 v% I( }
J}UA%}$JW4D22@T$KE19(BM.png
7 q7 o' O) e, O9 R, Z0 o* e- k3 j# G' u5 V$ X
若 ADC 参考为 3 V 供电 (STM32L1 Discovery 的情况),则不需要这样归一化,可直接使用采样温度数据确定温度,如2.2.1 章节:温度传感器校准中所述。
/ N/ E9 o% d/ o: Z
+ N# Q' G+ V) x, e; I
1.3 应用程序示例说明! c/ M5 O, O. ^: E* Z; R3 a
每 2 秒,应用从温度传感器电压获取 16 个采样。使用四分均值算法,对 ADC 原始数据滤波、平均,以降低电源系统的噪声。将结果重新计算为标准的温度测量单位下的数值 (在本例中为 °C)。
" W' c: h) T! E. _( D# NADC 原始数据或当前温度值每 2 秒更新一次 LCD 显示,单位为摄氏度。用户可通过按用户按钮在两种温度数据表示之间切换。; r' J" e/ H$ t
为演示 STM32L1x 超低功耗微控制器的低功耗能力,在温度传感器数据测量间歇期, CPU切换至停止模式, RTC (实时时钟)唤醒设为 2 秒。 ADC 数据获取和数据传输由直接存储器访问 (DMA)管理在此阶段 CPU 处于低功耗睡眠模式。仅在初始化阶段和数据处理期间, CPU 才处于运行模式,其频率为 16 MHz (基于 HSI 振荡器时钟)。0 m. ~8 ]5 b4 j& i3 h! }

) e$ a& u2 _+ V8 V2 j# n. O

  {& o+ q" ]' z ZY4D5`$TCPVMXXD8%CI_$MD.png $ A  }1 _4 ]: V/ E" v1 F# C% }

% P' k  |) q% V7 M6 @: @2 g4 _7 g
) X( L9 s* Z/ H, A  R3 b7 _/ x
2 起始( d, i# S1 D. S6 ]- d# v! c5 s5 T
在开始运行例程之前,必须如下节中所述更新固件和配置硬件。, |! C  y. ~# \# Q# T% X4 T2 w
2.1 搭建板子运行环境
7 W0 ^; O9 |  Z2 G5 u& q- j$ V更新固件
( G7 _* ~0 `" }7 M; I需要使用本应用笔记相关的固件更新 STM32L1x 程序存储器。若需如何更新固件的信息,请阅读项目目录中的 ‘readme.txt’ 文件。
5 O; o* @5 q4 \: R( j! G7 h0 q- P9 L6 x, D7 R# u+ N8 `8 p/ G
例程会用到的硬件元件; f3 D$ k: x$ S% l
本应用例程使用 STM32L1xxDISCOVERY 板上现成的硬件元件:STM32L1x 微控制器上集成的外设、 6 位 LCD 玻璃显示器、用户按钮。不需额外元件。# m  `0 z- y, v
- Y7 l' I9 J, d- X4 g" e7 X
STM32L1xxDISCOVERY 硬件设置  h2 q3 b; E0 S- D, G
IDD 跳线 JP1 必须置于 ON 位置。  T% O4 A5 F$ S% X4 r- ]
必须安装 CN3 上的两个跳线,以通过串行线调试 (SWD)接口启用 STM32L1x 微控制器和 ST-Link 调试工具之间的通信。+ c: O3 O: F( |; A
注: 所有焊桥必须为 UM1079 中所述的默认状态。$ T* ~+ Z: {% J( q5 d7 z
2.2 运行演示例程
" u" n( P- A2 Z" p' ?5 Y4 {$ V运行演示例程很简单。% O' W+ m9 O% v) q0 P, U
开机后,例程首先会显示欢迎消息,然后立即显示电流温度,单位为摄氏度,刷新率为 2秒。当按下用户按钮后,显示屏会显示 ADC 获取的一组 16 个样例的平均值。再按一下用户按钮会在显示当前摄氏度温度和均值之间切换。均值可在之后用作校准点,作为已知温度来提高温度测量的整体精度, b" d: l+ p# l, [

' y, _4 \- B/ C' ?

2 B7 ?3 q+ H  N- ~* y# ]/ _2.2.1 温度传感器校准9 Z5 A8 v  [! v4 O7 K
在制造过程期间,温度传感器校准数据存储于受保护的存储区中,用户可从该处读取并使用该数据以提高温度测量的精度。生产过程中测量两个点的校准数据:
4 x. @3 \( H# [室温 (30 °C ± 5°C):TS_CAL1( \" m0 {& I( ?0 q1 y- @
高温 (110 °C ± 5°C):TS_CAL2。
5 M; ~0 d3 J7 z- m5 x- w0 y若需获取校准数据所存储的存储器地址,请参考产品数据手册。0 E( b. d+ Q3 X& W3 t7 y
温度传感器校准数据为 12 位的无符号数 (存储于 2 个字节中),由 STM32L1x ADC 在使用3 V (± 10 mV)参考电压时获得。
  w" m# A4 c* O( K; z  S+ A例程初始化时,会检查工厂校准数据的有效性。若存储器中存在数据,则用它做温度计算。) n: h. i2 ]2 o1 {
否则,则验证并使用用户校准期间存储在 EEPROM 存储区中的校准数据。若用户校准数据也不可用,则使用默认值计算。工厂校准或用户校准数据为温度测量提供了较好的精度。$ n# J4 Z3 ^2 u( q) Q
默认校准数据基于典型温度传感器特性的统计数据,由于制造过程期间温度传感器特性变化较大,所以使用默认值可能会导致温度估计的精度较差。建议使用工厂校准数据或对温度传感器执行两点校准,这代表了温度传感器的个体特性,可得到较好精度的测量。
" B$ U8 K4 r: a& u) h% ^
. Q3 i5 m+ `6 t9 i0 t/ K% N& z) c

" t2 t' C" Z  u7 l6 q Y1[)6I_7I1HDZ7WAIJYV99O.png ) ?4 m. j1 ]* @2 O" {" V. @- a7 o
) T7 I( k3 i6 w: g
可由 ADC 使用线性估计采样,从数字值 ValTS 计算温度。若两个校准点 C1 和 C2 的坐标已知,则可使用此方法,如 2 中所示。- Y% }; F- Y* [
当前温度可如下计算,其中低温坐标对表示为(TC1, ValC1),高温对为(TC2, ValC2):
" K+ o# D' j2 G5 R5 r
% ]. \4 o$ }: Z; ^
9 S# q1 y, j: Z: ^# S/ W+ F
~RRKJBLTYNLCM{`5(SRRRZ2.png % n* F! F; ]  M5 @5 `
7 F2 v; x4 ]2 O1 K2 P, g

6 a. B! K; R+ n" }2 r使用工厂校准数据,公式可重写如下:% q1 D% C- ]9 Q

! m! C  I3 X8 X+ [. ^1 `6 J% A
9 ]7 R/ |- S: o& Z( y! w- t
QJFDXRUSKO`}H9R%8WPF)`Q.png
6 Q* ]9 ]# Z) ]( w" i# y$ w: z9 s' g6 o, O( P% z* w* [9 M. K

/ m# F% i) B" S- K+ b7 q$ x+ b2.3 温度传感器估计的工程容差
# f8 ~. _. m2 x1 r; V. M) T) @5 @ 2 中可以看到,两点校准方法极大提高了测量精度。温度测量的偏移主要有两个原因:校准点的温度裕度及传感器的线性。其它造成偏移的原因,例如 ADC 参考电压裕度可被有效降低。对于使用 3 V (± 10 mV)参考电压测量的工厂校准值则可忽略。
) Q" H* [# K2 z0 s$ V2 R/ j4 s4 N温度估计的工程容差示于 2 中,它有两个边界线:最小偏移值 (绿色)和最大偏移值(蓝色)。校准点之间的区域具有恒定的容差,比外面的容差稍微增加。因此,校准点的建议位置应与测量范围的最大和最小值尽量接近。
. `/ d! `) S/ L& q$ m+ b+ b8 a$ I3 L7 U; k. f8 I5 W' P
! _4 R6 B; M* t, r/ x

2 b8 `7 Y0 ]; T6 i# H8 R完整版请查看:附件

9 d& ]( G! v5 S; h+ k0 T( x( Y% X
2 f& `9 V# T: G0 Y$ k  Y

DM00035957_ZHV3.pdf

下载

438.29 KB, 下载次数: 1

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

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版