Zephyr API Documentation 4.5.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

TDK InvenSense ICM566xx 6-axis IMU. More...

Files

file  icm566xx.h
 Extended public API for ICM566XX MEMS sensor.
file  icm566xx.h
 Devicetree binding constants for the TDK InvenSense ICM566xx IMU.

Macros

#define ICM566XX_LOW_NOISE_MODE   (0)
 ICM566XX Low Noise Power Mode.
#define ICM566XX_LOW_POWER_MODE   (1)
 ICM566XX Low Power Mode.

Enumerations

enum  sensor_attribute_icm566xx { SENSOR_ATTR_BW_FILTER_LPF = SENSOR_ATTR_PRIV_START , SENSOR_ATTR_AVERAGING }
 Extended sensor attributes for ICM566XX MEMS sensor. More...

Accelerometer power modes

Values for the accel-pwr-mode devicetree property.

#define ICM566XX_DT_ACCEL_OFF   0
 Powered down.
#define ICM566XX_DT_ACCEL_LP   2
 Low-power mode.
#define ICM566XX_DT_ACCEL_LN   3
 Low-noise mode.

Gyroscope power modes

Values for the gyro-pwr-mode devicetree property.

#define ICM566XX_DT_GYRO_OFF   0
 Powered down.
#define ICM566XX_DT_GYRO_STANDBY   1
 Standby.
#define ICM566XX_DT_GYRO_LP   2
 Low-power mode.
#define ICM566XX_DT_GYRO_LN   3
 Low-noise mode.

Accelerometer scale options

Values for the accel-fs devicetree property.

#define ICM566XX_DT_ACCEL_FS_32   0
 32g full scale
#define ICM566XX_DT_ACCEL_FS_16   1
 16g full scale
#define ICM566XX_DT_ACCEL_FS_8   2
 8g full scale
#define ICM566XX_DT_ACCEL_FS_4   3
 4g full scale
#define ICM566XX_DT_ACCEL_FS_2   4
 2g full scale

Gyroscope scale options

Values for the gyro-fs devicetree property.

#define ICM566XX_DT_GYRO_FS_4000   0
 4000 dps full scale
#define ICM566XX_DT_GYRO_FS_2000   1
 2000 dps full scale
#define ICM566XX_DT_GYRO_FS_1000   2
 1000 dps full scale
#define ICM566XX_DT_GYRO_FS_500   3
 500 dps full scale
#define ICM566XX_DT_GYRO_FS_250   4
 250 dps full scale
#define ICM566XX_DT_GYRO_FS_125   5
 125 dps full scale
#define ICM566XX_DT_GYRO_FS_62_5   6
 62.5 dps full scale
#define ICM566XX_DT_GYRO_FS_31_25   7
 31.25 dps full scale
#define ICM566XX_DT_GYRO_FS_15_625   8
 15.625 dps full scale

Accelerometer data rate options

Values for the accel-odr devicetree property.

#define ICM566XX_DT_ACCEL_ODR_6400   3
 6400 Hz (LN mode only)
#define ICM566XX_DT_ACCEL_ODR_3200   4
 3200 Hz (LN mode only)
#define ICM566XX_DT_ACCEL_ODR_1600   5
 1600 Hz (LN mode only)
#define ICM566XX_DT_ACCEL_ODR_800   6
 800 Hz (LN mode only)
#define ICM566XX_DT_ACCEL_ODR_400   7
 400 Hz (LN or LP mode)
#define ICM566XX_DT_ACCEL_ODR_200   8
 200 Hz (LN or LP mode)
#define ICM566XX_DT_ACCEL_ODR_100   9
 100 Hz (LN or LP mode)
#define ICM566XX_DT_ACCEL_ODR_50   10
 50 Hz (LN or LP mode)
#define ICM566XX_DT_ACCEL_ODR_25   11
 25 Hz (LN or LP mode)
#define ICM566XX_DT_ACCEL_ODR_12_5   12
 12.5 Hz (LN or LP mode)
#define ICM566XX_DT_ACCEL_ODR_6_25   13
 6.25 Hz (LP mode only)
#define ICM566XX_DT_ACCEL_ODR_3_125   14
 3.125 Hz (LP mode only)
#define ICM566XX_DT_ACCEL_ODR_1_5625   15
 1.5625 Hz (LP mode only)

Gyroscope data rate options

Values for the gyro-odr devicetree property.

