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

STM32L1x 温度传感器应用举例

[复制链接]
STMCU小助手 发布时间:2022-7-17 21:59
前言! x3 L) T: q& w3 D' `0 C3 F0 o
本应用笔记说明了使用 STM32L-DISCOVERY 和 32L152CDISCOVERY 板,实现简单温度测量应用的方法。本文讲解的解决方案使用 STM32L1x 微控制器集成的温度传感器。本文讲解了使用工厂或用户校准,提高温度传感器精度的方法。8 _+ {- g1 z' \) k! T  \/ e
演示应用不需要任何额外硬件。当使用相关固件更新 STM32L-DISCOVERY 和32L152CDISCOVERY,并通过连至主机 PC 的 USB 线给板子上电之后,应用即可显示STM32L1x 微控制器的温度。
. R9 A) ^4 A6 H温度传感器例程代码包含在 STM32L1x 探索固件包中 (STSW-STM32072),可从http://www.st.com 获得。
8 d- W. ?! @4 `$ f参考文档2 L3 d; ?" u& T% i
• STM32L-DISCOVERY 和 32L152CDISCOVERY 用户手册 (UM1079) , v1 G6 O. X% L, Y1 [
• STM32L-DISCOVERY 和 32L152CDISCOVERY 板软件开发工具入门 (UM1451) 8 k  p( t  ^0 f' V: P9 O$ d9 d
• STM32L1x 电流消耗测量和触摸感应演示 (AN3413) # J  h) E$ ?; s
• 超低功耗 STM32L15xx6/8/B 数据手册2 n' [/ p% u/ ^9 c; @3 A9 [2 O
• 超低功耗 STM32L151xC 和 STM32L152xC 数据手册
/ x3 x& j) I3 d  V• 超低功耗 STM32L151xD 和 STM32L152xD 数据手册$ ^$ L; S: k5 O" p. Y4 I) ^0 _
• 超低功耗 STM32L162xD 数据手册
1 m1 I, ^) p0 \. X% q5 d0 W• STM32L100xx、STM32L151xx、STM32L152xx 和 STM32L162xx 基于 ARM 内核的 32 位高级 MCU 参考手册 (RM0038)( |8 n( c+ n/ O" L

/ E5 G. P- O; d' M- ~ FEC$YHLU6EMR0UIG)29OFCF.png   s6 C$ l5 D7 K8 q

1 @* L* E' ]' @1 应用概述+ W; N" m3 f! i; R4 {  `! i/ C
本章说明了温度传感器的工作原理以及如何使用 STM32L-DISCOVERY 或32L152CDISCOVERY 上内置的 STM32L1x 微控制器进行温度测量。
+ D$ B/ k' h# O) ^9 |; e后面会简单说明如何实现示例温度测量应用。7 X! \9 J( x; y" O! f0 m
在整个文档中,使用 STM32L1xxDISCOVERY 表示 STM32L-DISCOVERY 或32L152CDISCOVERY 评估套件。
" R/ x, |7 b) |$ p
# v4 [. x8 q' n& k6 r3 K) J
1.1 温度传感器
3 E; r1 g3 R2 T8 S% [7 _( t) b集成于 STM32L1x 微控制器中的温度传感器可输出与器件芯片结温成正比的模拟电压。
. j, q, s$ C/ Q% {4 o0 [注: 请注意,传感器提供的温度信息为芯片结温 (半导体表面的实际温度),它可能与环境温度不同。若需更详细信息,请参见产品数据手册的 热特性 一节。
6 [# A$ v; y+ o: [+ I! H/ Y集成的温度传感器提供了较好的线性特性,典型偏差为 ± 1%。其温度范围等于器件的温度范围 (–40 °C 到 85 °C),最大结温为 150 °C。
/ b, W2 i5 v  n2 H2 l9 T传感器的线性很好,但可交换性很差,必须对其校准以得到较好的总体精度。若应用设计为仅测量温度的相对变化,则不需要校准温度传感器。
) R9 N  P& r; J+ v) }3 h3 A# i! H' m
5 z$ ?' r9 x8 `/ j+ l5 |3 }# q( r
1.2 温度测量和数据处理
  l9 i+ u" g# x- c+ n温度传感器的输出在芯片内部连至 STM32L1x 中 ADC (模数转换器)的通道 16(ADC_IN16), ADC 通道用于采样和转换温度传感器的输出电压。必须进一步处理原始ADC 数据,以便用标准温度单位显示温度 (摄氏度、华氏度、开氏温度)。+ X8 b3 [2 G! y& W
ADC 参考电压 (VDDA = VREF+)连至 STM32L1xxDISCOVERY 板的 3 V VDD 电源。若不知道 VDD 的精确值,则与使用电池工作的应用一样,必须对它测量以得到正确的总体 ADC转换范围 (见下节的详细信息)。
0 @- s) I! A; ]. B: i1 E
  c& V6 A3 J- m, k  z3 A
