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

STM32L1x 温度传感器应用举例

[复制链接]
STMCU小助手 发布时间:2022-7-17 21:59
前言4 T+ o6 H: s) G: X9 Q! A
本应用笔记说明了使用 STM32L-DISCOVERY 和 32L152CDISCOVERY 板,实现简单温度测量应用的方法。本文讲解的解决方案使用 STM32L1x 微控制器集成的温度传感器。本文讲解了使用工厂或用户校准,提高温度传感器精度的方法。
7 d# |  z& n, Z" g  M演示应用不需要任何额外硬件。当使用相关固件更新 STM32L-DISCOVERY 和32L152CDISCOVERY,并通过连至主机 PC 的 USB 线给板子上电之后,应用即可显示STM32L1x 微控制器的温度。4 k/ p& J& C9 p* c% k2 e% x
温度传感器例程代码包含在 STM32L1x 探索固件包中 (STSW-STM32072),可从http://www.st.com 获得。
) Q6 c" z" I% m. \, c% i参考文档% O. b5 a. q% P0 D+ T! T
• STM32L-DISCOVERY 和 32L152CDISCOVERY 用户手册 (UM1079)
! s: j, P/ {% l7 h" z& T4 S• STM32L-DISCOVERY 和 32L152CDISCOVERY 板软件开发工具入门 (UM1451) 2 E! l0 O* g# Q4 Y
• STM32L1x 电流消耗测量和触摸感应演示 (AN3413)
" G3 t& T+ Q# z5 ^! q/ }4 R+ ^) g• 超低功耗 STM32L15xx6/8/B 数据手册* _, D2 B+ N% L6 d
• 超低功耗 STM32L151xC 和 STM32L152xC 数据手册5 O& |1 b$ w1 v4 k$ E
• 超低功耗 STM32L151xD 和 STM32L152xD 数据手册
  G& @& l" E# ~$ k• 超低功耗 STM32L162xD 数据手册, y3 {0 |; d8 e/ e7 D0 v
• STM32L100xx、STM32L151xx、STM32L152xx 和 STM32L162xx 基于 ARM 内核的 32 位高级 MCU 参考手册 (RM0038)6 A. w# P/ B7 ?
) r! W0 {3 O+ f
FEC$YHLU6EMR0UIG)29OFCF.png : ]4 }" S5 }* j; L
2 [7 Q# C8 n, j' X1 X
1 应用概述7 H. m( O% K, k6 E; r* V  v# u! h
本章说明了温度传感器的工作原理以及如何使用 STM32L-DISCOVERY 或32L152CDISCOVERY 上内置的 STM32L1x 微控制器进行温度测量。% M' r. M# u3 t7 ^$ t* o$ K' E
后面会简单说明如何实现示例温度测量应用。+ s9 y' w' \  P) c. \7 X
在整个文档中,使用 STM32L1xxDISCOVERY 表示 STM32L-DISCOVERY 或32L152CDISCOVERY 评估套件。
2 i2 T& }7 d% B  H7 Z: u
6 n0 T  P' s6 S% x$ H
1.1 温度传感器
0 I2 C* _) Q1 d$ g. B, l+ d集成于 STM32L1x 微控制器中的温度传感器可输出与器件芯片结温成正比的模拟电压。/ t- ?4 G; A8 n% A* J
注: 请注意,传感器提供的温度信息为芯片结温 (半导体表面的实际温度),它可能与环境温度不同。若需更详细信息,请参见产品数据手册的 热特性 一节。6 h3 c  K, `4 P# W3 R
集成的温度传感器提供了较好的线性特性,典型偏差为 ± 1%。其温度范围等于器件的温度范围 (–40 °C 到 85 °C),最大结温为 150 °C。4 N" V! u$ v; I* X
传感器的线性很好,但可交换性很差,必须对其校准以得到较好的总体精度。若应用设计为仅测量温度的相对变化,则不需要校准温度传感器。
! N' }0 a, H$ _, C, g# }! Q/ O
) b4 z2 y' J# n; r
; N" b# H& a  G9 `
1.2 温度测量和数据处理" w: _2 s. N5 S5 R+ H
温度传感器的输出在芯片内部连至 STM32L1x 中 ADC (模数转换器)的通道 16(ADC_IN16), ADC 通道用于采样和转换温度传感器的输出电压。必须进一步处理原始ADC 数据,以便用标准温度单位显示温度 (摄氏度、华氏度、开氏温度)。
- K4 ^, G% e& a$ i- l) r$ Y- I0 OADC 参考电压 (VDDA = VREF+)连至 STM32L1xxDISCOVERY 板的 3 V VDD 电源。若不知道 VDD 的精确值,则与使用电池工作的应用一样,必须对它测量以得到正确的总体 ADC转换范围 (见下节的详细信息)。
2 E4 [) k2 g# [: W! `9 s
& r+ s# \. V6 k' g9 j* |+ J- F
电池供电设备上的温度测量  c1 i, p: _2 H+ ?
若器件直接用电池供电,则微控制器的供电电压会有变化。若 ADC 参考电压连至 VDDA,即低引脚数封装器件的连接方式,ADC 转换的值会随电池电压漂移。需要知道供电电压以补偿该电压漂移。可使用芯片的内部电压参考 (VREFINT)来确定实际供电电压 (VDDA)。+ V: @( o: @/ |2 t' u
ADC_IN17 内部参考输入上的 ADC 采样值 (Val_VREFINT)可由下式表示:% U3 m. q4 U& [5 I' O+ x

! c: F) g2 x$ f( ]) U% ?' K
; ]# L1 }. K+ ?. V3 P
H2BX]JDU)BY[IPC3DRIHBM3.png
5 ]1 j& e, C, p  N5 s; G2 i' Q
" S5 u$ C! t1 `4 B2 K* d+ E
精确的芯片内部参考电压 (VREFINT)由 ADC 单独采样,在制造过程期间,将每个器件的对应转换值 (Val_VREFINT_CAL)储存于受保护的存储区,其地址为产品数据手册中规定的VREFINT_CAL。内部参考电压校准数据为 12 位的无符号数 (右对齐,存储于 2 个字节中),由用于参考的 STM32L1x ADC 获取
5 @6 g' }: E; z1 p& F& u9 T6 v
7 M3 |* @/ ~; p9 }7 P