#define ICM566XX_DT_GYRO_ODR_6400   3
 6400 Hz (LN mode only)
#define ICM566XX_DT_GYRO_ODR_3200   4
 3200 Hz (LN mode only)
#define ICM566XX_DT_GYRO_ODR_1600   5
 1600 Hz (LN mode only)
#define ICM566XX_DT_GYRO_ODR_800   6
 800 Hz (LN mode only)
#define ICM566XX_DT_GYRO_ODR_400   7
 400 Hz (LN or LP mode)
#define ICM566XX_DT_GYRO_ODR_200   8
 200 Hz (LN or LP mode)
#define ICM566XX_DT_GYRO_ODR_100   9
 100 Hz (LN or LP mode)
#define ICM566XX_DT_GYRO_ODR_50   10
 50 Hz (LN or LP mode)
#define ICM566XX_DT_GYRO_ODR_25   11
 25 Hz (LN or LP mode)
#define ICM566XX_DT_GYRO_ODR_12_5   12
 12.5 Hz (LN or LP mode)
#define ICM566XX_DT_GYRO_ODR_6_25   13
 6.25 Hz (LP mode only)
#define ICM566XX_DT_GYRO_ODR_3_125   14
 3.125 Hz (LP mode only)
#define ICM566XX_DT_GYRO_ODR_1_5625   15
 1.5625 Hz (LP mode only)

Gyroscope Low-pass Filtering options

Values for the gyro-lpf-bw devicetree property.

#define ICM566XX_DT_GYRO_LPF_BW_OFF   0
 Filter disabled.
#define ICM566XX_DT_GYRO_LPF_BW_1_4   1
 1/4 ODR
#define ICM566XX_DT_GYRO_LPF_BW_1_8   2
 1/8 ODR
#define ICM566XX_DT_GYRO_LPF_BW_1_16   3
 1/16 ODR
#define ICM566XX_DT_GYRO_LPF_BW_1_32   4
 1/32 ODR
#define ICM566XX_DT_GYRO_LPF_BW_1_64   5
 1/64 ODR
#define ICM566XX_DT_GYRO_LPF_BW_1_128   6
 1/128 ODR

Accelerometer Low-pass Filtering options

Values for the accel-lpf-bw devicetree property.

#define ICM566XX_DT_ACCEL_LPF_BW_OFF   0
 Filter disabled.
#define ICM566XX_DT_ACCEL_LPF_BW_1_4   1
 1/4 ODR
#define ICM566XX_DT_ACCEL_LPF_BW_1_8   2
 1/8 ODR
#define ICM566XX_DT_ACCEL_LPF_BW_1_16   3
 1/16 ODR
#define ICM566XX_DT_ACCEL_LPF_BW_1_32   4
 1/32 ODR
#define ICM566XX_DT_ACCEL_LPF_BW_1_64   5
 1/64 ODR
#define ICM566XX_DT_ACCEL_LPF_BW_1_128   6
 1/128 ODR

Detailed Description

TDK InvenSense ICM566xx 6-axis IMU.

Macro Definition Documentation

◆ ICM566XX_DT_ACCEL_FS_16

#define ICM566XX_DT_ACCEL_FS_16   1

#include <zephyr/dt-bindings/sensor/icm566xx.h>

16g full scale

◆ ICM566XX_DT_ACCEL_FS_2

#define ICM566XX_DT_ACCEL_FS_2   4

#include <zephyr/dt-bindings/sensor/icm566xx.h>

2g full scale

◆ ICM566XX_DT_ACCEL_FS_32

#define ICM566XX_DT_ACCEL_FS_32   0

#include <zephyr/dt-bindings/sensor/icm566xx.h>

32g full scale

◆ ICM566XX_DT_ACCEL_FS_4

#define ICM566XX_DT_ACCEL_FS_4   3

#include <zephyr/dt-bindings/sensor/icm566xx.h>

4g full scale

◆ ICM566XX_DT_ACCEL_FS_8

#define ICM566XX_DT_ACCEL_FS_8   2

#include <zephyr/dt-bindings/sensor/icm566xx.h>

8g full scale

◆ ICM566XX_DT_ACCEL_LN

#define ICM566XX_DT_ACCEL_LN   3

#include <zephyr/dt-bindings/sensor/icm566xx.h>

Low-noise mode.

◆ ICM566XX_DT_ACCEL_LP

