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

STM32L1x 温度传感器应用举例

[复制链接]
STMCU小助手 发布时间:2022-7-17 21:59
前言
1 S# L0 m' y. \; m本应用笔记说明了使用 STM32L-DISCOVERY 和 32L152CDISCOVERY 板,实现简单温度测量应用的方法。本文讲解的解决方案使用 STM32L1x 微控制器集成的温度传感器。本文讲解了使用工厂或用户校准,提高温度传感器精度的方法。1 a# _) p7 g$ \6 w& d( d8 S
演示应用不需要任何额外硬件。当使用相关固件更新 STM32L-DISCOVERY 和32L152CDISCOVERY,并通过连至主机 PC 的 USB 线给板子上电之后,应用即可显示STM32L1x 微控制器的温度。5 x+ n4 v5 U' O3 l/ b
温度传感器例程代码包含在 STM32L1x 探索固件包中 (STSW-STM32072),可从http://www.st.com 获得。! C2 M- G8 B3 _. v) M) S" d0 c
参考文档1 q1 N/ x7 r- x+ i, o
• STM32L-DISCOVERY 和 32L152CDISCOVERY 用户手册 (UM1079) . R: K) F& d7 v( J
• STM32L-DISCOVERY 和 32L152CDISCOVERY 板软件开发工具入门 (UM1451) 8 [% D0 T& c7 s" b  e& T- ~# o$ |
• STM32L1x 电流消耗测量和触摸感应演示 (AN3413) * f+ {6 N1 W% H! p& l0 r) U
• 超低功耗 STM32L15xx6/8/B 数据手册
; q  u8 d& ]: V% g9 h# l7 |2 F$ }• 超低功耗 STM32L151xC 和 STM32L152xC 数据手册
& }  G; W& l& M1 o: w• 超低功耗 STM32L151xD 和 STM32L152xD 数据手册
# _& y$ U0 @  `8 R0 F& \• 超低功耗 STM32L162xD 数据手册, L3 R: o4 `  [) L0 I7 `
• STM32L100xx、STM32L151xx、STM32L152xx 和 STM32L162xx 基于 ARM 内核的 32 位高级 MCU 参考手册 (RM0038)8 n$ Y9 q! {' w  Y3 m+ @, g
. `  X# Q+ ^- q4 O, x& C) F
FEC$YHLU6EMR0UIG)29OFCF.png 2 w. G6 @- M# v1 @6 Z) {

& d8 n1 l( s$ f! r1 应用概述( @+ d8 j" j$ o" ~) V, Z
本章说明了温度传感器的工作原理以及如何使用 STM32L-DISCOVERY 或32L152CDISCOVERY 上内置的 STM32L1x 微控制器进行温度测量。
# K. X+ k% v6 g" U( ?$ G后面会简单说明如何实现示例温度测量应用。6 l" R8 }; A& I6 ]1 D) h9 J
在整个文档中,使用 STM32L1xxDISCOVERY 表示 STM32L-DISCOVERY 或32L152CDISCOVERY 评估套件。; [+ G) P1 w, B0 y4 B2 ^

! V4 n; T  w+ h* ~/ ^
1.1 温度传感器
7 s- v0 P* r8 z4 E$ {' n集成于 STM32L1x 微控制器中的温度传感器可输出与器件芯片结温成正比的模拟电压。9 K5 D* O: u! P2 p3 D% R7 Y
注: 请注意,传感器提供的温度信息为芯片结温 (半导体表面的实际温度),它可能与环境温度不同。若需更详细信息,请参见产品数据手册的 “ 热特性 ” 一节。
3 o7 w% L4 n1 S# |7 |集成的温度传感器提供了较好的线性特性,典型偏差为 ± 1%。其温度范围等于器件的温度范围 (–40 °C 到 85 °C),最大结温为 150 °C。/ Q8 C8 C/ M0 s: i( q
传感器的线性很好,但可交换性很差,必须对其校准以得到较好的总体精度。若应用设计为仅测量温度的相对变化,则不需要校准温度传感器。
- j, @1 z7 ~% b1 e6 D2 _3 H$ W* |: O+ X  D

0 t6 r$ j6 ^: V; ~! V1.2 温度测量和数据处理
1 x3 q4 ~6 `- [% L! ~% B温度传感器的输出在芯片内部连至 STM32L1x 中 ADC (模数转换器)的通道 16(ADC_IN16), ADC 通道用于采样和转换温度传感器的输出电压。必须进一步处理原始ADC 数据,以便用标准温度单位显示温度 (摄氏度、华氏度、开氏温度)。
. v/ P5 N4 v# W* MADC 参考电压 (VDDA = VREF+)连至 STM32L1xxDISCOVERY 板的 3 V VDD 电源。若不知道 VDD 的精确值,则与使用电池工作的应用一样,必须对它测量以得到正确的总体 ADC转换范围 (见下节的详细信息)。+ E7 U' J' _  Y0 d3 T* F

4 K  n8 B) l" A$ Y' O8 D' O
电池供电设备上的温度测量5 g4 H, ~- E( J" n( ^, f$ D0 ^1 Y0 k
若器件直接用电池供电,则微控制器的供电电压会有变化。若 ADC 参考电压连至 VDDA,即低引脚数封装器件的连接方式,ADC 转换的值会随电池电压漂移。需要知道供电电压以补偿该电压漂移。可使用芯片的内部电压参考 (VREFINT)来确定实际供电电压 (VDDA)。
  O9 {+ X: V  _' p, `ADC_IN17 内部参考输入上的 ADC 采样值 (Val_VREFINT)可由下式表示:
5 v' |# W  G  f8 a3 e0 i: T6 ~  W$ S. P
$ v' h; ?2 l2 I; Q: |
H2BX]JDU)BY[IPC3DRIHBM3.png ( X2 H2 r5 m9 r0 }8 y7 x# \$ ?' ~
! K) Z5 s" W' A3 R
精确的芯片内部参考电压 (VREFINT)由 ADC 单独采样,在制造过程期间,将每个器件的对应转换值 (Val_VREFINT_CAL)储存于受保护的存储区,其地址为产品数据手册中规定的VREFINT_CAL。内部参考电压校准数据为 12 位的无符号数 (右对齐,存储于 2 个字节中),由用于参考的 STM32L1x ADC 获取
2 M5 R9 D" r( {2 m7 V" Q! X( c  U2 q3 U
* w+ h$ n1 L( z; H9 c
BL}ONH[COVZ$B6]FONVW5@R.png ! R" c8 u2 |  ]/ {9 y4 O3 J
) r* w, A  ~" T. w
工厂测量的校准数据总体精度为 ± 5 mV (若需更详细信息,请参考数据手册)。
5 x6 y" Y3 q3 d3 K/ P我们可使用上式确定实际的 VDDA 电压,如下所示:
' [6 p: N5 j& {
- k7 M: E3 a% A" A; O Z{T]$LI~`3DDN7SVRWID(Q9.png ; G- c1 ~8 X2 u* z3 o* U+ A3 v1 k
# F$ `5 t5 }" x, ~4 X5 h
当采样温度传感器数据 ValTS_bat 时,ADC 量程会参考前面步骤中确定的实际 VDDA 值。因为温度传感器工厂校准数据是在 ADC 量程设为 3 V 时获得的,所以我们需要归一化ValTS_bat,以得到 ADC 量程为 3 V 时应获得的温度传感器数据 (ValTS)。可使用下式归一化 ValTS_bat: 5 Q! `% X$ @' }6 ?0 F6 A" V; ?
$ C1 d! ^8 `) y( v' ^3 \0 W
2 I: X8 [9 Q$ U" {' z& H
J}UA%}$JW4D22@T$KE19(BM.png " j. C0 P, g& j- ]4 r- ~
1 {  u: @8 s* H# X
若 ADC 参考为 3 V 供电 (STM32L1 Discovery 的情况),则不需要这样归一化,可直接使用采样温度数据确定温度,如第 2.2.1 章节:温度传感器校准中所述。' n9 f2 e& M) V7 n) Y, k6 W( o

) g3 ?, L1 Q# L6 @
1.3 应用程序示例说明
8 o9 U# }1 c( @$ w: n每 2 秒,应用从温度传感器电压获取 16 个采样。使用四分均值算法,对 ADC 原始数据滤波、平均,以降低电源系统的噪声。将结果重新计算为标准的温度测量单位下的数值 (在本例中为 °C)。  I! W! M( V3 R8 x/ j9 X! {8 U
ADC 原始数据或当前温度值每 2 秒更新一次 LCD 显示,单位为摄氏度。用户可通过按用户按钮在两种温度数据表示之间切换。
, I6 f! h. F( z* ^0 F& i) ]5 ^为演示 STM32L1x 超低功耗微控制器的低功耗能力,在温度传感器数据测量间歇期, CPU切换至停止模式, RTC (实时时钟)唤醒设为 2 秒。 ADC 数据获取和数据传输由直接存储器访问 (DMA)管理在此阶段 CPU 处于低功耗睡眠模式。仅在初始化阶段和数据处理期间, CPU 才处于运行模式,其频率为 16 MHz (基于 HSI 振荡器时钟)。
6 e2 q+ a* s: R/ {5 u9 E9 q
+ ]: t0 Z. \/ n$ K; C: R! t
3 [& x! y4 v% F% q$ {, G$ ~
ZY4D5`$TCPVMXXD8%CI_$MD.png 1 F3 z) W% H' [

+ H5 j8 `8 J6 @+ `5 s1 a

" u' c; E; o/ x+ ~8 I2 起始& K  V% {# `4 K7 Q  o3 l
在开始运行例程之前,必须如下节中所述更新固件和配置硬件。, O; l+ m% ?5 o0 J0 O
2.1 搭建板子运行环境
3 ^  `2 j' [/ U9 t更新固件* p8 D1 ~1 d/ Y# |
需要使用本应用笔记相关的固件更新 STM32L1x 程序存储器。若需如何更新固件的信息,请阅读项目目录中的 ‘readme.txt’ 文件。4 e! Y' b* o2 r& N$ W

  N( p3 s/ q( w# G% h: ^
例程会用到的硬件元件/ ?  T& X" m5 `. ?
本应用例程使用 STM32L1xxDISCOVERY 板上现成的硬件元件:STM32L1x 微控制器上集成的外设、 6 位 LCD 玻璃显示器、用户按钮。不需额外元件。0 z% r& D7 k5 X2 d6 S" h7 Y3 g

7 a" o6 {& g0 S, ~3 w
STM32L1xxDISCOVERY 硬件设置' i0 ^# k4 V" I: |: w# W1 L2 @
IDD 跳线 JP1 必须置于 ON 位置。
+ U- M7 I' S. a) ?* Y必须安装 CN3 上的两个跳线,以通过串行线调试 (SWD)接口启用 STM32L1x 微控制器和 ST-Link 调试工具之间的通信。* T, `& c. _6 l2 g+ Z1 r$ V
注: 所有焊桥必须为 UM1079 中所述的默认状态。# C% o8 Q# S# w: j" r7 @# O1 ?8 o
2.2 运行演示例程. H8 @$ U* k/ L4 a1 e6 Z5 s3 |
运行演示例程很简单。
  L  s3 r1 I8 a# d开机后,例程首先会显示欢迎消息,然后立即显示电流温度,单位为摄氏度,刷新率为 2秒。当按下用户按钮后,显示屏会显示 ADC 获取的一组 16 个样例的平均值。再按一下用户按钮会在显示当前摄氏度温度和均值之间切换。均值可在之后用作校准点,作为已知温度来提高温度测量的整体精度。
; S) x$ s* n) n5 x
; M, L* D) G: m# u& C: z6 S% e