- _9 r; d" V7 }( g% \9 s0 J  l BL}ONH[COVZ$B6]FONVW5@R.png $ D: j0 L. N- D" A7 a, N4 n/ G
7 H  P0 k$ j9 F5 u0 `* f+ w% c
工厂测量的校准数据总体精度为 ± 5 mV (若需更详细信息,请参考数据手册)。& R; V; e0 v+ _" Q' p
我们可使用上式确定实际的 VDDA 电压,如下所示:
  y0 w( C# k6 G% x* R7 o9 k  D( V7 i6 y% M- n' s
Z{T]$LI~`3DDN7SVRWID(Q9.png
2 P$ {& {. T+ L6 l
, H! U* v8 e7 x3 I8 c4 y* O当采样温度传感器数据 ValTS_bat 时,ADC 量程会参考前面步骤中确定的实际 VDDA 值。因为温度传感器工厂校准数据是在 ADC 量程设为 3 V 时获得的,所以我们需要归一化ValTS_bat,以得到 ADC 量程为 3 V 时应获得的温度传感器数据 (ValTS)。可使用下式归一化 ValTS_bat: 8 f7 G/ C  {2 h' T5 t

8 b) k: {- h1 l% y1 ?; P' n
/ e8 U, f; d" L; m0 o% ~" Y
J}UA%}$JW4D22@T$KE19(BM.png
5 I6 Q& f% E; }; f+ Z6 p( x% q( Q7 r+ s) z) D8 J
若 ADC 参考为 3 V 供电 (STM32L1 Discovery 的情况),则不需要这样归一化,可直接使用采样温度数据确定温度,如2.2.1 章节:温度传感器校准中所述。
! m; f% W2 L) S7 ^
- X! W  D$ J, k/ }5 h/ `: ?3 C
1.3 应用程序示例说明
+ K6 E. s+ f% J( R每 2 秒,应用从温度传感器电压获取 16 个采样。使用四分均值算法,对 ADC 原始数据滤波、平均,以降低电源系统的噪声。将结果重新计算为标准的温度测量单位下的数值 (在本例中为 °C)。. i  Z% A& b. o3 d
ADC 原始数据或当前温度值每 2 秒更新一次 LCD 显示,单位为摄氏度。用户可通过按用户按钮在两种温度数据表示之间切换。* Z3 \+ j! h1 q( P; U/ p) w
为演示 STM32L1x 超低功耗微控制器的低功耗能力,在温度传感器数据测量间歇期, CPU切换至停止模式, RTC (实时时钟)唤醒设为 2 秒。 ADC 数据获取和数据传输由直接存储器访问 (DMA)管理在此阶段 CPU 处于低功耗睡眠模式。仅在初始化阶段和数据处理期间, CPU 才处于运行模式,其频率为 16 MHz (基于 HSI 振荡器时钟)。/ F) I4 d! m! `  ^! U0 o* H9 p4 T

  i& Z4 y+ a8 [) ]