#define ICM566XX_DT_ACCEL_LP   2

#include <zephyr/dt-bindings/sensor/icm566xx.h>

Low-power mode.

◆ ICM566XX_DT_ACCEL_LPF_BW_1_128

#define ICM566XX_DT_ACCEL_LPF_BW_1_128   6

◆ ICM566XX_DT_ACCEL_LPF_BW_1_16

#define ICM566XX_DT_ACCEL_LPF_BW_1_16   3

◆ ICM566XX_DT_ACCEL_LPF_BW_1_32

#define ICM566XX_DT_ACCEL_LPF_BW_1_32   4

◆ ICM566XX_DT_ACCEL_LPF_BW_1_4

#define ICM566XX_DT_ACCEL_LPF_BW_1_4   1

◆ ICM566XX_DT_ACCEL_LPF_BW_1_64

#define ICM566XX_DT_ACCEL_LPF_BW_1_64   5

◆ ICM566XX_DT_ACCEL_LPF_BW_1_8

#define ICM566XX_DT_ACCEL_LPF_BW_1_8   2

◆ ICM566XX_DT_ACCEL_LPF_BW_OFF

#define ICM566XX_DT_ACCEL_LPF_BW_OFF   0

#include <zephyr/dt-bindings/sensor/icm566xx.h>

Filter disabled.

◆ ICM566XX_DT_ACCEL_ODR_100

#define ICM566XX_DT_ACCEL_ODR_100   9

#include <zephyr/dt-bindings/sensor/icm566xx.h>

100 Hz (LN or LP mode)

◆ ICM566XX_DT_ACCEL_ODR_12_5

#define ICM566XX_DT_ACCEL_ODR_12_5   12

#include <zephyr/dt-bindings/sensor/icm566xx.h>

12.5 Hz (LN or LP mode)

◆ ICM566XX_DT_ACCEL_ODR_1600

#define ICM566XX_DT_ACCEL_ODR_1600   5

#include <zephyr/dt-bindings/sensor/icm566xx.h>

1600 Hz (LN mode only)

◆ ICM566XX_DT_ACCEL_ODR_1_5625

#define ICM566XX_DT_ACCEL_ODR_1_5625   15

#include <zephyr/dt-bindings/sensor/icm566xx.h>

1.5625 Hz (LP mode only)

◆ ICM566XX_DT_ACCEL_ODR_200

#define ICM566XX_DT_ACCEL_ODR_200   8

#include <zephyr/dt-bindings/sensor/icm566xx.h>

200 Hz (LN or LP mode)

◆ ICM566XX_DT_ACCEL_ODR_25

#define ICM566XX_DT_ACCEL_ODR_25   11

#include <zephyr/dt-bindings/sensor/icm566xx.h>

25 Hz (LN or LP mode)

◆ ICM566XX_DT_ACCEL_ODR_3200

#define ICM566XX_DT_ACCEL_ODR_3200   4

#include <zephyr/dt-bindings/sensor/icm566xx.h>

3200 Hz (LN mode only)

◆ ICM566XX_DT_ACCEL_ODR_3_125

#define ICM566XX_DT_ACCEL_ODR_3_125   14

#include <zephyr/dt-bindings/sensor/icm566xx.h>

3.125 Hz (LP mode only)

◆ ICM566XX_DT_ACCEL_ODR_400

#define ICM566XX_DT_ACCEL_ODR_400   7

#include <zephyr/dt-bindings/sensor/icm566xx.h>

400 Hz (LN or LP mode)

◆ ICM566XX_DT_ACCEL_ODR_50

#define ICM566XX_DT_ACCEL_ODR_50   10

#include <zephyr/dt-bindings/sensor/icm566xx.h>

50 Hz (LN or LP mode)

◆ ICM566XX_DT_ACCEL_ODR_6400

#define ICM566XX_DT_ACCEL_ODR_6400   3

#include <zephyr/dt-bindings/sensor/icm566xx.h>

6400 Hz (LN mode only)

◆ ICM566XX_DT_ACCEL_ODR_6_25

#define ICM566XX_DT_ACCEL_ODR_6_25   13

#include <zephyr/dt-bindings/sensor/icm566xx.h>

6.25 Hz (LP mode only)

◆ ICM566XX_DT_ACCEL_ODR_800

#define ICM566XX_DT_ACCEL_ODR_800   6

#include <zephyr/dt-bindings/sensor/icm566xx.h>

