173 lines
6.7 KiB
ReStructuredText
173 lines
6.7 KiB
ReStructuredText
.. _x-nucleo-iks4a1:
|
||
|
||
X-NUCLEO-IKS4A1: MEMS Inertial and Environmental Multi sensor shield
|
||
####################################################################
|
||
|
||
Overview
|
||
********
|
||
The X-NUCLEO-IKS4A1 is a motion MEMS and environmental sensor expansion board
|
||
for the STM32 Nucleo. It is equipped with Arduino UNO R3 connector layout, and
|
||
allows application development with features like sensor HUB (LSM6DSO16IS and
|
||
LSM6DSV16X), camera module integration and Qvar touch/swipe gestures (thanks to
|
||
the equipped electrode).
|
||
|
||
.. image:: img/x-nucleo-iks4a1.jpg
|
||
:align: center
|
||
:alt: X-NUCLEO-IKS4A1
|
||
|
||
More general information about the board can be found at the
|
||
`X-NUCLEO-IKS4A1 website`_.
|
||
|
||
Hardware Description
|
||
********************
|
||
|
||
X-NUCLEO-IKS4A1 provides the following key features:
|
||
|
||
- LSM6DSO16IS: MEMS 3D accelerometer (±2/±4/±8/±16 g) + 3D gyroscope
|
||
(±125/±250/±500/±1000/±2000 dps) with ISPU (Intelligent Processing Unit)
|
||
- LIS2MDL: MEMS 3D magnetometer (±50 gauss)
|
||
- LIS2DUXS12: Ultra low-power MEMS 3D accelerometer (±2/±4/±8/±16 g) with
|
||
Qvar, AI, & anti-aliasing
|
||
- LPS22DF: Low-power and high-precision MEMS pressure sensor, 260-1260 hPa
|
||
absolute digital output barometer
|
||
- SHT40AD1B: High-accuracy, ultra-low-power relative humidity and temperature
|
||
sensor (by Sensirion)
|
||
- STTS22H: Low-voltage, ultralow-power, 0.5 °C accuracy temperature sensor
|
||
(–40 °C to +125 °C)
|
||
- LSM6DSV16X: MEMS 3D accelerometer (±2/±4/±8/±16 g) + 3D gyroscope
|
||
(±125/±250/±500/±1000/±2000/±4000 dps) with embedded sensor fusion, AI, Qvar
|
||
- DIL 24-pin socket available for additional MEMS adapters and other sensors
|
||
- Free comprehensive development firmware library and example for all sensors
|
||
compatible with STM32Cube firmware
|
||
- Equipped with Qvar touch/swipe electrode
|
||
- I²C sensor hub features on LSM6DSO and LSM6DSV16X available
|
||
- MIPI I3C® compatibility for communication with LIS2DUXS12, LSM6DSV16X and
|
||
LPS22DF
|
||
- Compatible with STM32 Nucleo boards
|
||
- Equipped with Arduino UNO R3 connector
|
||
- Equipped with industrial connector for IR sensor (STHS34PF80) application
|
||
development. It can be connected at the same time of external MEMS through
|
||
DIL24 adapter
|
||
- Available interface for external camera module applications coupled with
|
||
LSM6DSV16X through aux SPI (3/4 w)
|
||
- RoHS compliant
|
||
- WEEE compliant
|
||
- UKCA compliant
|
||
|
||
Hardware Configuration
|
||
**********************
|
||
|
||
X-NUCLEO-IKS4A1 board can be configured in five different modes, which can be
|
||
selected through J4 and J5 jumpers. Additional information about X-NUCLEO-IKS4A1
|
||
configuration modes and how sensors are connected together can be found in the
|
||
`X-NUCLEO-IKS4A1 user manual`_
|
||
|
||
.. _x-nucleo-iks4a1-mode-1:
|
||
|
||
Mode 1: Standard Mode
|
||
=====================
|
||
|
||
In standard I2C mode, all devices are connected to an external main board via the
|
||
same I2C bus.
|
||
|
||
The board configuration is:
|
||
|
||
- J4: 1-2, 11-12 (STM_SDA = SENS_SDA, HUB_SDx = GND)
|
||
- J5: 1-2, 11-12 (STM_SCL = SENS_SCL, HUB_SCx = GND)
|
||
|
||
.. _x-nucleo-iks4a1-mode-2:
|
||
|
||
Mode 2: LSM6DSO16IS SensorHub Mode (SHUB2)
|
||
==========================================
|
||
|
||
In this sensor hub I2C mode, it is possible to power-up the 6-axes IMU
|
||
(Inertial Measurement Unit) functionalities by collecting external data
|
||
through a direct control of the on-board environmental sensors (temperature,
|
||
pressure and magnetometer) and external sensor (DIL24) through the auxiliary
|
||
I2Cz bus "SENS_I2C". LSM6DSV16X, LIS2DUXS12 and SHT40AD1B remains connected
|
||
to the main bus "uC_I2C" coming from the external board.
|
||
|
||
The board configuration is:
|
||
|
||
- J4: 7-8 (HUB2_SDx = SENS_SDA)
|
||
- J5: 7-8 (HUB2_SCx = SENS_SCL)
|
||
|
||
.. _x-nucleo-iks4a1-mode-3:
|
||
|
||
Mode 3: LSM6DSV16X SensorHub Mode (SHUB1)
|
||
=========================================
|
||
|
||
In this sensor hub, it is possible to power-up the 6-axes IMU (Inertial
|
||
Measurement Unit) functionalities by collecting external data through
|
||
a direct control of the on-board environmental sensors (temperature,
|
||
pressure and magnetometer) and external sensor (DIL24) through the auxiliary
|
||
I2C bus "SENS_I2C". LSM6DSO16IS, LIS2DUXS12 and SHT40AD1B remains connected
|
||
to the main bus "uC_I2C" coming from the external board.
|
||
|
||
The board configuration is:
|
||
|
||
- J4: 5-6 (HUB1_SDx = SENS_SDA)
|
||
- J5: 5-6 (HUB1_SDx = SENS_SDA)
|
||
|
||
Mode 4: DIL24 SensorHub Mode
|
||
============================
|
||
|
||
In case a sensor with sensor hub embedded functionality is mounted to the
|
||
board through DIL24 adapter, it is possible to exploit this functionality
|
||
as for LSM6DSO16IS and the LSM6DSV16X. In this configuration, may be necessary
|
||
to connect the DIL24 to the external board through SPI lines in order to
|
||
avoid an address conflict on I2C bus with the LSM6DSO16IS and the LSM6DSV16X.
|
||
This is done by changing the SBx configuration.
|
||
|
||
The board configuration is:
|
||
|
||
- J4: 9-10 (DIL_SDx = SENS_SDA)
|
||
- J5: 9-10 (DIL_SDx = SENS_SDA)
|
||
|
||
Mode 5: LSM6DSO16IS as Qvar controller
|
||
======================================
|
||
|
||
In this configuration, it is possible to use the equipped Qvar swipe electrode
|
||
(by plugging it on JP6 and JP7 connectors) through the LSM6DSO16IS.
|
||
|
||
The board configuration is:
|
||
|
||
- J4: 3-4 (HUB1_SDx = QVAR1)
|
||
- J5: 3-4 (HUB1_Scx = QVAR2)
|
||
|
||
Devicetree Overlays
|
||
*******************
|
||
|
||
There are three predefined DT overlays in the board:
|
||
|
||
- :zephyr_file:`boards/shields/x_nucleo_iks4a1/x_nucleo_iks4a1.overlay`
|
||
This overlay describes sensor connections (and matching h/w configuration to be done)
|
||
as explained in Standard Mode (:ref:`x-nucleo-iks4a1-mode-1`)
|
||
- :zephyr_file:`boards/shields/x_nucleo_iks4a1/x_nucleo_iks4a1_shub1.overlay`
|
||
This overlay describes sensor connections (and matching h/w configuration to be done)
|
||
as explained in SHUB1 Mode (:ref:`x-nucleo-iks4a1-mode-3`)
|
||
- :zephyr_file:`boards/shields/x_nucleo_iks4a1/x_nucleo_iks4a1_shub2.overlay`
|
||
This overlay describes sensor connections (and matching h/w configuration to be done)
|
||
as explained in SHUB2 Mode (:ref:`x-nucleo-iks4a1-mode-2`)
|
||
|
||
Examples
|
||
********
|
||
|
||
Three samples are provided as examples for ``x-nucleo-iks4a1`` shield, each one associated
|
||
with one of the overlays described above:
|
||
|
||
- :ref:`x-nucleo-iks4a1-std-sample` application, to be used when the shield is configured
|
||
in Standard Mode (Mode 1)
|
||
- :ref:`x-nucleo-iks4a1-shub1-sample` application, to be used when the shield is configured
|
||
in SHUB1 Mode (Mode 3)
|
||
- :ref:`x-nucleo-iks4a1-shub2-sample` application, to be used when the shield is configured
|
||
in SHUB2 Mode (Mode 2)
|
||
|
||
See also :ref:`shields` for more details.
|
||
|
||
.. _X-NUCLEO-IKS4A1 website:
|
||
http://www.st.com/en/ecosystems/x-nucleo-iks4a1.html
|
||
|
||
.. _X-NUCLEO-IKS4A1 user manual:
|
||
https://www.st.com/resource/en/user_manual/um3239-getting-started-with-the-xnucleoiks4a1-motion-mems-and-environmental-sensor-expansion-board-for-stm32-nucleo-stmicroelectronics.pdf
|