意法半导体(ST)的 X-NUCLEO-IKS4A1 扩展板,如何通过 I2C 连接各个传感器?

X-NUCLEO-IKS4A1 扩展板,如何通过 I2C 连接各个传感器?

X-NUCLEO-IKS4A1 扩展板可以通过以下两种 I2C 模式连接传感器:

1. 标准 I²C 总线连接

  • 连接逻辑:所有传感器(包括惯性、环境传感器)通过同一 I²C 总线(uC_I²C)连接到外部 STM32 Nucleo 板。
  • 引脚配置
    • J4:1-2、11-12 引脚,定义 STM_SDA = SENS_SDA(数据引脚),HUB_SDx = GND(集线器数据引脚接地)。
    • J5:1-2、11-12 引脚,定义 STM_SCL = SENS_SCL(时钟引脚),HUB_SCx = GND(集线器时钟引脚接地)。
  • 适用场景:简单传感器数据采集,所有设备共享主 I²C 总线,无需复杂总线管理。

2. 分层总线架构

  • 举例,使用LSM6DSO16IS 作为I²C 传感器集线器
    • 主总线(uC_I²C:直接连接 LSM6DSV16X(6 轴 IMU)、LIS2DUXS12(3 轴加速度计)、SHT40AD1B(温湿度传感器),与 STM32 Nucleo 板的 MCU 通信,传输核心惯性 / 温湿度数据。
    • 辅助总线(SENS_I²C:由 LSM6DSO16IS(传感器集线器) 控制,连接 LPS22DF(压力)、LIS2MDL(磁力计)、STTS22H(温度)DIL24 插座(扩展外部传感器,如红外传感器),实现 6 轴 IMU 功能的供电和环境数据采集。
  • 引脚配置
    • J4:7-8 引脚,定义 HUB2_SDx = SENS_SDA(辅助总线数据引脚)。
    • J5:7-8 引脚,定义 HUB2_SCx = SENS_SCL(辅助总线时钟引脚)。
  • 特点:通过集线器分层管理,提升多传感器数据处理效率,支持扩展外部传感器,适用于复杂物联网 / 环境监测应用(如同时采集惯性、温湿度、压力、磁场数据)。

关键板载传感器介绍:

  • LSM6DSO16IS:采用系统级封装,包含一个三轴数字加速度计和一个三轴数字陀螺仪,在高性能模式下以0.59 mA的电流提供强劲性能,并且具有始终开启的低功耗特性,可为个人电子产品和物联网解决方案提供最佳运动体验。

    • 具有可选满量程的3轴加速度计:±2/±4/±8/±16 g
    • 具有可选满量程的3轴陀螺仪:±125/±250/±500/±1000/±2000 dps
    • 嵌入式ISPU:超低功耗的高性能可编程内核,可以在边缘执行信号处理和AI算法,提供无缝的数字生活体验
    • 低功耗:高性能模式下的电流消耗为0.59 mA,低功耗模式下的电流消耗为0.46 mA(仅陀螺仪 + 加速度计,不包括ISPU)
    • 低噪声:高性能模式下70 μg/√Hz
    • 传感器中枢功能,可有效地从其他外部传感器(最多4个外部传感器)收集数据
    • SPI/I²C串行接口
    • 模拟电源电压:1.71 V - 3.6 V,独立IO供电(1.62 V)
  • LIS2MDL:超低功耗、高性能三轴数字磁传感器,包括一个 I2C 串行总线接口(支持标准、快速模式、快速模式增强和高速(100 kHz、400 kHz、1 MHz 和 3.4 MHz))和一个 SPI 串行标准接口。

    • 3 个磁场通道
    • ±50 高斯磁场动态范围
    • 16 位数据输出
    • SPI/I2C 串行接口
    • 模拟电源电压 1.71 V 至 3.6 V
    • 可选电源模式/分辨率
    • 单测量模式
    • 可编程中断发生器
  • LIS2DUXS12:数字式智能三轴线性加速度计,其MEMS和ASIC旨在将尽可能低的电流消耗与丰富的特性(如常开抗混叠滤波,有限状态机 (FSM),具有自适应自配置 (ASC),以及模拟集线器/Qvar传感通道的机器学习内核 (MLC))相结合。

    • 供电电压范围:1.62 V至3.6 V
    • 四种工作电源模式
    • 噪音低至220 µg/√Hz
    • 嵌入式温度传感器
    • 内嵌FIFO:高分辨率时,最多512个加速度和温度数据样本;低分辨率时,最多768个加速度数据样本
    • 高速I²C/SPI/MIPI I3C®数字输出接口
    • 嵌入式数字功能(自由落体、唤醒、单/双/三击识别、活动/休止,以及6D/4D方向)
    • 高级计步器,步伐侦测和步数计算
    • 大幅运动检测,倾斜检测
    • 自检功能
    • ±2g/±4g/±8g/±16g可编程满量程
    • 1.6 Hz到800 Hz的输出数据速率
    • 嵌入式机器学习内核
    • 可编程有限状态机
    • 集成了模拟集线器/Qvar传感通道
    • 基于传感器处理输出 (FSM/MLC) 的自适应自配置 (ASC)
  • LPS22DF:超紧凑型压阻绝对压力传感器,可用作数字输出气压计,具有更低功耗和更小压力噪声。该器件包含传感元件和IC接口,该接口通过I²C、MIPI I3CSM或SPI接口实现传感元件与应用的通信,同时该器件也支持用于数据接口的广泛Vdd IO。

    • 260至1260 hPa绝对压力范围
    • 电流消耗低至1.7 μA
    • 绝对压力精度:0.5 hPa
    • 低压传感器噪声:0.34 Pa
    • 高性能TCO:0.45 Pa/°C
    • 嵌入式温度补偿
    • 24位气压数据输出
    • ODR从1 Hz到200 Hz
    • SPI、I²C或MIPI I3CSM接口
    • 支持1.08 V数字接口
    • 嵌入式FIFO模块
    • 中断功能:数据就绪、FIFO标志、压力门限
  • SHT40AD1B:数字式湿度和温度传感器

    • 相对湿度精度:±1.8%RH
    • 温度精度:±0.2°C
    • VDD:1.08V~3.6V
    • 平均电流 0.4uA (@ 1 meas/s)
    • I²C 接口
    • 工作范围:0~100%rh,-40~125°C
  • LSM6DSV16X:采用系统级封装,包含一个3D数字加速度计和一个3D数字陀螺仪(采用三核芯架构,通过专用的配置、处理和滤波功能在3个独立通道上处理加速度数据、角速度数据)。常开惯性模块,具有始终开启功能的同时提供低功耗特性,配嵌入式机器学习核心和Qvar静电传感器

    • 三核芯架构支持UI、EIS,以及OIS数据处理
    • 高达4.5 KB的智能FIFO
    • 与安卓兼容
    • ±2/±4/±8/±16 g满量程
    • ±125/±250/±500/±1000/±2000/±4000 dps 满量程
    • 模拟供电电压:1.71 V到3.6 V
    • 独立IO供电(扩展的范围:1.08 V - 3.6 V
    • SPI / I²C和MIPI I3C® v1.1串行接口,支持主处理器数据同步功能
    • 辅助SPI用于陀螺仪和加速度计的OIS数据输出
    • 可以从辅助SPI、主接口(SPI / I²C & MIPI I3C®)配置OIS
    • 主接口上的EIS专用通道,具有专用滤波功能
    • 高级计步器,步伐侦测和步数计算
    • 大幅运动检测,倾斜度检测
    • 标准中断:自由落体、唤醒、6D/4D方向检测、单击和双击
    • 可编程有限状态机用于加速度计、陀螺仪,以及外部传感器数据处理(960 Hz高速率)
    • 机器学习内核(具有可输出功能和滤波器),用于人工智能应用
    • 嵌入式Qvar(静电传感器)支持用户界面功能(单击、双击、三击、长按、左/右 - 右/左滑动
    • 嵌入式模拟集线器,用于ADC和处理模拟输入数据
    • 内嵌低功耗传感器融合算法
    • 嵌入式温度传感器

更多X-NUCLEO-IKS4A1相关内容:

更多X-NUCLEO-IKS4A1相关内容:

相关产品:

STMicroelectronics 扩展板 X-NUCLEO-IKS4A1:一款运动 MEMS 与环境传感器评估板套件。该扩展板支持通过 I²C 总线测试运动 MEMS 加速度计、陀螺仪、磁力计,以及环境湿度、温度和压力传感器的功能,同时可全面测试 LSM6DSO16ISLSM6DSV16X 的所有功能及 Qvar 触摸滑动手势,还可连接 STHS34PF80 红外传感器实现存在检测。

这块板子我之前玩过,也写过相关的小制作的报告,板载的两个 LSM6DSx 家族的主 IMU 芯片都具有 Sensor Hub 功能,也就是可以堆叠式地外挂 I2C 总线,方便传感数据融合,板子上留有跳线帽的方式以便选择工作模式。

LSM6DSV 比 LSM6DSO 更加新,IMU 的测算漂移控制得也很好,像 SlimeVR 之类的民间开源 VR 追踪器也慢慢推荐从 BNO085 的方案过渡到 LSM6DSV。不过这里板载的 LSM6DSO 芯片的具体 SKU 是 LSM6DSO16IS,它的一个亮点是带 ISPU 的,基本上可以认为是低功耗和特制指令集的 DSP,不知道为什么在 LSM6DSV 家族里面没有类似对标的产品,可能 ISPU 的市场反馈不够好,还挺可惜的。

使用这些 I2C 传感器的体验大同小异,特别是它们都来自 ST(印象里好像其它家的就只有 SHT40),芯片 ID 识别、初始化、不同宽度的数据读取基本是有统一的设计规范在的。不过由于效率、字节空间等原因,传感器读取的数值基本都是原始数值,要根据设备自身的额定范围进行归一化,归一化公式一般都在对应传感器的数据手册上写了。因为以前玩过同样的板子,把之前整理的归一化公式贴在这里方便大家参考,表里的 R 表示原始值,每个单元格内包含了将原始值归一化为相应单位的读数的公式。

设备 加速度 (mg) 陀螺仪 (mdps) 温度 (°C) 相对湿度 (%) 压强 (hPa) 磁强度 (mGs)
LSM6DSO16IS R * 0.061 (FS=±2g) R * 4.375 (FS=±125 dps) 25 + R / 256
LIS2MDL 25 + R / 8 R * 1.5
LIS2DUXS12 R * 0.061 (FS=±2g) 25 + R * 0.045
LPS22DF R / 100 R / 4096
SHT40AD1B -45 + 175 * R / 65535 -6 + 125 * R / 65535
STTS22H R / 100