5 @4 W" h1 G6 N8 D' T. A2.2.1 温度传感器校准
- @# \7 F1 H" ^& \* \. R在制造过程期间,温度传感器校准数据存储于受保护的存储区中,用户可从该处读取并使用该数据以提高温度测量的精度。生产过程中测量两个点的校准数据:6 x, w% u5 ~+ G1 s
• 室温 (30 °C ± 5°C):TS_CAL11 O5 U" X+ H, {0 O+ n! v/ N
• 高温 (110 °C ± 5°C):TS_CAL2。
( |: V! d3 V5 C! ^8 M3 i若需获取校准数据所存储的存储器地址,请参考产品数据手册。9 O- ~! _* J( i1 L7 ]
温度传感器校准数据为 12 位的无符号数 (存储于 2 个字节中),由 STM32L1x ADC 在使用3 V (± 10 mV)参考电压时获得。5 w( o, u' [% W2 ^
例程初始化时,会检查工厂校准数据的有效性。若存储器中存在数据,则用它做温度计算。
% h0 c1 M6 F4 Q& v: a否则,则验证并使用用户校准期间存储在 EEPROM 存储区中的校准数据。若用户校准数据也不可用,则使用默认值计算。工厂校准或用户校准数据为温度测量提供了较好的精度。
( l: p3 l8 ^5 m6 }默认校准数据基于典型温度传感器特性的统计数据,由于制造过程期间温度传感器特性变化较大,所以使用默认值可能会导致温度估计的精度较差。建议使用工厂校准数据或对温度传感器执行两点校准,这代表了温度传感器的个体特性,可得到较好精度的测量。$ B! L+ d" k% i! i

$ U( q( ?+ T3 ]6 Y6 l' L6 y
# a# Q, b3 I7 A7 U% ]
Y1[)6I_7I1HDZ7WAIJYV99O.png
4 A5 \. K! R* t9 E: l8 |6 I
8 O+ s8 x; a8 o7 [% u! J可由 ADC 使用线性估计采样,从数字值 ValTS 计算温度。若两个校准点 C1 和 C2 的坐标已知,则可使用此方法,如图 2 中所示。
" A6 s: I" F7 L( i- S/ q3 Z; @4 \0 u当前温度可如下计算,其中低温坐标对表示为(TC1, ValC1),高温对为(TC2, ValC2):
/ _3 x, S& @7 E6 C5 U6 Y5 o& b' o5 t
  t: E5 q7 o: W) w

8 O$ o$ m' W2 ^2 k- d1 v4 E ~RRKJBLTYNLCM{`5(SRRRZ2.png
0 P4 n. n; K1 p9 J+ i, \
/ d  J7 p: V. n) W8 X

$ t! p6 n( k" B# }9 Y: x使用工厂校准数据,公式可重写如下:
1 L  F! O' l- k: U! y
; \; i! B( |; j' o9 L
3 q9 x, D2 a! a- z8 @
QJFDXRUSKO`}H9R%8WPF)`Q.png 6 m1 ^# j- D0 ]6 D
: |7 W/ j& E* O6 I8 i- C- B

! u3 b5 \' y! S2.3 温度传感器估计的工程容差: Q$ _$ }+ Q( {  E+ w5 s" x  t1 X8 H
在图 2 中可以看到,两点校准方法极大提高了测量精度。温度测量的偏移主要有两个原因:校准点的温度裕度及传感器的线性。其它造成偏移的原因,例如 ADC 参考电压裕度可被有效降低。对于使用 3 V (± 10 mV)参考电压测量的工厂校准值则可忽略。& a% ]5 f# l& v4 Y2 L+ ^3 f$ X; G, [
温度估计的工程容差示于图 2 中,它有两个边界线:最小偏移值 (绿色)和最大偏移值(蓝色)。校准点之间的区域具有恒定的容差,比外面的容差稍微增加。因此,校准点的建议位置应与测量范围的最大和最小值尽量接近。
7 z4 P$ j& D1 t7 c- r# a& a
8 t7 Z. v+ z+ }, `' ?2 t( s% _
- v, F1 [, R( O3 {, H! n
9 W* h6 T( z; s  f& C
完整版请查看:附件

3 J" H3 g6 ~7 U9 A! V$ K- C. C& U! B

/ B4 n6 {' V2 V7 G8 F

DM00035957_ZHV3.pdf

下载

438.29 KB, 下载次数: 1

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

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版