800 Hz (LN mode only)

◆ ICM566XX_DT_ACCEL_OFF

#define ICM566XX_DT_ACCEL_OFF   0

#include <zephyr/dt-bindings/sensor/icm566xx.h>

Powered down.

◆ ICM566XX_DT_GYRO_FS_1000

#define ICM566XX_DT_GYRO_FS_1000   2

#include <zephyr/dt-bindings/sensor/icm566xx.h>

1000 dps full scale

◆ ICM566XX_DT_GYRO_FS_125

#define ICM566XX_DT_GYRO_FS_125   5

#include <zephyr/dt-bindings/sensor/icm566xx.h>

125 dps full scale

◆ ICM566XX_DT_GYRO_FS_15_625

#define ICM566XX_DT_GYRO_FS_15_625   8

#include <zephyr/dt-bindings/sensor/icm566xx.h>

15.625 dps full scale

◆ ICM566XX_DT_GYRO_FS_2000

#define ICM566XX_DT_GYRO_FS_2000   1

#include <zephyr/dt-bindings/sensor/icm566xx.h>

2000 dps full scale

◆ ICM566XX_DT_GYRO_FS_250

#define ICM566XX_DT_GYRO_FS_250   4

#include <zephyr/dt-bindings/sensor/icm566xx.h>

250 dps full scale

◆ ICM566XX_DT_GYRO_FS_31_25

#define ICM566XX_DT_GYRO_FS_31_25   7

#include <zephyr/dt-bindings/sensor/icm566xx.h>

31.25 dps full scale

◆ ICM566XX_DT_GYRO_FS_4000

#define ICM566XX_DT_GYRO_FS_4000   0

#include <zephyr/dt-bindings/sensor/icm566xx.h>

4000 dps full scale

◆ ICM566XX_DT_GYRO_FS_500

#define ICM566XX_DT_GYRO_FS_500   3

#include <zephyr/dt-bindings/sensor/icm566xx.h>

500 dps full scale

◆ ICM566XX_DT_GYRO_FS_62_5

#define ICM566XX_DT_GYRO_FS_62_5   6

#include <zephyr/dt-bindings/sensor/icm566xx.h>

62.5 dps full scale

◆ ICM566XX_DT_GYRO_LN

#define ICM566XX_DT_GYRO_LN   3

#include <zephyr/dt-bindings/sensor/icm566xx.h>

Low-noise mode.

◆ ICM566XX_DT_GYRO_LP

#define ICM566XX_DT_GYRO_LP   2

#include <zephyr/dt-bindings/sensor/icm566xx.h>

Low-power mode.

◆ ICM566XX_DT_GYRO_LPF_BW_1_128

#define ICM566XX_DT_GYRO_LPF_BW_1_128   6

◆ ICM566XX_DT_GYRO_LPF_BW_1_16

#define ICM566XX_DT_GYRO_LPF_BW_1_16   3

◆ ICM566XX_DT_GYRO_LPF_BW_1_32

#define ICM566XX_DT_GYRO_LPF_BW_1_32   4

◆ ICM566XX_DT_GYRO_LPF_BW_1_4

#define ICM566XX_DT_GYRO_LPF_BW_1_4   1

◆ ICM566XX_DT_GYRO_LPF_BW_1_64

#define ICM566XX_DT_GYRO_LPF_BW_1_64   5

◆ ICM566XX_DT_GYRO_LPF_BW_1_8

#define ICM566XX_DT_GYRO_LPF_BW_1_8   2

◆ ICM566XX_DT_GYRO_LPF_BW_OFF

#define ICM566XX_DT_GYRO_LPF_BW_OFF   0

#include <zephyr/dt-bindings/sensor/icm566xx.h>

Filter disabled.

◆ ICM566XX_DT_GYRO_ODR_100

#define ICM566XX_DT_GYRO_ODR_100   9

#include <zephyr/dt-bindings/sensor/icm566xx.h>

100 Hz (LN or LP mode)

◆ ICM566XX_DT_GYRO_ODR_12_5

#define ICM566XX_DT_GYRO_ODR_12_5   12

#include <zephyr/dt-bindings/sensor/icm566xx.h>

12.5 Hz (LN or LP mode)

◆ ICM566XX_DT_GYRO_ODR_1600

#define ICM566XX_DT_GYRO_ODR_1600   5

#include <zephyr/dt-bindings/sensor/icm566xx.h>

