| ICM42605 eMD Driver 2.0.9 Documentation of the eMD Driver API

- Main Page
- Related Pages
- Modules
- Classes
- Files

- Class List
- Class Index
- Class Members

Public Attributes | List of all members
inv_icm426xx Struct Reference
Driver

Icm426xx driver states definition. More...

`#include <Icm426xxDriver_HL.h>`

Collaboration diagram for inv_icm426xx:
[legend]

## Public Attributes
struct inv_icm426xx_transport | transport
| Transport structure. More...
void(* | sensor_event_cb )(inv_icm426xx_sensor_event_t *event)
| Callback executed when retrieving data from FIFO or registers. More...
int | gyro_st_bias [3]
| Gyro bias values (lsb) collected during self test. More...
int | accel_st_bias [3]
| Accel bias values (lsb) collected during self test. More...
int | st_result
| Flag to keep track if self-test has already been executed. More...
uint8_t | fifo_data [ICM426XX_FIFO_MIRRORING_SIZE]
| FIFO mirroring memory area. More...
uint8_t | tmst_to_reg_en_cnt
| Internal counter to keep track of the timestamp to register access availability. More...
uint8_t | dmp_is_on
| DMP started status. More...
uint8_t | dmp_from_sram
| DMP executes from SRAM. More...
uint64_t | gyro_start_time_us
| Internal state needed to discard first gyro samples. More...
uint64_t | accel_start_time_us
| Internal state needed to discard first accel samples. More...
uint8_t | endianess_data
| Internal status of data endianness mode to report correctly data. More...
uint8_t | fifo_highres_enabled
| Indicates if highres mode is used for FIFO. More...
INV_ICM426XX_FIFO_CONFIG_t | fifo_is_used
| Indicates if data are retrieved from FIFO or registers. More...
uint8_t | fsync_to_be_ignored
| Indicates if the next FSYNC should be ignored. More...
uint32_t | wu_off_acc_odr_changes
| Accel Low Power could report with wrong ODR if internal counter for ODR changed overflowed. More...
uint8_t | wom_smd_mask
| Keeps track if wom or smd is enabled. More...
uint8_t | wom_enable
| Keeps track if wom is enabled. More...
struct {
uint8_t acc_lp_avg
| Low-power averaging setting for accelerometer. More...
uint8_t reserved
| reserved field More...
uint8_t acc_ln_bw
| Low-noise filter bandwidth setting for accelerometer. More...
uint8_t gyr_ln_bw
| Low-noise filter bandwidth setting for gyroscope. More...
} | avg_bw_setting
| Software mirror of BW and AVG settings in hardware. More...
uint64_t | gyro_power_off_tmst
| Keeps track of timestamp when gyro is power off. More...

## Detailed Description

Icm426xx driver states definition.

## Member Data Documentation

## ◆ acc_ln_bw

uint8_t inv_icm426xx::acc_ln_bw

Low-noise filter bandwidth setting for accelerometer.

## ◆ acc_lp_avg

uint8_t inv_icm426xx::acc_lp_avg

Low-power averaging setting for accelerometer.

## ◆ accel_st_bias

int inv_icm426xx::accel_st_bias[3]

Accel bias values (lsb) collected during self test.

## ◆ accel_start_time_us

uint64_t inv_icm426xx::accel_start_time_us

Internal state needed to discard first accel samples.

## ◆

struct { ... } inv_icm426xx::avg_bw_setting

Software mirror of BW and AVG settings in hardware.

To be re-applied on each enabling of sensor

## ◆ dmp_from_sram

uint8_t inv_icm426xx::dmp_from_sram

DMP executes from SRAM.

## ◆ dmp_is_on

uint8_t inv_icm426xx::dmp_is_on

DMP started status.

## ◆ endianess_data

uint8_t inv_icm426xx::endianess_data

Internal status of data endianness mode to report correctly data.

## ◆ fifo_data

uint8_t inv_icm426xx::fifo_data[ICM426XX_FIFO_MIRRORING_SIZE]

FIFO mirroring memory area.

## ◆ fifo_highres_enabled

uint8_t inv_icm426xx::fifo_highres_enabled

Indicates if highres mode is used for FIFO.

## ◆ fifo_is_used

INV_ICM426XX_FIFO_CONFIG_t inv_icm426xx::fifo_is_used

Indicates if data are retrieved from FIFO or registers.

## ◆ fsync_to_be_ignored

uint8_t inv_icm426xx::fsync_to_be_ignored

Indicates if the next FSYNC should be ignored.

When the sensors are switched off and then on again, an FSYNC tag with incorrect FSYNC value can be generated on the next first ODR. Solution: FSYNC tag and FSYNC data should be ignored on this first ODR.

## ◆ gyr_ln_bw

uint8_t inv_icm426xx::gyr_ln_bw

Low-noise filter bandwidth setting for gyroscope.

## ◆ gyro_power_off_tmst

uint64_t inv_icm426xx::gyro_power_off_tmst

Keeps track of timestamp when gyro is power off.

## ◆ gyro_st_bias

int inv_icm426xx::gyro_st_bias[3]

Gyro bias values (lsb) collected during self test.

## ◆ gyro_start_time_us

uint64_t inv_icm426xx::gyro_start_time_us

Internal state needed to discard first gyro samples.

## ◆ reserved

uint8_t inv_icm426xx::reserved

reserved field

## ◆ sensor_event_cb

void(* inv_icm426xx::sensor_event_cb) (inv_icm426xx_sensor_event_t *event)

Callback executed when retrieving data from FIFO or registers.

Called by `inv_icm426xx_get_data_from_fifo` for each packet in FIFO. Called by `inv_icm426xx_get_data_from_registers` when reading registers. This field may be NULL if aformentioned functions are not used by application.

## ◆ st_result

int inv_icm426xx::st_result

Flag to keep track if self-test has already been executed.

## ◆ tmst_to_reg_en_cnt

uint8_t inv_icm426xx::tmst_to_reg_en_cnt

Internal counter to keep track of the timestamp to register access availability.

## ◆ transport

struct inv_icm426xx_transport inv_icm426xx::transport

Transport structure.

## ◆ wom_enable

uint8_t inv_icm426xx::wom_enable

Keeps track if wom is enabled.

## ◆ wom_smd_mask

uint8_t inv_icm426xx::wom_smd_mask

Keeps track if wom or smd is enabled.

## ◆ wu_off_acc_odr_changes

uint32_t inv_icm426xx::wu_off_acc_odr_changes

Accel Low Power could report with wrong ODR if internal counter for ODR changed overflowed.

WUOSC clock domain is informed through an 3bit counter that ODR has changed in RC/PLL mode. Every 8 event, this counter overflows and goes back to 0, same as 'no ODR changes', therefore previous ALP ODR is re-used. Solution: Keep track of ODR changes when WUOSC is disabled and perform dummy ODR changes when re-enabling WU after 8*n ODR changes.

The documentation for this struct was generated from the following file:

- Icm426xxDriver_HL.h