电池供电设备上的温度测量
! Q1 F! T1 x$ Z) I: ^/ f0 z若器件直接用电池供电,则微控制器的供电电压会有变化。若 ADC 参考电压连至 VDDA,即低引脚数封装器件的连接方式,ADC 转换的值会随电池电压漂移。需要知道供电电压以补偿该电压漂移。可使用芯片的内部电压参考 (VREFINT)来确定实际供电电压 (VDDA)。
# ^- n2 }  Z6 Z7 aADC_IN17 内部参考输入上的 ADC 采样值 (Val_VREFINT)可由下式表示:
% k3 K9 S: R; _& B" `% l$ Z" D
) D% R+ D, P( h5 `0 ]+ v% ^0 q( f) _
: K7 O2 F8 v, O; p+ b4 r4 Q* U
H2BX]JDU)BY[IPC3DRIHBM3.png 4 L; D5 b. {5 V0 E, ^8 N5 l0 p- Z

' m& f7 A2 x* L& ?: h: ]. _8 \$ h5 _
精确的芯片内部参考电压 (VREFINT)由 ADC 单独采样,在制造过程期间,将每个器件的对应转换值 (Val_VREFINT_CAL)储存于受保护的存储区,其地址为产品数据手册中规定的VREFINT_CAL。内部参考电压校准数据为 12 位的无符号数 (右对齐,存储于 2 个字节中),由用于参考的 STM32L1x ADC 获取
7 \( a% |( [, @# V8 t
  S/ S% ]2 U2 v7 l8 F7 j# `) ^) G
