JeVois  1.22
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
Loading...
Searching...
No Matches
ICM_20948_ENUMERATIONS.h
Go to the documentation of this file.
1/*
2
3This file contains a useful c translation of the datasheet register map values
4
5*/
6
7#ifndef _ICM_20948_ENUMERATIONS_H_
8#define _ICM_20948_ENUMERATIONS_H_
9
10#ifdef __cplusplus
11extern "C"
12{
13#endif /* __cplusplus */
14
15 // // Generalized
16 // REG_BANK_SEL = 0x7F,
17
18 // // Gyroscope and Accelerometer
19 // // User Bank 0
20 // AGB0_REG_WHO_AM_I = 0x00,
21 // // Break
22 // AGB0_REG_USER_CTRL = 0x03,
23 // // Break
24 // AGB0_REG_LP_CONFIG = 0x05,
25
31
32 // AGB0_REG_PWR_MGMT_1,
33
40
41 // AGB0_REG_PWR_MGMT_2,
42 // // Break
43 // AGB0_REG_INT_PIN_CONFIG = 0x0F,
44 // AGB0_REG_INT_ENABLE,
45 // AGB0_REG_INT_ENABLE_1,
46 // AGB0_REG_INT_ENABLE_2,
47 // AGB0_REG_INT_ENABLE_3,
48 // // Break
49 // AGB0_REG_I2C_MST_STATUS = 0x17,
50 // // Break
51 // AGB0_REG_INT_STATUS = 0x19,
52 // AGB0_REG_INT_STATUS_1,
53 // AGB0_REG_INT_STATUS_2,
54 // AGB0_REG_INT_STATUS_3,
55 // // Break
56 // AGB0_REG_DELAY_TIMEH = 0x28,
57 // AGB0_REG_DELAY_TIMEL,
58 // // Break
59 // AGB0_REG_ACCEL_XOUT_H = 0x2D,
60 // AGB0_REG_ACCEL_XOUT_L,
61 // AGB0_REG_ACCEL_YOUT_H,
62 // AGB0_REG_ACCEL_YOUT_L,
63 // AGB0_REG_ACCEL_ZOUT_H,
64 // AGB0_REG_ACCEL_ZOUT_L,
65 // AGB0_REG_GYRO_XOUT_H,
66 // AGB0_REG_GYRO_XOUT_L,
67 // AGB0_REG_GYRO_YOUT_H,
68 // AGB0_REG_GYRO_YOUT_L,
69 // AGB0_REG_GYRO_ZOUT_H,
70 // AGB0_REG_GYRO_ZOUT_L,
71 // AGB0_REG_TEMP_OUT_H,
72 // AGB0_REG_TEMP_OUT_L,
73 // AGB0_REG_EXT_PERIPH_SENS_DATA_00,
74 // AGB0_REG_EXT_PERIPH_SENS_DATA_01,
75 // AGB0_REG_EXT_PERIPH_SENS_DATA_02,
76 // AGB0_REG_EXT_PERIPH_SENS_DATA_03,
77 // AGB0_REG_EXT_PERIPH_SENS_DATA_04,
78 // AGB0_REG_EXT_PERIPH_SENS_DATA_05,
79 // AGB0_REG_EXT_PERIPH_SENS_DATA_06,
80 // AGB0_REG_EXT_PERIPH_SENS_DATA_07,
81 // AGB0_REG_EXT_PERIPH_SENS_DATA_08,
82 // AGB0_REG_EXT_PERIPH_SENS_DATA_09,
83 // AGB0_REG_EXT_PERIPH_SENS_DATA_10,
84 // AGB0_REG_EXT_PERIPH_SENS_DATA_11,
85 // AGB0_REG_EXT_PERIPH_SENS_DATA_12,
86 // AGB0_REG_EXT_PERIPH_SENS_DATA_13,
87 // AGB0_REG_EXT_PERIPH_SENS_DATA_14,
88 // AGB0_REG_EXT_PERIPH_SENS_DATA_15,
89 // AGB0_REG_EXT_PERIPH_SENS_DATA_16,
90 // AGB0_REG_EXT_PERIPH_SENS_DATA_17,
91 // AGB0_REG_EXT_PERIPH_SENS_DATA_18,
92 // AGB0_REG_EXT_PERIPH_SENS_DATA_19,
93 // AGB0_REG_EXT_PERIPH_SENS_DATA_20,
94 // AGB0_REG_EXT_PERIPH_SENS_DATA_21,
95 // AGB0_REG_EXT_PERIPH_SENS_DATA_22,
96 // AGB0_REG_EXT_PERIPH_SENS_DATA_23,
97 // // Break
98 // AGB0_REG_FIFO_EN_1 = 0x66,
99 // AGB0_REG_FIFO_EN_2,
100 // AGB0_REG_FIFO_MODE,
101 // // Break
102 // AGB0_REG_FIFO_COUNT_H = 0x70,
103 // AGB0_REG_FIFO_COUNT_L,
104 // AGB0_REG_FIFO_R_W,
105 // // Break
106 // AGB0_REG_DATA_RDY_STATUS = 0x74,
107 // // Break
108 // AGB0_REG_FIFO_CFG = 0x76,
109 // // Break
110 // AGB0_REG_MEM_START_ADDR = 0x7C, // Hmm, Invensense thought they were sneaky not listing these locations on the datasheet...
111 // AGB0_REG_MEM_R_W = 0x7D, // These three locations seem to be able to access some memory within the device
112 // AGB0_REG_MEM_BANK_SEL = 0x7E, // And that location is also where the DMP image gets loaded
113 // AGB0_REG_REG_BANK_SEL = 0x7F,
114
115 // // Bank 1
116 // AGB1_REG_SELF_TEST_X_GYRO = 0x02,
117 // AGB1_REG_SELF_TEST_Y_GYRO,
118 // AGB1_REG_SELF_TEST_Z_GYRO,
119 // // Break
120 // AGB1_REG_SELF_TEST_X_ACCEL = 0x0E,
121 // AGB1_REG_SELF_TEST_Y_ACCEL,
122 // AGB1_REG_SELF_TEST_Z_ACCEL,
123 // // Break
124 // AGB1_REG_XA_OFFS_H = 0x14,
125 // AGB1_REG_XA_OFFS_L,
126 // // Break
127 // AGB1_REG_YA_OFFS_H = 0x17,
128 // AGB1_REG_YA_OFFS_L,
129 // // Break
130 // AGB1_REG_ZA_OFFS_H = 0x1A,
131 // AGB1_REG_ZA_OFFS_L,
132 // // Break
133 // AGB1_REG_TIMEBASE_CORRECTION_PLL = 0x28,
134 // // Break
135 // AGB1_REG_REG_BANK_SEL = 0x7F,
136
137 // // Bank 2
138 // AGB2_REG_GYRO_SMPLRT_DIV = 0x00,
139
140 /*
141Gyro sample rate divider. Divides the internal sample rate to generate the sample
142rate that controls sensor data output rate, FIFO sample rate, and DMP sequence rate.
143NOTE: This register is only effective when FCHOICE = 1’b1 (FCHOICE_B register bit is 1’b0), and
144(0 < DLPF_CFG < 7).
145ODR is computed as follows:
1461.1 kHz/(1+GYRO_SMPLRT_DIV[7:0])
147*/
148
149 // AGB2_REG_GYRO_CONFIG_1,
150
151 typedef enum
152 { // Full scale range options in degrees per second
153 dps250 = 0x00,
158
159 typedef enum
160 { // Format is dAbwB_nXbwY - A is integer part of 3db BW, B is fraction. X is integer part of nyquist bandwidth, Y is fraction
170
171 // AGB2_REG_GYRO_CONFIG_2,
172 // AGB2_REG_XG_OFFS_USRH,
173 // AGB2_REG_XG_OFFS_USRL,
174 // AGB2_REG_YG_OFFS_USRH,
175 // AGB2_REG_YG_OFFS_USRL,
176 // AGB2_REG_ZG_OFFS_USRH,
177 // AGB2_REG_ZG_OFFS_USRL,
178 // AGB2_REG_ODR_ALIGN_EN,
179 // // Break
180 // AGB2_REG_ACCEL_SMPLRT_DIV_1 = 0x10,
181 // AGB2_REG_ACCEL_SMPLRT_DIV_2,
182 // AGB2_REG_ACCEL_INTEL_CTRL,
183 // AGB2_REG_ACCEL_WOM_THR,
184 // AGB2_REG_ACCEL_CONFIG,
185
193
194 typedef enum
195 { // Format is dAbwB_nXbwZ - A is integer part of 3db BW, B is fraction. X is integer part of nyquist bandwidth, Y is fraction
205
206 // AGB2_REG_ACCEL_CONFIG_2,
207 // // Break
208 // AGB2_REG_FSYNC_CONFIG = 0x52,
209 // AGB2_REG_TEMP_CONFIG,
210 // AGB2_REG_MOD_CTRL_USR,
211 // // Break
212 // AGB2_REG_REG_BANK_SEL = 0x7F,
213
214 // // Bank 3
215 // AGB3_REG_I2C_MST_ODR_CONFIG = 0x00,
216 // AGB3_REG_I2C_MST_CTRL,
217 // AGB3_REG_I2C_MST_DELAY_CTRL,
218 // AGB3_REG_I2C_PERIPH0_ADDR,
219 // AGB3_REG_I2C_PERIPH0_REG,
220 // AGB3_REG_I2C_PERIPH0_CTRL,
221 // AGB3_REG_I2C_PERIPH0_DO,
222 // AGB3_REG_I2C_PERIPH1_ADDR,
223 // AGB3_REG_I2C_PERIPH1_REG,
224 // AGB3_REG_I2C_PERIPH1_CTRL,
225 // AGB3_REG_I2C_PERIPH1_DO,
226 // AGB3_REG_I2C_PERIPH2_ADDR,
227 // AGB3_REG_I2C_PERIPH2_REG,
228 // AGB3_REG_I2C_PERIPH2_CTRL,
229 // AGB3_REG_I2C_PERIPH2_DO,
230 // AGB3_REG_I2C_PERIPH3_ADDR,
231 // AGB3_REG_I2C_PERIPH3_REG,
232 // AGB3_REG_I2C_PERIPH3_CTRL,
233 // AGB3_REG_I2C_PERIPH3_DO,
234 // AGB3_REG_I2C_PERIPH4_ADDR,
235 // AGB3_REG_I2C_PERIPH4_REG,
236 // AGB3_REG_I2C_PERIPH4_CTRL,
237 // AGB3_REG_I2C_PERIPH4_DO,
238 // AGB3_REG_I2C_PERIPH4_DI,
239 // // Break
240 // AGB3_REG_REG_BANK_SEL = 0x7F,
241
242 // // Magnetometer
243 // M_REG_WIA2 = 0x01,
244 // // Break
245 // M_REG_ST1 = 0x10,
246 // M_REG_HXL,
247 // M_REG_HXH,
248 // M_REG_HYL,
249 // M_REG_HYH,
250 // M_REG_HZL,
251 // M_REG_HZH,
252 // M_REG_ST2,
253 // // Break
254 // M_REG_CNTL2 = 0x31,
255 // M_REG_CNTL3,
256 // M_REG_TS1,
257 // M_REG_TS2,
258
259#ifdef __cplusplus
260}
261#endif /* __cplusplus */
262
263#endif /* _ICM_20948_ENUMERATIONS_H_ */
ICM_20948_ACCEL_CONFIG_DLPCFG_e
@ acc_d473bw_n499bw
@ acc_d246bw_n265bw_1
@ acc_d50bw4_n68bw8
@ acc_d111bw4_n136bw
@ acc_d246bw_n265bw
@ acc_d23bw9_n34bw4
ICM_20948_ACCEL_CONFIG_FS_SEL_e
ICM_20948_GYRO_CONFIG_1_DLPCFG_e
@ gyr_d151bw8_n187bw6
@ gyr_d196bw6_n229bw8
@ gyr_d23bw9_n35bw9
@ gyr_d361bw4_n376bw5
@ gyr_d51bw2_n73bw3
@ gyr_d11bw6_n17bw8
@ gyr_d119bw5_n154bw3
ICM_20948_PWR_MGMT_1_CLKSEL_e
@ ICM_20948_Clock_Auto
@ ICM_20948_Clock_TimingReset
@ ICM_20948_Clock_Internal_20MHz
ICM_20948_GYRO_CONFIG_1_FS_SEL_e
ICM_20948_LP_CONFIG_CYCLE_e
@ ICM_20948_Sample_Mode_Cycled
@ ICM_20948_Sample_Mode_Continuous