STLM20 Grade 7(STLM20W87F) 的概述以及 STLM20 Grade 7 用OSS-ECAL的提供情况。STLM20 Grade 7 是 STMicroelectronics 公司生产的温度传感器IC(温度范围为 -55 ℃ 至 +130 ℃)。
MCU interface : ADC
有关数据手册,请按照意法半导体(STMicroelectronics)的指示,从这里通过型号编号进行搜索。
注意: 本资源的原始语言为英语。 翻译仅为方便起见提供概要,可能使用了机器翻译,我们对翻译的准确性和合理性不作任何保证。 此外,在进行实际设计等操作前,请务必参考最新版本的Datasheet。
STLM20 Grade 7(STLM20W87F)
概述
STLM20 是一款专为低电流应用设计的精密模拟输出温度传感器,特别适用于需要最大限度延长电池寿命的场景。该传感器的工作温度范围为 –55 °C 至 130 °C(等级 7)或 –40 °C 至 85 °C(等级 9)。电源电压工作范围为 2.4 V 至 5.5 V。STLM20 的最大温度精度为 ±1.5 °C(典型值 ±0.5 °C),在环境温度为 25 °C 且 VCC 为 2.7 V 时。温度误差随温度线性增加,并在温度范围的极端值处达到最大值 ±2.5 °C。温度范围受电源电压影响。对于温度等级 7 的设备,电源电压为 2.7 V 至 5.5 V, 温度范围的极值为+130 °C和–55 °C(将电源电压从2.7 V降至2.4 V时,工作温度范围的下限从–55 °C变为–30 °C,而上限仍保持在+130 °C)。
STLM20的最大静态供电电流为8 μA。因此,自发热效应可忽略不计。
特点
- 高精度模拟电压输出温度传感器
- ±1.5 °C 最大温度精度(25 °C 时,典型值为 ±0.5 °C)
- 超低静态供电电流:4.8 μA(典型值)和 8.0 μA(最大值)
- 工作电压范围:2.4 V 至 5.5 V
- 工作温度范围:–55 °C 至 130 °C(等级 7)–40 °C 至 85 °C(等级 9)
- SOT323-5L 5 引脚封装
- UDFN-4L 4 引脚封装
应用
- 智能手机
- 多媒体个人数字助理(PDA)设备
- 全球定位系统(GPS)设备
- 便携式医疗仪器
- 电压控制晶体振荡器
温度监测器 - 射频功率晶体管监测器
OSS-ECAL规格
API 函数
OSS-ECAL API 函数基本上被假定为周期性Thread (TASK) 的函数调用。
etSTS oSTLM20W87F_START(void)
oSTLM20W87F_START 函数是用于启动 STLM20 Grade 7 的 AD 转换的 API 函数。
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_HAL_ADC | HAL ADC 错误 | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL (STM32F4) | ||
eSTS_ERR_ADC_OBJECT | ADC 对象选择错误 |
etSTS oSTLM20W87F_READ( float32* rlt )
oSTLM20W87F_READ 函数是一个 API 函数,用于检测 STLM20 Grade 7 的 AD 转换是否结束,读取 AD 转换值,将 AD 转换值转换为特征温度,并将温度存储在 rlt 中。
模数转换值到温度转换方程
Voltage value = (AD conversion value × VDD) / ( 2AD bit )
Temperature = ((voltage value – voltage offset value) / gain) + Temperature offset value (Min, Max Limit)
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_MIN | 最低温度error(rlt为最低温度) | ||
eSTS_ERR_MAX | 最高温度error(rlt为最高温度) | ||
eSTS_ERR_HAL_ADC | HAL ADC 错误 (STM32F4 Timeout) | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_ADC_OBJECT | ADC 对象选择错误 | ||
参数 OUT | float32* rlt | 温度 -55 至 +130 [°C] |
etSTS oSTLM20W87F_START_READ( float32* rlt )
oSTLM20W87F_START_READ 函数是一个 API 函数,用于启动 STLM20 Grade 7 的 AD 转换,等待 AD 转换完成,读取 AD 转换值,将 AD 转换值转换为温度特性,并将温度存储在 rlt 中。
模数转换值到温度转换方程
Voltage value = (AD conversion value × VDD) / ( 2AD bit )
Temperature = ((voltage value – voltage offset value) / gain) + Temperature offset value (Min, Max Limit)
返回值 | etSTS | OSS-ECAL status code | |
eSTS_FIN | 成功完成 | ||
eSTS_ERR_MIN | 最低温度error(rlt为最低温度) | ||
eSTS_ERR_MAX | 最高温度error(rlt为最高温度) | ||
eSTS_ERR_HAL_ADC | HAL ADC 错误 (STM32F4 Timeout) | ||
eSTS_ERR_OTHERS_RUN | 其他组件正在执行程序 | ||
eSTS_ERR_HAL_OTHERS_RUN | 其他应用程序正在运行 HAL (STM32F4) | ||
eSTS_ERR_ADC_OBJECT | ADC 对象选择错误 | ||
参数 OUT | float32* rlt | 温度 -55 至 +130 [°C] |
HAL 支持列表
OSS-ECAL 的 HAL 支持如下。 请注意,即使使用相同的 HAL,不同的版本、MCU 和开发环境也可能无法协同工作。 该列表正在按顺序扩展。
Manufacturer | SDK/IDE Tool | HAL Name | Ver | HALNAME | Support |
---|---|---|---|---|---|
Arduino | Arduino IDE | Arduino | 1.8.6 | ARDUINO | X |
Arm | Keil MDK v6 | Mbed OS | 6.17.0 | MBED | X |
Debian | – | GNU/Linux | 10.3 | Linux | – |
Infineon | ModusToolbox | mtb-hal-cat1 | 2.4.3 | ModusToolbox | X |
NXP | MCUXpresso SDK | SDK_2.x_EVKB-IMXRT1050 | 2.16 | iMXRT1051B1052B | X |
Renesas | Synergy Software Package | HAL | 2.6.0 | SSP | X |
STMicroelectronics | STM32Cube | STM32CubeF4 | V1.28.1 | STM32F4 | X |
HAL 功能对应表
HALNAME | oSTLM20W87F_START | oSTLM20W87F_READ | oSTLM20W87F_START_READ |
---|---|---|---|
ARDUINO | – | – | X |
MBED | – | – | X |
Linux | – | – | – |
ModusToolbox | – | – | X |
iMXRT1051B1052B | X | X | X |
SSP | X | X | X |
STM32F4 | X | X Time-out time: HAL_MAX_DELAY | X Time-out time: HAL_MAX_DELAY |
开发环境
OSS-ECAL 开发过程中的 MCU 和开发环境如下。
HALNAME | Manufacturer | Board | MCU | IDE |
---|---|---|---|---|
ARDUINO | Arduino | 1.Mega 2560 Rev3 2.Arduino Pro Mini 3.3V | ATmega2560 ATmega328P | Arduino IDE 2.3.3 |
MBED | STMicroelectronics | STM32 Nucleo-64 boards | STM32F401RETx | Arm Keil Studio Cloud |
Linux | BeagleBoard | BeagleBone Black | TI AM335x | – |
ModusToolbox | Infineon | CY8CPROTO-063-BLE PSoC 6 BLE Prototyping Kit | CYBLE-416045-02 | ModusToolbox |
iMXRT1051B1052B | NXP | IMXRT1050-EVKB | i.MX RT1050 | MCUXpresso IDE |
SSP | Renesas | S7G2 SK | R7FS7G27H3A01CFC | e² studio for Renesas Synergy |
STM32F4 | STMicroelectronics | STM32 Nucleo-64 boards | STM32F401RETx | STM32CubeIDE |
文件结构
Folder* | File | Summary |
---|---|---|
STLM20W87F_HALNAME_VERSION/sample | sample.c (.cpp) | Sample Application Program |
sample.h | Sample Application Header | |
STLM20W87F_HALNAME_VERSION | oSTLM20W87F.c (.cpp) | OSS-ECAL Program for STLM20 Grade 7 |
oSTLM20W87F.h | OSS-ECAL Header for STLM20 Grade 7 | |
STLM20W87F_ARDUINO.ino | Sample application programs for Arduino | |
oss_ecal.h | OSS-ECAL Common Header | |
user_setting.c (.cpp) | Const and Table of User setting | |
user_setting.h | Header of User setting | |
readme.md | Readme | |
OSS-ECAL Terms of Use.txt | OSS-ECAL Terms of Use |
* 有关 HALNAME,请参阅 HAL 支持。
OSS-ECAL 下载
请从 OSS-ECAL 英文网站下载 OSS-ECAL。下载时,请先登录 OSS-ECAL 英文网站,然后再进行操作。
内置方法
如何在用户程序中整合多个 OSS-ECAL(相同的 MCU 功能)
如何在用户程序中整合多个 OSS-ECAL(不同 MCU 功能)
注意
OSS-ECAL 示例版本不适用于线程(任务)或不同优先级的中断。 请不要像下面的示例那样使用它。
例如 如果每个传感器被分配到相同的 ADC 组,而 OSS-ECAL API 在具有不同优先级的进程中执行,则可能无法获得正确的值。
ADC Gr0 Ch0 Temperature sensor AD22100A 每隔 100 毫秒采集一次温度(低优先级)
ADC Gr0 Ch1 Pressure sensor MPX5999D 事件中断时采集压力(高优先级)