boards: add support for shields x-nucleo-iks01a3
x-nucleo-iks01a3 shield is an arduino compatible companion board which can be used on top of Nucleo standard boards. It extend the Nucleo functionalities adding following MEMS sensor support: - LSM6DSO accel and gyro - LIS2MDL magnetometer - LIS2DW12 accel - LPS22HH pressure - HTS221 humidity Signed-off-by: Armando Visconti <armando.visconti@st.com>
This commit is contained in:
parent
14ac665ba0
commit
196997439b
Binary file not shown.
After Width: | Height: | Size: 78 KiB |
|
@ -0,0 +1,103 @@
|
|||
.. _x-nucleo-iks01a3:
|
||||
|
||||
X-NUCLEO-IKS01A3: MEMS Inertial and Environmental Multi sensor shield
|
||||
#####################################################################
|
||||
|
||||
Overview
|
||||
********
|
||||
The X-NUCLEO-IKS01A3 is a motion MEMS and environmental sensor expansion board
|
||||
for the STM32 Nucleo. It is equipped with Arduino UNO R3 connector layout, and
|
||||
is designed around the LSM6DSO 3D accelerometer and 3D gyroscope, the LIS2MDL
|
||||
3-axis magnetometer, the LIS2DW12 3-axis accelerometer, the HTS221 humidity and
|
||||
temperature sensor, the LPS22HH pressure sensor, and the STTS751 temperature sensor.
|
||||
|
||||
The X-NUCLEO-IKS01A3 interfaces with the STM32 microcontroller via the I2C pin,
|
||||
and it is possible to change the default I2C port.
|
||||
|
||||
.. image:: img/x-nucleo-iks01a3.jpg
|
||||
:width: 786px
|
||||
:height: 543px
|
||||
:align: center
|
||||
:alt: X-NUCLEO-IKS01A3
|
||||
|
||||
More information about the board can be found at the
|
||||
`X-NUCLEO-IKS01A3 website`_.
|
||||
|
||||
Hardware Description
|
||||
********************
|
||||
|
||||
X-NUCLEO-IKS01A3 provides the following key features:
|
||||
|
||||
- LSM6DO MEMS 3D accelerometer (±2/±4/±8/±16 g) and
|
||||
3D gyroscope (±125/±250/±500/±1000/±2000 dps)
|
||||
- LIS2MDL MEMS 3D magnetometer (±50 gauss)
|
||||
- LIS2DW12 MEMS 3D accelerometer (±2/±4/±8/±16 g)
|
||||
- LPS22HH MEMS pressure sensor, 260-1260 hPa absolute digital output barometer
|
||||
- HTS221 capacitive digital relative humidity and temperature
|
||||
- STTS751 Temperature sensor (-40 °C to +125 °C)
|
||||
- DIL24 socket for additional MEMS adapters and other sensors (configurable in I2C or SPI)
|
||||
- I2C sensor hub features on LSM6DSO available
|
||||
- Compatible with STM32 Nucleo boards
|
||||
- Equipped with Arduino UNO R3 connector
|
||||
- RoHS compliant
|
||||
- WEEE compliant
|
||||
|
||||
Hardware Configuration
|
||||
**********************
|
||||
|
||||
X-NUCLEO-IKS01A3 board connects the various devices on two separate I2C bus:
|
||||
|
||||
- LIS2DW12 and LSM6DO are on I2C2
|
||||
- LIS2MDL, LPS22HH, HTS221 are STTS751 are on I2C1
|
||||
|
||||
X-NUCLEO-IKS01A3 board can be configured in two different ways: Mode 1 and Mode 2
|
||||
|
||||
|
||||
Mode 1: Standard Mode
|
||||
=====================
|
||||
|
||||
In standard I2C mode the two buses are connected together. As a consequence, all devices on the shield
|
||||
reside on the same I2C bus and are accessible from the main board thru I2C bus.
|
||||
|
||||
The jumper configuration to activate this mode is:
|
||||
|
||||
- JP7 => 1-2, 3-4 (I2C1 = I2C2, I2Cx=GND)
|
||||
- JP8 => 1-2, 3-4 (I2C1 = I2C2, I2Cx=GND)
|
||||
|
||||
|
||||
Mode 2: SensorHub Mode
|
||||
======================
|
||||
|
||||
In SensorHub mode LSM6DSO and LIS2DW12 are connected to I2C2 and are accessible from the main board.
|
||||
All the other devices are connected to LSM6DSO master thru I2C1.
|
||||
|
||||
The jumper configuration to activate this mode is:
|
||||
|
||||
- JP7 => 2-3 (I2C1 = I2Cx)
|
||||
- JP8 => 2-3 (I2C1 = I2Cx)
|
||||
|
||||
More information about X-NUCLEO-IKS01A3 configuration modes can be found in the
|
||||
`X-NUCLEO-IKS01A3 user manual`_
|
||||
|
||||
Programming
|
||||
***********
|
||||
|
||||
Two samples are provided as examples for ``x-nucleo-iks01a3`` shield:
|
||||
|
||||
- :ref:`x-nucleo-iks01a3-std-sample` application, to be used when the shield is configured
|
||||
in Standard Mode
|
||||
- :ref:`x-nucleo-iks01a3-shub-sample` application, to be used when the shield is configured
|
||||
in SensorHub Mode
|
||||
|
||||
See also :ref:`shields` for more details.
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
.. target-notes::
|
||||
|
||||
.. _X-NUCLEO-IKS01A3 website:
|
||||
http://www.st.com/en/ecosystems/x-nucleo-iks01a3.html
|
||||
|
||||
.. _X-NUCLEO-IKS01A3 user manual:
|
||||
https://www.st.com/resource/en/user_manual/dm00601501.pdf
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* Copyright (c) 2019 STMicroelectronics
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
&arduino_i2c {
|
||||
|
||||
hts221@5f {
|
||||
compatible = "st,hts221";
|
||||
reg = <0x5f>;
|
||||
label = "HTS221";
|
||||
};
|
||||
|
||||
lps22hh@5d {
|
||||
compatible = "st,lps22hh";
|
||||
reg = <0x5d>;
|
||||
drdy-gpios = <&arduino_header 12 0>; /* D6 */
|
||||
label = "LPS22HH";
|
||||
};
|
||||
|
||||
lis2mdl@1e {
|
||||
compatible = "st,lis2mdl-magn";
|
||||
reg = <0x1e>;
|
||||
label = "LIS2MDL";
|
||||
};
|
||||
|
||||
lis2dw12@19 {
|
||||
compatible = "st,lis2dw12";
|
||||
reg = <0x19>;
|
||||
irq-gpios = <&arduino_header 3 0>; /* A3 */
|
||||
label = "LIS2DW12";
|
||||
};
|
||||
|
||||
lsm6dso@6b {
|
||||
compatible = "st,lsm6dso";
|
||||
reg = <0x6b>;
|
||||
irq-gpios = <&arduino_header 10 0>; /* D4 */
|
||||
label = "LSM6DSO";
|
||||
};
|
||||
};
|
|
@ -0,0 +1,22 @@
|
|||
/*
|
||||
* Copyright (c) 2019 STMicroelectronics
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
&arduino_i2c {
|
||||
|
||||
lis2dw12@19 {
|
||||
compatible = "st,lis2dw12";
|
||||
reg = <0x19>;
|
||||
irq-gpios = <&arduino_header 3 0>; /* A3 */
|
||||
label = "LIS2DW12";
|
||||
};
|
||||
|
||||
lsm6dso@6b {
|
||||
compatible = "st,lsm6dso";
|
||||
reg = <0x6b>;
|
||||
irq-gpios = <&arduino_header 10 0>; /* D4 */
|
||||
label = "LSM6DSO";
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue