前言
最近入手了一块ST的传感器扩展板——X-STM32MP-MSP01,搭配手上的STM32MP157F-DK2开发板使用。迫不及待拆箱体验,特来分享。这块板子最大的亮点是:一块板子整合了9种常用传感器,几乎涵盖了嵌入式开发中会用到的所有传感器类型。
开箱照
板子采用ST经典的白蓝色调PCB设,尺寸小巧,可直接叠扣在STM32MP1开发板的40pin接口上。

支持的开发板:
STM32MP157F-DK2(主力推荐)
STM32MP135F-DK
板载传感器一览
| ISM330DHCX | 3轴加速度计+陀螺仪 | 1 |
| IIS2MDC | 3轴磁力计 | 1 |
| LPS22HH | MEMS压力传感器 | 1 |
| STTS22H | 数字温度传感器 | 1 |
| VD6283TX | 环境光传感器 | 1 |
| IIS2DLPC | 3轴加速度计 | 1 |
| VL53L5CX | 多区域ToF测距传感器 | 1 |
| MP23DB02MM | 数字MEMS麦克风 | 1* |
| ST25DV64KC | 动态NFC/RFID标签 | 1* |
(标注的传感器在当前SDK版本中暂未完全支持)*
快速上手指南
硬件准备
X-STM32MP-MSP01 × 1 STM32MP157F-DK2 × 1 microSD卡 × 1 网线 / WiFi模块 × 1
软件准备
第一步:下载OpenSTLinux Starter Package,烧录到SD卡。
OPEN ST LINUX 桌面如图:
第二步:下载本工程 X-LINUX-MSP1_1.0.0-RC4,将以下文件拷贝到开发板:
# 创建目录 ssh root@"mkdir -p /usr/local/demo/sensor-sdk" # 拷贝传感器SDK scp -r applications/sensor-sdk/* root@:/usr/local/demo/sensor-sdk/
第三步:安装Python依赖:
apt-get install python3-websockets python3-aiohttp python3-asyncio
第四步:运行!
# 命令行查看传感器数据 cd /usr/local/demo/sensor-sdk/api python3 api_test.py
然后在PC浏览器访问开发板IP,即可看到实时的3D传感器数据界面。
部分程序展示:
#!/usr/bin/python3
##
##############################################################################
# @file test.py
# @author SRA-SAIL, Noida
# @brief Module for Industrial Accelerometer (PN = IIS2DLPC) through IIO
##############################################################################
# @attention
#
# Copyright (c) 2024 STMicroelectronics.
# All rights reserved.
#
# This software is licensed under terms that can be found in the LICENSE file
# in the root directory of this software component.
# If no LICENSE file comes with this software, it is provided AS-IS.
#
##############################################################################
##
from sensors import SensorEnumerator
import iis2dlpc
import ism330dhcx
import lps22hh
import stts22h
# Module Test
if __name__ == "__main__":
enumerator = SensorEnumerator()
enumerator.enumerate_iio_devices_by_name()
iis2dlpc = iis2dlpc.iis2dlpc(enumerator)
iis2dlpc.accel_set_sampling_freq(25)
print("X-----Accelerometer-----X")
accel = iis2dlpc.accel_read()
print(f"Acceleration: X = {accel[0]}, Y = {accel[1]}, Z = {accel[2]}")
current_sampling_frequency = iis2dlpc.accel_get_sampling_freq()
print(f"Current Sampling Frequency: {current_sampling_frequency}")
available_sampling_frequency = iis2dlpc.accel_get_available_sampling_freq()
print(f"Available Sampling Frequency: {available_sampling_frequency}")
current_scale = iis2dlpc.accel_get_scale()
print(f"Current Scale: X = {current_scale[0]}, Y = {current_scale[1]}, Z = {current_scale[2]}")
available_scales = iis2dlpc.accel_get_available_scale()
print(f"Available Scales: {available_scales}")
ism330dhcx = ism330dhcx.ism330dhcx(enumerator)
ism330dhcx.accel_set_sampling_freq(52.0)
ism330dhcx.gyro_set_sampling_freq(52.0)
print("X-----Accelerometer-----X")
accel = ism330dhcx.accel_read()
print(f"Acceleration: X = {accel[0]}, Y = {accel[1]}, Z = {accel[2]}")
current_sampling_frequency = ism330dhcx.accel_get_sampling_freq()
print(f"Current Sampling Frequency: {current_sampling_frequency}")
available_sampling_frequency = ism330dhcx.accel_get_available_sampling_freq()
print(f"Available Sampling Frequency: {available_sampling_frequency}")
current_scale = ism330dhcx.accel_get_scale()
print(f"Current Scale: X = {current_scale[0]}, Y = {current_scale[1]}, Z = {current_scale[2]}")
available_scales = ism330dhcx.accel_get_available_scale()
print(f"Available Scales: {available_scales}")
print("X-----Gyroscope-----X")
ang_vel = ism330dhcx.gyro_read()
print(f"Angular Velocity: X = {ang_vel[0]}, Y = {ang_vel[1]}, Z = {ang_vel[2]}")
current_sampling_frequency = ism330dhcx.gyro_get_sampling_freq()
print(f"Current Sampling Frequency: {current_sampling_frequency}")
available_sampling_frequency = ism330dhcx.gyro_get_available_sampling_freq()
print(f"Available Sampling Frequency: {available_sampling_frequency}")
current_scale = ism330dhcx.gyro_get_scale()
print(f"Current Scale: X = {current_scale[0]}, Y = {current_scale[1]}, Z = {current_scale[2]}")
available_scales = ism330dhcx.gyro_get_available_scale()
print(f"Available Scales: {available_scales}")
lps22hh = lps22hh.lps22hh(enumerator)
lps22hh.pres_set_sampling_freq(10)
print("X-----Pressure-----X")
temp = lps22hh.pres_read()
print(f"Temperature: T = {temp}")
current_sampling_frequency = lps22hh.pres_get_sampling_freq()
print(f"Current Sampling Frequency: {current_sampling_frequency}")
available_sampling_frequency = lps22hh.pres_get_available_sampling_freq()
print(f"Available Sampling Frequency: {available_sampling_frequency}")
current_scale = lps22hh.pres_get_scale()
print(f"Current Scale: {current_scale}")
stts22h = stts22h.stts22h(enumerator)
print("X-----Temperature-----X")
temp = stts22h.temp_read()
print(f"Temperature: T = {temp}")
current_sampling_frequency = stts22h.temp_get_sampling_freq()
print(f"Current Sampling Frequency: {current_sampling_frequency}")
available_sampling_frequency = stts22h.temp_get_available_sampling_freq()
print(f"Available Sampling Frequency: {available_sampling_frequency}")
current_scale = stts22h.temp_get_scale()
print(f"Current Scale: {current_scale}")
print("--->> Sensor Test Completed : PASS <<---")SDK架构简析
本工程的软件架构分为三层:
┌─────────────────────────────────────┐ │ 应用层 (GTK App / Web App) │ ├─────────────────────────────────────┤ │ Python API (sensor-sdk/api) │ ← 统一传感器接口 ├─────────────────────────────────────┤ │ 驱动层 (Linux IIO / 用户态驱动) │ ├─────────────────────────────────────┤ │ 硬件 (X-STM32MP-MSP01 传感器板) │ └─────────────────────────────────────┘
sensor-sdk/api 是整个工程的核心,提供统一的Python接口访问所有传感器,开发者无需关心底层I2C通信细节。例如读取加速度数据:
from sensors import SensorManager
sm = SensorManager()
sm.create_sensor("ism330dhcx")
acc = sm.read_sensor_property("ism330dhcx", "accel")sensor-sdk/web 则提供WebSocket实时数据流,在浏览器端用WebGL渲染3D可视化效果。
支持的内核版本
| Linux 6.1 | ✅ 当前推荐 | ⭐⭐⭐⭐⭐ |
| Linux 5.15 | ✅ 可用 | ⭐⭐⭐⭐ |
总结
X-STM32MP-MSP01最大的价值在于一条龙式的传感器解决方案:
不想折腾驱动?→ 用预编译二进制,30分钟上手
想深度定制?→ 内核补丁+设备树源码完全开放
想快速验证算法?→ Python API直接读取原始数据
想做远程监控?→ 内置WebSocket+WebGL一条龙
对于做嵌入式传感器开发、边缘计算、工业IoT原型的开发者来说,这块板子配合STM32MP157的双核A7+实时核的架构,可玩性相当高。
附:相关资料链接
传感器板:https://www.st.com/en/evaluation-tools/x-stm32mp-msp01.html
开发板:https://www.st.com/en/evaluation-tools/stm32mp157f-dk2.html
X-LINUX-MSP1 SDK:https://www.st.com/en/embedded-software/x-linux-msp1.html
(开箱体验帖,觉得有用欢迎点赞收藏)
我要赚赏金