. [0 E* F& f/ s9 L2 d5 M) }& j ZY4D5`$TCPVMXXD8%CI_$MD.png 1 {+ }  Z8 T  \9 D- I9 e! r

3 Z& ~; x  p8 K" }

0 P; `; V9 Z7 d2 起始: S- L$ V& |; O( G& Q
在开始运行例程之前,必须如下节中所述更新固件和配置硬件。! P( l8 t0 Z  H. b' {# N* _# e, q
2.1 搭建板子运行环境
6 I2 F3 ^" F9 S' D  N$ z更新固件
- B( |% ^, B% @7 `; X需要使用本应用笔记相关的固件更新 STM32L1x 程序存储器。若需如何更新固件的信息,请阅读项目目录中的 ‘readme.txt’ 文件。* @6 a- X# l' S

* l* m3 t$ s/ z& _' ]
例程会用到的硬件元件
& W' ^. ^( G$ I8 H( u+ A: U) L本应用例程使用 STM32L1xxDISCOVERY 板上现成的硬件元件:STM32L1x 微控制器上集成的外设、 6 位 LCD 玻璃显示器、用户按钮。不需额外元件。
1 G; e5 p: z: C, U
. A* K% H; o" j: T  V2 h6 \
STM32L1xxDISCOVERY 硬件设置" O( m3 T# X: a- i% ^& U
IDD 跳线 JP1 必须置于 ON 位置。
' _! @( F% H# g% U; e: T( M8 U' i必须安装 CN3 上的两个跳线,以通过串行线调试 (SWD)接口启用 STM32L1x 微控制器和 ST-Link 调试工具之间的通信。
; M! ~5 r% g& I% E注: 所有焊桥必须为 UM1079 中所述的默认状态。
/ s* h: \2 q2 j* A& R2.2 运行演示例程
" M; O7 F' P. \& y1 z3 E+ \: N运行演示例程很简单。
" r& B6 ^5 N0 S2 T9 R' }开机后,例程首先会显示欢迎消息,然后立即显示电流温度,单位为摄氏度,刷新率为 2秒。当按下用户按钮后,显示屏会显示 ADC 获取的一组 16 个样例的平均值。再按一下用户按钮会在显示当前摄氏度温度和均值之间切换。均值可在之后用作校准点,作为已知温度来提高温度测量的整体精度$ J6 h4 \9 ?/ Z+ Y2 G+ i4 J

7 @: `* x/ a* Z( R

! F1 P( N3 U( J3 i6 F3 I2.2.1 温度传感器校准* ]2 T- T% K9 I% ]! S
在制造过程期间,温度传感器校准数据存储于受保护的存储区中,用户可从该处读取并使用该数据以提高温度测量的精度。生产过程中测量两个点的校准数据:
2 O- L4 T' x1 p7 e6 x+ D. u" j: T室温 (30 °C ± 5°C):TS_CAL1
7 B( s5 T; |* L6 d9 s( Q* o高温 (110 °C ± 5°C):TS_CAL2。2 j8 X; X# J( f- i3 R/ W
若需获取校准数据所存储的存储器地址,请参考产品数据手册。. L' r0 r% N; a$ M+ ]" F5 n
温度传感器校准数据为 12 位的无符号数 (存储于 2 个字节中),由 STM32L1x ADC 在使用3 V (± 10 mV)参考电压时获得。0 P$ L* S6 C, v5 l9 `  ~  x1 `
例程初始化时,会检查工厂校准数据的有效性。若存储器中存在数据,则用它做温度计算。& K  @% e% I& w+ _4 w9 i9 R- z/ y
否则,则验证并使用用户校准期间存储在 EEPROM 存储区中的校准数据。若用户校准数据也不可用,则使用默认值计算。工厂校准或用户校准数据为温度测量提供了较好的精度。
$ g8 w" W4 g" k5 a# d9 E默认校准数据基于典型温度传感器特性的统计数据,由于制造过程期间温度传感器特性变化较大,所以使用默认值可能会导致温度估计的精度较差。建议使用工厂校准数据或对温度传感器执行两点校准,这代表了温度传感器的个体特性,可得到较好精度的测量。6 h+ s. `9 V! j

8 p( [3 Y8 R$ r( Q3 _" R
4 g* Q* _. ~7 j* M4 b  A
Y1[)6I_7I1HDZ7WAIJYV99O.png
- I9 A, w* x+ i$ G, v, _5 X
5 N9 d, C4 ^: d9 j7 A可由 ADC 使用线性估计采样,从数字值 ValTS 计算温度。若两个校准点 C1 和 C2 的坐标已知,则可使用此方法,如 2 中所示。; g8 o( \- q3 T" x4 `9 S9 Y3 }/ Q
当前温度可如下计算,其中低温坐标对表示为(TC1, ValC1),高温对为(TC2, ValC2):0 S. z! ]( J  e- ?" L

2 t% }! k+ l7 d/ }  C  w

# L8 V& G& x3 [1 I ~RRKJBLTYNLCM{`5(SRRRZ2.png 5 ^# `' \5 \6 J
9 S" H+ n$ Y/ C; b" t. y" d

: }1 T! z: [$ z) _* X2 X使用工厂校准数据,公式可重写如下:$ o% A, f' r( }
3 S7 S* J/ d' R$ N9 O
8 J$ A# [0 R( |+ w% m' v
QJFDXRUSKO`}H9R%8WPF)`Q.png " R( w  Z6 f. G0 o$ y: O, U  Q

7 ^; ]# R9 E* Y5 Z' C
/ J! Y* m( _; |0 ^# k
2.3 温度传感器估计的工程容差
1 m2 |2 Q! B. I& r4 c* k 2 中可以看到,两点校准方法极大提高了测量精度。温度测量的偏移主要有两个原因:校准点的温度裕度及传感器的线性。其它造成偏移的原因,例如 ADC 参考电压裕度可被有效降低。对于使用 3 V (± 10 mV)参考电压测量的工厂校准值则可忽略。, j2 ~9 t. \5 @3 `* s
温度估计的工程容差示于 2 中,它有两个边界线:最小偏移值 (绿色)和最大偏移值(蓝色)。校准点之间的区域具有恒定的容差,比外面的容差稍微增加。因此,校准点的建议位置应与测量范围的最大和最小值尽量接近。3 T; z* ^+ L" y- `4 U
3 n' f( b% n6 _, b+ D
% J7 T, s2 J0 {0 U/ d, v

* z6 c# L) G3 [- Z完整版请查看:附件
$ b8 O' g: B, N3 E) w" x0 |

9 L/ }+ i. R7 s. h6 D3 g& L
' z" P7 ]' w, B* [; l9 ?

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 手机版