Skip to content

Commit adcbd96

Browse files
committed
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 <[email protected]>
1 parent 11c1d10 commit adcbd96

File tree

4 files changed

+166
-0
lines changed

4 files changed

+166
-0
lines changed
77.5 KB
Loading
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
.. _x-nucleo-iks01a3:
2+
3+
X-NUCLEO-IKS01A3: MEMS Inertial and Environmental Multi sensor shield
4+
#####################################################################
5+
6+
Overview
7+
********
8+
The X-NUCLEO-IKS01A3 is a motion MEMS and environmental sensor expansion board
9+
for the STM32 Nucleo. It is equipped with Arduino UNO R3 connector layout, and
10+
is designed around the LSM6DSO 3D accelerometer and 3D gyroscope, the LIS2MDL
11+
3-axis magnetometer, the LIS2DW12 3-axis accelerometer, the HTS221 humidity and
12+
temperature sensor, the LPS22HH pressure sensor, and the STTS751 temperature sensor.
13+
14+
The X-NUCLEO-IKS01A3 interfaces with the STM32 microcontroller via the I2C pin,
15+
and it is possible to change the default I2C port.
16+
17+
.. image:: img/x-nucleo-iks01a3.jpg
18+
:width: 786px
19+
:height: 543px
20+
:align: center
21+
:alt: X-NUCLEO-IKS01A3
22+
23+
More information about the board can be found at the
24+
`X-NUCLEO-IKS01A3 website`_.
25+
26+
Hardware Description
27+
********************
28+
29+
X-NUCLEO-IKS01A3 provides the following key features:
30+
31+
- LSM6DO MEMS 3D accelerometer (±2/±4/±8/±16 g) and
32+
3D gyroscope (±125/±250/±500/±1000/±2000 dps)
33+
- LIS2MDL MEMS 3D magnetometer (±50 gauss)
34+
- LIS2DW12 MEMS 3D accelerometer (±2/±4/±8/±16 g)
35+
- LPS22HH MEMS pressure sensor, 260-1260 hPa absolute digital output barometer
36+
- HTS221 capacitive digital relative humidity and temperature
37+
- STTS751 Temperature sensor (-40 °C to +125 °C)
38+
- DIL24 socket for additional MEMS adapters and other sensors (configurable in I2C or SPI)
39+
- I2C sensor hub features on LSM6DSO available
40+
- Compatible with STM32 Nucleo boards
41+
- Equipped with Arduino UNO R3 connector
42+
- RoHS compliant
43+
- WEEE compliant
44+
45+
Hardware Configuration
46+
**********************
47+
48+
X-NUCLEO-IKS01A3 board connects the various devices on two separate I2C bus:
49+
50+
- LIS2DW12 and LSM6DO are on I2C2
51+
- LIS2MDL, LPS22HH, HTS221 are STTS751 are on I2C1
52+
53+
X-NUCLEO-IKS01A3 board can be configured in two different ways: Mode 1 and Mode 2
54+
55+
56+
Mode 1: Standard Mode
57+
=====================
58+
59+
In standard I2C mode the two buses are connected together. As a consequence, all devices on the shield
60+
reside on the same I2C bus and are accessible from the main board thru I2C bus.
61+
62+
The jumper configuration to activate this mode is:
63+
64+
- JP7 => 1-2, 3-4 (I2C1 = I2C2, I2Cx=GND)
65+
- JP8 => 1-2, 3-4 (I2C1 = I2C2, I2Cx=GND)
66+
67+
68+
Mode 2: SensorHub Mode
69+
======================
70+
71+
In SensorHub mode LSM6DSO and LIS2DW12 are connected to I2C2 and are accessible from the main board.
72+
All the other devices are connected to LSM6DSO master thru I2C1.
73+
74+
The jumper configuration to activate this mode is:
75+
76+
- JP7 => 2-3 (I2C1 = I2Cx)
77+
- JP8 => 2-3 (I2C1 = I2Cx)
78+
79+
More information about X-NUCLEO-IKS01A3 configuration modes can be found in the
80+
`X-NUCLEO-IKS01A3 user manual`_
81+
82+
Programming
83+
***********
84+
85+
Two samples are provided as examples for ``x-nucleo-iks01a3`` shield:
86+
87+
- :ref:`x-nucleo-iks01a3-std-sample` application, to be used when the shield is configured
88+
in Standard Mode
89+
- :ref:`x-nucleo-iks01a3-shub-sample` application, to be used when the shield is configured
90+
in SensorHub Mode
91+
92+
See also :ref:`shields` for more details.
93+
94+
References
95+
**********
96+
97+
.. target-notes::
98+
99+
.. _X-NUCLEO-IKS01A3 website:
100+
http://www.st.com/en/ecosystems/x-nucleo-iks01a3.html
101+
102+
.. _X-NUCLEO-IKS01A3 user manual:
103+
https://www.st.com/resource/en/user_manual/dm00601501.pdf
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright (c) 2019 STMicroelectronics
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
&arduino_i2c {
8+
9+
hts221@5f {
10+
compatible = "st,hts221";
11+
reg = <0x5f>;
12+
label = "HTS221";
13+
};
14+
15+
lps22hh@5d {
16+
compatible = "st,lps22hh";
17+
reg = <0x5d>;
18+
drdy-gpios = <&arduino_header 12 0>; /* D6 */
19+
label = "LPS22HH";
20+
};
21+
22+
lis2mdl@1e {
23+
compatible = "st,lis2mdl-magn";
24+
reg = <0x1e>;
25+
label = "LIS2MDL";
26+
};
27+
28+
lis2dw12@19 {
29+
compatible = "st,lis2dw12";
30+
reg = <0x19>;
31+
irq-gpios = <&arduino_header 3 0>; /* A3 */
32+
label = "LIS2DW12";
33+
};
34+
35+
lsm6dso@6b {
36+
compatible = "st,lsm6dso";
37+
reg = <0x6b>;
38+
irq-gpios = <&arduino_header 10 0>; /* D4 */
39+
label = "LSM6DSO";
40+
};
41+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* Copyright (c) 2019 STMicroelectronics
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
&arduino_i2c {
8+
9+
lis2dw12@19 {
10+
compatible = "st,lis2dw12";
11+
reg = <0x19>;
12+
irq-gpios = <&arduino_header 3 0>; /* A3 */
13+
label = "LIS2DW12";
14+
};
15+
16+
lsm6dso@6b {
17+
compatible = "st,lsm6dso";
18+
reg = <0x6b>;
19+
irq-gpios = <&arduino_header 10 0>; /* D4 */
20+
label = "LSM6DSO";
21+
};
22+
};

0 commit comments

Comments
 (0)