STM32L1x 温度传感器应用举例
前言
本应用笔记说明了使用 STM32L-DISCOVERY 和 32L152CDISCOVERY 板,实现简单温度测量应用的方法。本文讲解的解决方案使用 STM32L1x 微控制器集成的温度传感器。本文讲解了使用工厂或用户校准,提高温度传感器精度的方法。
演示应用不需要任何额外硬件。当使用相关固件更新 STM32L-DISCOVERY 和32L152CDISCOVERY,并通过连至主机 PC 的 USB 线给板子上电之后,应用即可显示STM32L1x 微控制器的温度。
温度传感器例程代码包含在 STM32L1x 探索固件包中 (STSW-STM32072),可从http://www.st.com 获得。
参考文档
• STM32L-DISCOVERY 和 32L152CDISCOVERY 用户手册 (UM1079)
• STM32L-DISCOVERY 和 32L152CDISCOVERY 板软件开发工具入门 (UM1451)
• STM32L1x 电流消耗测量和触摸感应演示 (AN3413)
• 超低功耗 STM32L15xx6/8/B 数据手册
• 超低功耗 STM32L151xC 和 STM32L152xC 数据手册
• 超低功耗 STM32L151xD 和 STM32L152xD 数据手册
• 超低功耗 STM32L162xD 数据手册
• STM32L100xx、STM32L151xx、STM32L152xx 和 STM32L162xx 基于 ARM 内核的 32位高级 MCU 参考手册 (RM0038)
以上文档可从 http://www.st.com 获得。
1 应用概述
本章说明了温度传感器的工作原理以及如何使用 STM32L-DISCOVERY 或32L152CDISCOVERY 上内置的 STM32L1x 微控制器进行温度测量
后面会简单说明如何实现示例温度测量应用。
在整个文档中,使用 STM32L1xxDISCOVERY 表示 STM32L-DISCOVERY 或32L152CDISCOVERY 评估套件。
1.1 温度传感器
集成于 STM32L1x 微控制器中的温度传感器可输出与器件芯片结温成正比的模拟电压。
注: 请注意,传感器提供的温度信息为芯片结温 (半导体表面的实际温度),它可能与环境温度不同。若需更详细信息,请参见产品数据手册的 “ 热特性 ” 一节。
集成的温度传感器提供了较好的线性特性,典型偏差为 ± 1%。其温度范围等于器件的温度范围 (–40 °C 到 85 °C),最大结温为 150 °C。
传感器的线性很好,但可交换性很差,必须对其校准以得到较好的总体精度。若应用设计为仅测量温度的相对变化,则不需要校准温度传感器。
1.2 温度测量和数据处理
温度传感器的输出在芯片内部连至 STM32L1x 中 ADC (模数转换器)的通道 16(ADC_IN16), ADC 通道用于采样和转换温度传感器的输出电压。必须进一步处理原始ADC 数据,以便用标准温度单位显示温度 (摄氏度、华氏度、开氏温度)。
ADC 参考电压 (VDDA = VREF+)连至 STM32L1xxDISCOVERY 板的 3 V VDD 电源。若不知道 VDD 的精确值,则与使用电池工作的应用一样,必须对它测量以得到正确的总体 ADC转换范围 (见下节的详细信息)。
电池供电设备上的温度测量
若器件直接用电池供电,则微控制器的供电电压会有变化。若 ADC 参考电压连至 VDDA,即低引脚数封装器件的连接方式,ADC 转换的值会随电池电压漂移。需要知道供电电压以补偿该电压漂移。可使用芯片的内部电压参考 (VREFINT)来确定实际供电电压 (VDDA)。ADC_IN17 内部参考输入上的 ADC 采样值 (Val_VREFINT)可由下式表示
精确的芯片内部参考电压 (VREFINT)由 ADC 单独采样,在制造过程期间,将每个器件的对应转换值 (Val_VREFINT_CAL)储存于受保护的存储区,其地址为产品数据手册中规定的VREFINT_CAL。内部参考电压校准数据为 12 位的无符号数 (右对齐,存储于 2 个字节中),由用于参考的 STM32L1x ADC 获取
工厂测量的校准数据总体精度为 ± 5 mV (若需更详细信息,请参考数据手册)。
我们可使用上式确定实际的 VDDA 电压,如下所示:
Val_VREFINT VREFINT 212 VREF+ × ⁄ VREFINT 4096 VDDA = = × ⁄VVREF_MEAS VREF+ = = 3V 0.01V ±VDDA 3 Val_VREFINT_CAL Val_VREFINT
|