Sensorhub LSM6DSO with H3LIS331DLTR
Hi ST community,
Below is what I have setup for the sensorhub interface between LSM6DSO and H3LIS331DL
Goal: Read H3LIS331DL WHO_AM_I (0x0F → expect 0x32) via LSM6DSO Mode 2 sensor hub (MCU ↔ LSM on main I²C; H3LIS on SCX/SDX).
Setup
- H3LIS: CS→VDD (I²C), SA0→GND (addr
0x18), SCL/SDA→LSM SCX/SDX - Hub: 1 slave,
MASTER_CONFIG = 0x4C(WRITE_ONCE | SHUB_PU_EN | MASTER_ON), SLV0 read of0x0F - Trigger: internal (XL ODR ~104 Hz,
START_CONFIG = 0) — not using INT2 / H3LIS_DRDY for this - Readback from
SENSOR_HUB_1with embedded-page access (SHUB_REG_ACCESS=1)
What we see
- LSM6DSO itself is OK (
WHO = 0x6C) - After arming the hub:
STATUS_MASTERends as0x09→ ENDOP=1, SLAVE0_NACK=1 SENSOR_HUB_1 = 0x00(expected0x32)- Scope on SCX/SDX: lines go from low → high when hub pull-ups enable, then stay high — no visible I²C clock/data bursts
- Same result after resoldering / swapping H3LIS; also tried addr
0x19
Question: With Mode 2 + internal XL trigger, why would we get SENSOR_HUB_1 =0x00 . It seems that the sensorhub from the master perspective is setup correctly, but I am unable to talk to the slave.
Is there something else I could try to identify the source of the issue? I also tried soldering and resoldering multiple times to no avail.
I would appreciate your suggestions.