1600 Hz (LN mode only)

◆ ICM566XX_DT_GYRO_ODR_1_5625

#define ICM566XX_DT_GYRO_ODR_1_5625   15

#include <zephyr/dt-bindings/sensor/icm566xx.h>

1.5625 Hz (LP mode only)

◆ ICM566XX_DT_GYRO_ODR_200

#define ICM566XX_DT_GYRO_ODR_200   8

#include <zephyr/dt-bindings/sensor/icm566xx.h>

200 Hz (LN or LP mode)

◆ ICM566XX_DT_GYRO_ODR_25

#define ICM566XX_DT_GYRO_ODR_25   11

#include <zephyr/dt-bindings/sensor/icm566xx.h>

25 Hz (LN or LP mode)

◆ ICM566XX_DT_GYRO_ODR_3200

#define ICM566XX_DT_GYRO_ODR_3200   4

#include <zephyr/dt-bindings/sensor/icm566xx.h>

3200 Hz (LN mode only)

◆ ICM566XX_DT_GYRO_ODR_3_125

#define ICM566XX_DT_GYRO_ODR_3_125   14

#include <zephyr/dt-bindings/sensor/icm566xx.h>

3.125 Hz (LP mode only)

◆ ICM566XX_DT_GYRO_ODR_400

#define ICM566XX_DT_GYRO_ODR_400   7

#include <zephyr/dt-bindings/sensor/icm566xx.h>

400 Hz (LN or LP mode)

◆ ICM566XX_DT_GYRO_ODR_50

#define ICM566XX_DT_GYRO_ODR_50   10

#include <zephyr/dt-bindings/sensor/icm566xx.h>

50 Hz (LN or LP mode)

◆ ICM566XX_DT_GYRO_ODR_6400

#define ICM566XX_DT_GYRO_ODR_6400   3

#include <zephyr/dt-bindings/sensor/icm566xx.h>

6400 Hz (LN mode only)

◆ ICM566XX_DT_GYRO_ODR_6_25

#define ICM566XX_DT_GYRO_ODR_6_25   13

#include <zephyr/dt-bindings/sensor/icm566xx.h>

6.25 Hz (LP mode only)

◆ ICM566XX_DT_GYRO_ODR_800

#define ICM566XX_DT_GYRO_ODR_800   6

#include <zephyr/dt-bindings/sensor/icm566xx.h>

800 Hz (LN mode only)

◆ ICM566XX_DT_GYRO_OFF

#define ICM566XX_DT_GYRO_OFF   0

#include <zephyr/dt-bindings/sensor/icm566xx.h>

Powered down.

◆ ICM566XX_DT_GYRO_STANDBY

#define ICM566XX_DT_GYRO_STANDBY   1

◆ ICM566XX_LOW_NOISE_MODE

#define ICM566XX_LOW_NOISE_MODE   (0)

#include <zephyr/drivers/sensor/icm566xx.h>

ICM566XX Low Noise Power Mode.

◆ ICM566XX_LOW_POWER_MODE

#define ICM566XX_LOW_POWER_MODE   (1)

#include <zephyr/drivers/sensor/icm566xx.h>

ICM566XX Low Power Mode.

Enumeration Type Documentation

◆ sensor_attribute_icm566xx

#include <zephyr/drivers/sensor/icm566xx.h>

Extended sensor attributes for ICM566XX MEMS sensor.

This exposes attributes for the ICM566XX which can be used for setting the signal path filtering parameters.

The signal path starts with ADCs for the gyroscope and accelerometer. Low-Noise Mode and Low-Power Mode options are available for the accelerometer. Only Low-Noise Mode is available for gyroscope. In Low-Noise Mode, the ADC output is sent through an Anti-Alias Filter (AAF). The AAF is a filter with fixed coefficients (not user configurable), also the AAF cannot be bypassed. The AAF is followed by a 1st Order Low Pass Filter (LPF) with user selectable filter bandwidth options. In Low-Power Mode, the accelerometer ADC output is sent through an Average filter, with user configurable average filter setting. The output of 1st Order LPF in Low-Noise Mode, or Average filter in Low-Power Mode is subject to ODR selection, with user selectable ODR.

Enumerator
SENSOR_ATTR_BW_FILTER_LPF 

BW filtering.

Low-pass filter configuration

SENSOR_ATTR_AVERAGING 

Averaging configuration.