# e4 L6 t* S' f# v# w" ?( C" k, E9 u
BL}ONH[COVZ$B6]FONVW5@R.png % S7 \( o) O3 ~3 ?6 f' Q% a
! r  O6 S, g& W
工厂测量的校准数据总体精度为 ± 5 mV (若需更详细信息,请参考数据手册)。2 u2 h% b1 @2 L
我们可使用上式确定实际的 VDDA 电压,如下所示:
5 z! K8 T- W6 n) [% N5 J# ?0 j+ `2 c7 l) K/ {6 {1 t
Z{T]$LI~`3DDN7SVRWID(Q9.png
; w( b6 M2 z! {, B) n4 c2 `/ o/ C# d
当采样温度传感器数据 ValTS_bat 时,ADC 量程会参考前面步骤中确定的实际 VDDA 值。因为温度传感器工厂校准数据是在 ADC 量程设为 3 V 时获得的,所以我们需要归一化ValTS_bat,以得到 ADC 量程为 3 V 时应获得的温度传感器数据 (ValTS)。可使用下式归一化 ValTS_bat: $ U4 f/ @0 Y# {% O" H

" ]! Q. P9 y0 p; |

0 }1 U2 U) X# P4 d J}UA%}$JW4D22@T$KE19(BM.png * N' a3 t$ F' G
/ X; B8 Y5 X0 ~( `, s% ^% e
若 ADC 参考为 3 V 供电 (STM32L1 Discovery 的情况),则不需要这样归一化,可直接使用采样温度数据确定温度,如2.2.1 章节:温度传感器校准中所述。: D+ e$ d  [' k6 r0 A

* I: N9 h; p' F* [! S- d$ Q
1.3 应用程序示例说明
6 y5 g  g0 f; ]0 F8 ]4 ~  S8 B每 2 秒,应用从温度传感器电压获取 16 个采样。使用四分均值算法,对 ADC 原始数据滤波、平均,以降低电源系统的噪声。将结果重新计算为标准的温度测量单位下的数值 (在本例中为 °C)。5 l. z8 q$ G# A/ r, F
ADC 原始数据或当前温度值每 2 秒更新一次 LCD 显示,单位为摄氏度。用户可通过按用户按钮在两种温度数据表示之间切换。" |9 [) g" V+ e+ j& W$ Z
为演示 STM32L1x 超低功耗微控制器的低功耗能力,在温度传感器数据测量间歇期, CPU切换至停止模式, RTC (实时时钟)唤醒设为 2 秒。 ADC 数据获取和数据传输由直接存储器访问 (DMA)管理在此阶段 CPU 处于低功耗睡眠模式。仅在初始化阶段和数据处理期间, CPU 才处于运行模式,其频率为 16 MHz (基于 HSI 振荡器时钟)。9 H8 j- r/ h9 L( P
6 h- `8 V7 x3 E
0 i8 t/ {7 {& a7 Z
ZY4D5`$TCPVMXXD8%CI_$MD.png 4 _' H. \7 A, k! Q" x# v4 w3 U3 S6 g

7 d1 _; o5 u8 U7 j# @

! B7 o9 A4 t. l" q  J2 起始
! r: z; P) z4 j5 N在开始运行例程之前,必须如下节中所述更新固件和配置硬件。  I  f3 e( _+ i& z" t5 [
2.1 搭建板子运行环境6 i$ a1 P7 a* Q7 J
更新固件0 h- }: @7 z; S) N5 Y. B
需要使用本应用笔记相关的固件更新 STM32L1x 程序存储器。若需如何更新固件的信息,请阅读项目目录中的 ‘readme.txt’ 文件。& f0 l9 m' e& h

# p$ A  t- ^4 f! n7 j
例程会用到的硬件元件
1 \, g* \" E2 S" o本应用例程使用 STM32L1xxDISCOVERY 板上现成的硬件元件:STM32L1x 微控制器上集成的外设、 6 位 LCD 玻璃显示器、用户按钮。不需额外元件。
& _+ Y2 [; n5 I6 w% F
; m& H$ @% V9 }5 \
STM32L1xxDISCOVERY 硬件设置
" l' ]4 O6 B. ]5 ?  I4 V0 BIDD 跳线 JP1 必须置于 ON 位置。
- Y" u4 Q% ~$ L. F* b. z  g4 ~必须安装 CN3 上的两个跳线,以通过串行线调试 (SWD)接口启用 STM32L1x 微控制器和 ST-Link 调试工具之间的通信。% O+ u% c) D. X7 N  p% ]6 r
注: 所有焊桥必须为 UM1079 中所述的默认状态。
8 ^3 y, G, @. M  v4 @2.2 运行演示例程
/ j' g/ j, E" E6 i4 {- Z  Z; Z运行演示例程很简单。
& f$ j( T% N* {% q6 I/ M1 j/ j开机后,例程首先会显示欢迎消息,然后立即显示电流温度,单位为摄氏度,刷新率为 2秒。当按下用户按钮后,显示屏会显示 ADC 获取的一组 16 个样例的平均值。再按一下用户按钮会在显示当前摄氏度温度和均值之间切换。均值可在之后用作校准点,作为已知温度来提高温度测量的整体精度( v  c9 ?6 D6 t& F2 l4 Y9 o0 C2 [
. O, K; ?  |/ v
7 P; P/ j5 V: F$ O
2.2.1 温度传感器校准
1 [- k% f4 O# n! L6 I在制造过程期间,温度传感器校准数据存储于受保护的存储区中,用户可从该处读取并使用该数据以提高温度测量的精度。生产过程中测量两个点的校准数据:( d. ~: S/ o8 F. z1 u6 m
室温 (30 °C ± 5°C):TS_CAL1. A' K5 J! n$ t1 ?# x0 H6 o% c5 A
高温 (110 °C ± 5°C):TS_CAL2。, o! H! p, c. a4 K( z! d
若需获取校准数据所存储的存储器地址,请参考产品数据手册。7 c5 f9 d# Z: P$ D
温度传感器校准数据为 12 位的无符号数 (存储于 2 个字节中),由 STM32L1x ADC 在使用3 V (± 10 mV)参考电压时获得。
7 J1 g# ?& _$ z4 H例程初始化时,会检查工厂校准数据的有效性。若存储器中存在数据,则用它做温度计算。, B; L) z0 N7 t/ j) {) f
否则,则验证并使用用户校准期间存储在 EEPROM 存储区中的校准数据。若用户校准数据也不可用,则使用默认值计算。工厂校准或用户校准数据为温度测量提供了较好的精度。) t/ f- X' @5 O$ B  q+ L
默认校准数据基于典型温度传感器特性的统计数据,由于制造过程期间温度传感器特性变化较大,所以使用默认值可能会导致温度估计的精度较差。建议使用工厂校准数据或对温度传感器执行两点校准,这代表了温度传感器的个体特性,可得到较好精度的测量。1 [2 [0 u5 W3 D6 b& G

0 I" k( r% s3 l: N

6 t# _% N% t+ H1 {& _3 T9 W* @ Y1[)6I_7I1HDZ7WAIJYV99O.png " y+ c3 v) B/ s' C
' X8 O/ v: g* U3 f( \' x; b
可由 ADC 使用线性估计采样,从数字值 ValTS 计算温度。若两个校准点 C1 和 C2 的坐标已知,则可使用此方法,如 2 中所示。" f! C( [4 U, T6 l/ C7 \9 P
当前温度可如下计算,其中低温坐标对表示为(TC1, ValC1),高温对为(TC2, ValC2):% `1 ?8 S( z5 O! q2 N% u
& L; I, R- F0 e$ S( W9 h. `
& R. B1 L, [% g
~RRKJBLTYNLCM{`5(SRRRZ2.png * Y9 k8 Y, V! h, u  C

  j" N2 t4 f5 M9 N/ ~3 \2 V" D
6 B1 w% |) {' S, H
使用工厂校准数据,公式可重写如下:$ \! j" [8 b( x" Y
$ j; Z7 A; @0 H) x1 N: r7 R% v
' g& ~' I% S( X, t& X4 z# j3 S
QJFDXRUSKO`}H9R%8WPF)`Q.png . v9 L' N: Q' P: x7 T# z9 U# J

" V& @& F) R2 v/ A- x4 |

1 i  x# f( d3 l8 U* @  h2 s2.3 温度传感器估计的工程容差% u9 ]4 K5 E( x. {
2 中可以看到,两点校准方法极大提高了测量精度。温度测量的偏移主要有两个原因:校准点的温度裕度及传感器的线性。其它造成偏移的原因,例如 ADC 参考电压裕度可被有效降低。对于使用 3 V (± 10 mV)参考电压测量的工厂校准值则可忽略。
( [& J% q1 N9 e) |- {$ m! e温度估计的工程容差示于 2 中,它有两个边界线:最小偏移值 (绿色)和最大偏移值(蓝色)。校准点之间的区域具有恒定的容差,比外面的容差稍微增加。因此,校准点的建议位置应与测量范围的最大和最小值尽量接近。
2 b) w+ g! A5 V# A3 E. {
9 }# S$ S* ^7 z+ K, e
$ E7 o) p2 Q2 ^

2 I( V. N. V% |" ]# y8 A完整版请查看:附件
7 d# g0 C1 h4 H- x

* z: }% {/ b: H. B7 \. l( a
/ S" j2 V  Q7 p7 s  \

DM00035957_ZHV3.pdf

下载

438.29 KB, 下载次数: 1

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

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版