#ifndef __ICM42688_H #define __ICM42688_H // Bank 0 #define ICM42688_DEVICE_CONFIG 0x11 #define ICM42688_DRIVE_CONFIG 0x13 #define ICM42688_INT_CONFIG 0x14 #define ICM42688_FIFO_CONFIG 0x16 #define ICM42688_TEMP_DATA1 0x1D #define ICM42688_TEMP_DATA0 0x1E #define ICM42688_ACCEL_DATA_X1 0x1F #define ICM42688_ACCEL_DATA_X0 0x20 #define ICM42688_ACCEL_DATA_Y1 0x21 #define ICM42688_ACCEL_DATA_Y0 0x22 #define ICM42688_ACCEL_DATA_Z1 0x23 #define ICM42688_ACCEL_DATA_Z0 0x24 #define ICM42688_GYRO_DATA_X1 0x25 #define ICM42688_GYRO_DATA_X0 0x26 #define ICM42688_GYRO_DATA_Y1 0x27 #define ICM42688_GYRO_DATA_Y0 0x28 #define ICM42688_GYRO_DATA_Z1 0x29 #define ICM42688_GYRO_DATA_Z0 0x2A #define ICM42688_TMST_FSYNCH 0x2B #define ICM42688_TMST_FSYNCL 0x2C #define ICM42688_INT_STATUS 0x2D #define ICM42688_FIFO_COUNTH 0x2E #define ICM42688_FIFO_COUNTL 0x2F #define ICM42688_FIFO_DATA 0x30 #define ICM42688_APEX_DATA0 0x31 #define ICM42688_APEX_DATA1 0x32 #define ICM42688_APEX_DATA2 0x33 #define ICM42688_APEX_DATA3 0x34 #define ICM42688_APEX_DATA4 0x35 #define ICM42688_APEX_DATA5 0x36 #define ICM42688_INT_STATUS2 0x37 #define ICM42688_INT_STATUS3 0x38 #define ICM42688_SIGNAL_PATH_RESET 0x4B #define ICM42688_INTF_CONFIG0 0x4C #define ICM42688_INTF_CONFIG1 0x4D #define ICM42688_PWR_MGMT0 0x4E #define ICM42688_GYRO_CONFIG0 0x4F #define ICM42688_ACCEL_CONFIG0 0x50 #define ICM42688_GYRO_CONFIG1 0x51 #define ICM42688_GYRO_ACCEL_CONFIG0 0x52 #define ICM42688_ACCEL_CONFIG1 0x53 #define ICM42688_TMST_CONFIG 0x54 #define ICM42688_APEX_CONFIG0 0x56 #define ICM42688_SMD_CONFIG 0x57 #define ICM42688_FIFO_CONFIG1 0x5F #define ICM42688_FIFO_CONFIG2 0x60 #define ICM42688_FIFO_CONFIG3 0x61 #define ICM42688_FSYNC_CONFIG 0x62 #define ICM42688_INT_CONFIG0 0x63 #define ICM42688_INT_CONFIG1 0x64 #define ICM42688_INT_SOURCE0 0x65 #define ICM42688_INT_SOURCE1 0x66 #define ICM42688_INT_SOURCE3 0x68 #define ICM42688_INT_SOURCE4 0x69 #define ICM42688_FIFO_LOST_PKT0 0x6C #define ICM42688_FIFO_LOST_PKT1 0x6D #define ICM42688_SELF_TEST_CONFIG 0x70 #define ICM42688_WHO_AM_I 0x75 #define ICM42688_REG_BANK_SEL 0x76 // Bank 1 #define ICM42688_SENSOR_CONFIG0 0x03 #define ICM42688_GYRO_CONFIG_STATIC2 0x0B #define ICM42688_GYRO_CONFIG_STATIC3 0x0C #define ICM42688_GYRO_CONFIG_STATIC4 0x0D #define ICM42688_GYRO_CONFIG_STATIC5 0x0E #define ICM42688_GYRO_CONFIG_STATIC6 0x0F #define ICM42688_GYRO_CONFIG_STATIC7 0x10 #define ICM42688_GYRO_CONFIG_STATIC8 0x11 #define ICM42688_GYRO_CONFIG_STATIC9 0x12 #define ICM42688_GYRO_CONFIG_STATIC10 0x13 #define ICM42688_XG_ST_DATA 0x5F #define ICM42688_YG_ST_DATA 0x60 #define ICM42688_ZG_ST_DATA 0x61 #define ICM42688_TMSTVAL0 0x62 #define ICM42688_TMSTVAL1 0x63 #define ICM42688_TMSTVAL2 0x64 #define ICM42688_INTF_CONFIG4 0x7A #define ICM42688_INTF_CONFIG5 0x7B #define ICM42688_INTF_CONFIG6 0x7C // Bank 2 #define ICM42688_ACCEL_CONFIG_STATIC2 0x03 #define ICM42688_ACCEL_CONFIG_STATIC3 0x04 #define ICM42688_ACCEL_CONFIG_STATIC4 0x05 #define ICM42688_XA_ST_DATA 0x3B #define ICM42688_YA_ST_DATA 0x3C #define ICM42688_ZA_ST_DATA 0x3D // Bank 4 #define ICM42688_GYRO_ON_OFF_CONFIG 0x0E #define ICM42688_APEX_CONFIG1 0x40 #define ICM42688_APEX_CONFIG2 0x41 #define ICM42688_APEX_CONFIG3 0x42 #define ICM42688_APEX_CONFIG4 0x43 #define ICM42688_APEX_CONFIG5 0x44 #define ICM42688_APEX_CONFIG6 0x45 #define ICM42688_APEX_CONFIG7 0x46 #define ICM42688_APEX_CONFIG8 0x47 #define ICM42688_APEX_CONFIG9 0x48 #define ICM42688_ACCEL_WOM_X_THR 0x4A #define ICM42688_ACCEL_WOM_Y_THR 0x4B #define ICM42688_ACCEL_WOM_Z_THR 0x4C #define ICM42688_INT_SOURCE6 0x4D #define ICM42688_INT_SOURCE7 0x4E #define ICM42688_INT_SOURCE8 0x4F #define ICM42688_INT_SOURCE9 0x50 #define ICM42688_INT_SOURCE10 0x51 #define ICM42688_OFFSET_USER0 0x77 #define ICM42688_OFFSET_USER1 0x78 #define ICM42688_OFFSET_USER2 0x79 #define ICM42688_OFFSET_USER3 0x7A #define ICM42688_OFFSET_USER4 0x7B #define ICM42688_OFFSET_USER5 0x7C #define ICM42688_OFFSET_USER6 0x7D #define ICM42688_OFFSET_USER7 0x7E #define ICM42688_OFFSET_USER8 0x7F #define ICM42688_ADDRESS 0x69 // Address of ICM42688 accel/gyro when ADO = HIGH #define AFS_2G 0x03 #define AFS_4G 0x02 #define AFS_8G 0x01 #define AFS_16G 0x00 // default #define GFS_2000DPS 0x00 // default #define GFS_1000DPS 0x01 #define GFS_500DPS 0x02 #define GFS_250DPS 0x03 #define GFS_125DPS 0x04 #define GFS_62_5DPS 0x05 #define GFS_31_25DPS 0x06 #define GFS_15_125DPS 0x07 #define AODR_32000Hz 0x01 #define AODR_16000Hz 0x02 #define AODR_8000Hz 0x03 #define AODR_4000Hz 0x04 #define AODR_2000Hz 0x05 #define AODR_1000Hz 0x06 // default #define AODR_200Hz 0x07 #define AODR_100Hz 0x08 #define AODR_50Hz 0x09 #define AODR_25Hz 0x0A #define AODR_12_5Hz 0x0B #define AODR_6_25Hz 0x0C #define AODR_3_125Hz 0x0D #define AODR_1_5625Hz 0x0E #define AODR_500Hz 0x0F #define GODR_32000Hz 0x01 #define GODR_16000Hz 0x02 #define GODR_8000Hz 0x03 #define GODR_4000Hz 0x04 #define GODR_2000Hz 0x05 #define GODR_1000Hz 0x06 // default #define GODR_200Hz 0x07 #define GODR_100Hz 0x08 #define GODR_50Hz 0x09 #define GODR_25Hz 0x0A #define GODR_12_5Hz 0x0B #define GODR_500Hz 0x0F #define ICM42688_ID 0x47 #endif