c6dofimu18  2.1.0.0
c6dofimu18.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef C6DOFIMU18_H
29 #define C6DOFIMU18_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "mikrosdk_version.h"
36 
37 #ifdef __GNUC__
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
40 #else
41 #include "delays.h"
42 #endif
43 #endif
44 
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_i2c_master.h"
48 #include "drv_spi_master.h"
49 #include "spi_specifics.h"
50 
76 #define C6DOFIMU18_REG_DEVICE_CONFIG 0x11
77 #define C6DOFIMU18_REG_DRIVE_CONFIG 0x13
78 #define C6DOFIMU18_REG_INT_CONFIG 0x14
79 #define C6DOFIMU18_REG_FIFO_CONFIG 0x16
80 #define C6DOFIMU18_REG_TEMP_DATA1 0x1D
81 #define C6DOFIMU18_REG_TEMP_DATA0 0x1E
82 #define C6DOFIMU18_REG_ACCEL_DATA_X1 0x1F
83 #define C6DOFIMU18_REG_ACCEL_DATA_X0 0x20
84 #define C6DOFIMU18_REG_ACCEL_DATA_Y1 0x21
85 #define C6DOFIMU18_REG_ACCEL_DATA_Y0 0x22
86 #define C6DOFIMU18_REG_ACCEL_DATA_Z1 0x23
87 #define C6DOFIMU18_REG_ACCEL_DATA_Z0 0x24
88 #define C6DOFIMU18_REG_GYRO_DATA_X1 0x25
89 #define C6DOFIMU18_REG_GYRO_DATA_X0 0x26
90 #define C6DOFIMU18_REG_GYRO_DATA_Y1 0x27
91 #define C6DOFIMU18_REG_GYRO_DATA_Y0 0x28
92 #define C6DOFIMU18_REG_GYRO_DATA_Z1 0x29
93 #define C6DOFIMU18_REG_GYRO_DATA_Z0 0x2A
94 #define C6DOFIMU18_REG_TMST_FSYNCH 0x2B
95 #define C6DOFIMU18_REG_TMST_FSYNCL 0x2C
96 #define C6DOFIMU18_REG_INT_STATUS 0x2D
97 #define C6DOFIMU18_REG_FIFO_COUNTH 0x2E
98 #define C6DOFIMU18_REG_FIFO_COUNTL 0x2F
99 #define C6DOFIMU18_REG_FIFO_DATA 0x30
100 #define C6DOFIMU18_REG_APEX_DATA0 0x31
101 #define C6DOFIMU18_REG_APEX_DATA1 0x32
102 #define C6DOFIMU18_REG_APEX_DATA2 0x33
103 #define C6DOFIMU18_REG_APEX_DATA3 0x34
104 #define C6DOFIMU18_REG_APEX_DATA4 0x35
105 #define C6DOFIMU18_REG_APEX_DATA5 0x36
106 #define C6DOFIMU18_REG_INT_STATUS2 0x37
107 #define C6DOFIMU18_REG_INT_STATUS3 0x38
108 #define C6DOFIMU18_REG_SIGNAL_PATH_RESET 0x4B
109 #define C6DOFIMU18_REG_INTF_CONFIG0 0x4C
110 #define C6DOFIMU18_REG_INTF_CONFIG1 0x4D
111 #define C6DOFIMU18_REG_PWR_MGMT0 0x4E
112 #define C6DOFIMU18_REG_GYRO_CONFIG0 0x4F
113 #define C6DOFIMU18_REG_ACCEL_CONFIG0 0x50
114 #define C6DOFIMU18_REG_GYRO_CONFIG1 0x51
115 #define C6DOFIMU18_REG_GYRO_ACCEL_CONFIG0 0x52
116 #define C6DOFIMU18_REG_ACCEL_CONFIG1 0x53
117 #define C6DOFIMU18_REG_TMST_CONFIG 0x54
118 #define C6DOFIMU18_REG_APEX_CONFIG0 0x56
119 #define C6DOFIMU18_REG_SMD_CONFIG 0x57
120 #define C6DOFIMU18_REG_FIFO_CONFIG1 0x5F
121 #define C6DOFIMU18_REG_FIFO_CONFIG2 0x60
122 #define C6DOFIMU18_REG_FIFO_CONFIG3 0x61
123 #define C6DOFIMU18_REG_FSYNC_CONFIG 0x62
124 #define C6DOFIMU18_REG_INT_CONFIG0 0x63
125 #define C6DOFIMU18_REG_INT_CONFIG1 0x64
126 #define C6DOFIMU18_REG_INT_SOURCE0 0x65
127 #define C6DOFIMU18_REG_INT_SOURCE1 0x66
128 #define C6DOFIMU18_REG_INT_SOURCE3 0x68
129 #define C6DOFIMU18_REG_INT_SOURCE4 0x69
130 #define C6DOFIMU18_REG_FIFO_LOST_PKT0 0x6C
131 #define C6DOFIMU18_REG_FIFO_LOST_PKT1 0x6D
132 #define C6DOFIMU18_REG_SELF_TEST_CONFIG 0x70
133 #define C6DOFIMU18_REG_WHO_AM_I 0x75
134 #define C6DOFIMU18_REG_BANK_SEL 0x76
135 
140 #define C6DOFIMU18_REG_SENSOR_CONFIG0 0x03
141 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC2 0x0B
142 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC3 0x0C
143 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC4 0x0D
144 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC5 0x0E
145 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC6 0x0F
146 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC7 0x10
147 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC8 0x11
148 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC9 0x12
149 #define C6DOFIMU18_REG_GYRO_CONFIG_STATIC10 0x13
150 #define C6DOFIMU18_REG_XG_ST_DATA 0x5F
151 #define C6DOFIMU18_REG_YG_ST_DATA 0x60
152 #define C6DOFIMU18_REG_ZG_ST_DATA 0x61
153 #define C6DOFIMU18_REG_TMSTVAL0 0x62
154 #define C6DOFIMU18_REG_TMSTVAL1 0x63
155 #define C6DOFIMU18_REG_TMSTVAL2 0x64
156 #define C6DOFIMU18_REG_INTF_CONFIG4 0x7A
157 #define C6DOFIMU18_REG_INTF_CONFIG5 0x7B
158 #define C6DOFIMU18_REG_INTF_CONFIG6 0x7C
159 
164 #define C6DOFIMU18_REG_ACCEL_CONFIG_STATIC2 0x03
165 #define C6DOFIMU18_REG_ACCEL_CONFIG_STATIC3 0x04
166 #define C6DOFIMU18_REG_ACCEL_CONFIG_STATIC4 0x05
167 #define C6DOFIMU18_REG_XA_ST_DATA 0x3B
168 #define C6DOFIMU18_REG_YA_ST_DATA 0x3C
169 #define C6DOFIMU18_REG_ZA_ST_DATA 0x3D
170 
175 #define C6DOFIMU18_REG_APEX_CONFIG1 0x40
176 #define C6DOFIMU18_REG_APEX_CONFIG2 0x41
177 #define C6DOFIMU18_REG_APEX_CONFIG3 0x42
178 #define C6DOFIMU18_REG_APEX_CONFIG4 0x43
179 #define C6DOFIMU18_REG_APEX_CONFIG5 0x44
180 #define C6DOFIMU18_REG_APEX_CONFIG6 0x45
181 #define C6DOFIMU18_REG_APEX_CONFIG7 0x46
182 #define C6DOFIMU18_REG_APEX_CONFIG8 0x47
183 #define C6DOFIMU18_REG_APEX_CONFIG9 0x48
184 #define C6DOFIMU18_REG_ACCEL_WOM_X_THR 0x4A
185 #define C6DOFIMU18_REG_ACCEL_WOM_Y_THR 0x4B
186 #define C6DOFIMU18_REG_ACCEL_WOM_Z_THR 0x4C
187 #define C6DOFIMU18_REG_INT_SOURCE6 0x4D
188 #define C6DOFIMU18_REG_INT_SOURCE7 0x4E
189 #define C6DOFIMU18_REG_INT_SOURCE8 0x4F
190 #define C6DOFIMU18_REG_INT_SOURCE9 0x50
191 #define C6DOFIMU18_REG_INT_SOURCE10 0x51
192 #define C6DOFIMU18_REG_OFFSET_USER0 0x77
193 #define C6DOFIMU18_REG_OFFSET_USER1 0x78
194 #define C6DOFIMU18_REG_OFFSET_USER2 0x79
195 #define C6DOFIMU18_REG_OFFSET_USER3 0x7A
196 #define C6DOFIMU18_REG_OFFSET_USER4 0x7B
197 #define C6DOFIMU18_REG_OFFSET_USER5 0x7C
198 #define C6DOFIMU18_REG_OFFSET_USER6 0x7D
199 #define C6DOFIMU18_REG_OFFSET_USER7 0x7E
200 #define C6DOFIMU18_REG_OFFSET_USER8 0x7F
201  // c6dofimu18_reg
203 
219 #define C6DOFIMU18_BANK0_SEL 0x00
220 #define C6DOFIMU18_BANK1_SEL 0x01
221 #define C6DOFIMU18_BANK2_SEL 0x02
222 #define C6DOFIMU18_BANK3_SEL 0x03
223 #define C6DOFIMU18_BANK4_SEL 0x04
224 
229 #define C6DOFIMU18_SLEW_RATE_60nS 0x00
230 #define C6DOFIMU18_SLEW_RATE_36nS 0x01
231 #define C6DOFIMU18_SLEW_RATE_18nS 0x02
232 #define C6DOFIMU18_SLEW_RATE_12nS 0x03
233 #define C6DOFIMU18_SLEW_RATE_6nS 0x04
234 #define C6DOFIMU18_SLEW_RATE_2nS 0x05
235 
240 #define C6DOFIMU18_SPI_MODE0_MODE3 0x00
241 #define C6DOFIMU18_SPI_MODE1_MODE2 0x01
242 
243 #define C6DOFIMU18_ENABLE_SW_RESET 0x01
244 
249 #define C6DOFIMU18_DMP_IDEL_FLAG 0x04
250 #define C6DOFIMU18_ACTIVITY_UNKNOWN 0x00
251 #define C6DOFIMU18_ACTIVITY_WALK 0x01
252 #define C6DOFIMU18_ACTIVITY_RUN 0x02
253 #define C6DOFIMU18_ACTIVITY_MASK 0x03
254 
255 #define C6DOFIMU18_TAP_NUM_MASK 0x18
256 #define C6DOFIMU18_TAP_SINGLE 0x08
257 #define C6DOFIMU18_TAP_DOUBLE 0x10
258 #define C6DOFIMU18_TAP_AXIS_MASK 0x06
259 #define C6DOFIMU18_TAP_AXIS_X 0x00
260 #define C6DOFIMU18_TAP_AXIS_Y 0x02
261 #define C6DOFIMU18_TAP_AXIS_Z 0x04
262 #define C6DOFIMU18_TAP_DIR_MASK 0x01
263 #define C6DOFIMU18_TAP_DIR_POSITIVE 0x00
264 #define C6DOFIMU18_TAP_DIR_NEGATIVE 0x01
265 
270 #define C6DOFIMU18_INT_INT2_MODE_PULSED 0x00
271 #define C6DOFIMU18_INT_INT2_MODE_LATCHED 0x20
272 #define C6DOFIMU18_INT_INT2_OPEN_DRAIN 0x00
273 #define C6DOFIMU18_INT_INT2_PUSH_PULL 0x10
274 #define C6DOFIMU18_INT_INT2_ACTIVE_LOW 0x00
275 #define C6DOFIMU18_INT_INT2_ACTIVE_HIGH 0x08
276 #define C6DOFIMU18_INT_INT1_MODE_PULSED 0x00
277 #define C6DOFIMU18_INT_INT1_MODE_LATCHED 0x04
278 #define C6DOFIMU18_INT_INT1_OPEN_DRAIN 0x00
279 #define C6DOFIMU18_INT_INT1_PUSH_PULL 0x02
280 #define C6DOFIMU18_INT_INT1_ACTIVE_LOW 0x00
281 #define C6DOFIMU18_INT_INT1_ACTIVE_HIGH 0x01
282 #define C6DOFIMU18_INT_CONFIG_MASK 0x3F
283 
288 #define C6DOFIMU18_DRDY_INT_CLR_ON_STATUS_READ 0x00
289 #define C6DOFIMU18_DRDY_INT_CLR_FIFO_READ 0x20
290 #define C6DOFIMU18_DRDY_INT_CLR_STATUS_AND_REG 0x30
291 #define C6DOFIMU18_FIFO_INT_CLR_ON_STATUS_READ 0x00
292 #define C6DOFIMU18_FIFO_INT_CLR_FIFO_READ 0x80
293 #define C6DOFIMU18_FIFO_INT_CLR_STATUS_AND_REG 0xc0
294 #define C6DOFIMU18_FIFO_FULL_CLR_ON_STATUS_READ 0x00
295 #define C6DOFIMU18_FIFO_FULL_CLR_FIFO_READ 0x02
296 #define C6DOFIMU18_FIFO_FULL_CLR_STATUS_AND_REG 0x03
297 
302 #define C6DOFIMU18_INT_TPULSE_100uS 0x00
303 #define C6DOFIMU18_INT_TPULSE_8uS 0x40
304 #define C6DOFIMU18_INT_TDEASSERT_DISABLE 0x20
305 #define C6DOFIMU18_INT_ASYNC_RESET_DISABLE 0x10
306 #define C6DOFIMU18_INT_ASYNC_RESET_ENABLE 0x00
307 #define C6DOFIMU18_INT_CONFIG1_MASK 0x70
308 
313 #define C6DOFIMU18_INT_UI_FSYNC_INT1_EN 0x40
314 #define C6DOFIMU18_INT_PLL_RDY_INT1_EN 0x20
315 #define C6DOFIMU18_INT_RESET_DONE_INT1_EN 0x10
316 #define C6DOFIMU18_INT_UI_DRDY_INT1_EN 0x08
317 #define C6DOFIMU18_INT_FIFO_THS_INT1_EN 0x04
318 #define C6DOFIMU18_INT_FIFO_FULL_INT1_EN 0x02
319 #define C6DOFIMU18_INT_UI_AGC_RDY_INT1_EN 0x01
320 #define C6DOFIMU18_INT_SOURCE0_MASK 0x7F
321 
326 #define C6DOFIMU18_SMD_INT1_EN 0x08
327 #define C6DOFIMU18_WOM_Z_INT1_EN 0x04
328 #define C6DOFIMU18_WOM_Y_INT1_EN 0x02
329 #define C6DOFIMU18_WOM_X_INT1_EN 0x01
330 #define C6DOFIMU18_INT_SOURCE1_MASK 0x0F
331 
336 #define C6DOFIMU18_INT_UI_FSYNC_INT2_EN 0x40
337 #define C6DOFIMU18_INT_PLL_RDY_INT2_EN 0x20
338 #define C6DOFIMU18_INT_RESET_DONE_INT2_EN 0x10
339 #define C6DOFIMU18_INT_UI_DRDY_INT2_EN 0x08
340 #define C6DOFIMU18_INT_FIFO_THS_INT2_EN 0x04
341 #define C6DOFIMU18_INT_FIFO_FULL_INT2_EN 0x02
342 #define C6DOFIMU18_INT_UI_AGC_RDY_INT2_EN 0x01
343 #define C6DOFIMU18_INT_SOURCE3_MASK 0x7F
344 
349 #define C6DOFIMU18_SMD_INT2_EN 0x08
350 #define C6DOFIMU18_WOM_Z_INT2_EN 0x04
351 #define C6DOFIMU18_WOM_Y_INT2_EN 0x02
352 #define C6DOFIMU18_WOM_X_INT2_EN 0x01
353 #define C6DOFIMU18_INT_SOURCE4_MASK 0x0F
354 
359 #define C6DOFIMU18_INT_SOURCE6_STEP_DET_INT1_EN 0x20
360 #define C6DOFIMU18_INT_SOURCE6_STEP_CNT_INT1_EN 0x10
361 #define C6DOFIMU18_INT_SOURCE6_TILT_DET_INT1_EN 0x08
362 #define C6DOFIMU18_INT_SOURCE6_TAP_DET_INT1_EN 0x01
363 #define C6DOFIMU18_INT_SOURCE6_MASK 0x39
364 
369 #define C6DOFIMU18_INT_SOURCE7_STEP_DET_INT2_EN 0x20
370 #define C6DOFIMU18_INT_SOURCE7_STEP_CNT_INT2_EN 0x10
371 #define C6DOFIMU18_INT_SOURCE7_TILT_DET_INT2_EN 0x08
372 #define C6DOFIMU18_INT_SOURCE7_TAP_DET_INT2_EN 0x01
373 #define C6DOFIMU18_INT_SOURCE7_MASK 0x39
374 
379 #define C6DOFIMU18_UI_FSYNC_INT_FLAG 0x40
380 #define C6DOFIMU18_PLL_DONE_INT_FLAG 0x20
381 #define C6DOFIMU18_RESET_DONE_INT_FLAG 0x10
382 #define C6DOFIMU18_DATA_RDY_INT_FLAG 0x08
383 #define C6DOFIMU18_FIFO_THS_INT_FLAG 0x04
384 #define C6DOFIMU18_FIFO_FULL_INT_FLAG 0x02
385 #define C6DOFIMU18_AGC_RDY_INT_FLAG 0x01
386 
391 #define C6DOFIMU18_SMD_INT_FLAG 0x08
392 #define C6DOFIMU18_WOM_Z_INT_FLAG 0x04
393 #define C6DOFIMU18_WOM_Y_INT_FLAG 0x02
394 #define C6DOFIMU18_WOM_X_INT_FLAG 0x01
395 
400 #define C6DOFIMU18_STEP_DET_INT_FLAG 0x10
401 #define C6DOFIMU18_STEP_CNT_OVF_INT_FLAG 0x08
402 #define C6DOFIMU18_TILT_DET_INT_FLAG 0x04
403 #define C6DOFIMU18_SLEEP_INT_FLAG 0x02
404 #define C6DOFIMU18_TAP_DET_INT_FLAG 0x01
405 
410 #define C6DOFIMU18_FIFO_HLD_LAST_DATA_EN 0x80
411 #define C6DOFIMU18_FIFO_COUNT_REC 0x40
412 #define C6DOFIMU18_FIFO_COUNT_ENDIAN 0x20
413 #define C6DOFIMU18_FIFO_DATA_ENDIAN 0x10
414 #define C6DOFIMU18_UI_SIFS_CFG_DISABLE_I2C 0x03
415 #define C6DOFIMU18_UI_SIFS_CFG_DISABLE_SPI 0x02
416 #define C6DOFIMU18_INTF_CONFIG0_MASK 0xF3
417 
422 #define C6DOFIMU18_ACCEL_LP_CLK_SEL_WAKE_UP_OSC 0x00
423 #define C6DOFIMU18_ACCEL_LP_CLK_SEL_RC_OSC 0x08
424 #define C6DOFIMU18_ACCEL_CLKSEL_RC 0x00
425 #define C6DOFIMU18_ACCEL_CLKSEL_PLL_OR_RC 0x01
426 #define C6DOFIMU18_ACCEL_CLKSEL_DISABLE 0x03
427 
432 #define C6DOFIMU18_SPI_3WIRE 0x00
433 #define C6DOFIMU18_SPI_4WIRE 0x02
434 
439 #define C6DOFIMU18_PIN9_INT2 0x00
440 #define C6DOFIMU18_PIN9_FSYNC 0x01
441 
446 #define C6DOFIMU18_DMP_INIT_EN 0x40
447 #define C6DOFIMU18_DMP_MEM_RESET_EN 0x20
448 #define C6DOFIMU18_ABORT_AND_RESET 0x08
449 #define C6DOFIMU18_TMST_STROBE 0x04
450 #define C6DOFIMU18_FIFO_FLUSH 0x02
451 
456 #define C6DOFIMU18_PWR_TEMP_DIS 0x20
457 #define C6DOFIMU18_PWR_IDLE_OFF 0x10
458 #define C6DOFIMU18_PWR_GYRO_MODE_OFF 0x00
459 #define C6DOFIMU18_PWR_GYRO_STANDBY 0x04
460 #define C6DOFIMU18_PWR_GYRO_LN_MODE 0x0C
461 #define C6DOFIMU18_PWR_ACCEL_MODE_OFF 0x00
462 #define C6DOFIMU18_PWR_ACCEL_LP_MODE 0x02
463 #define C6DOFIMU18_PWR_ACCEL_LN_MODE 0x03
464 
469 #define C6DOFIMU18_GYRO_FS_SEL_2000DPS 0x00
470 #define C6DOFIMU18_GYRO_FS_SEL_1000DPS 0x20
471 #define C6DOFIMU18_GYRO_FS_SEL_500DPS 0x40
472 #define C6DOFIMU18_GYRO_FS_SEL_250DPS 0x60
473 #define C6DOFIMU18_GYRO_FS_SEL_125DPS 0x80
474 #define C6DOFIMU18_GYRO_FS_SEL_62DPS 0xA0
475 #define C6DOFIMU18_GYRO_FS_SEL_32DPS 0xC0
476 #define C6DOFIMU18_GYRO_FS_SEL_15DPS 0xE0
477 #define C6DOFIMU18_GYRO_FS_SEL_MASK 0xE0
478 #define C6DOFIMU18_GYRO_ODR_8kHz 0x03
479 #define C6DOFIMU18_GYRO_ODR_4kHz 0x04
480 #define C6DOFIMU18_GYRO_ODR_2kHz 0x05
481 #define C6DOFIMU18_GYRO_ODR_1kHz 0x06
482 #define C6DOFIMU18_GYRO_ODR_200Hz 0x07
483 #define C6DOFIMU18_GYRO_ODR_100Hz 0x08
484 #define C6DOFIMU18_GYRO_ODR_50Hz 0x09
485 #define C6DOFIMU18_GYRO_ODR_25Hz 0x0A
486 #define C6DOFIMU18_GYRO_ODR_12Hz 0x0B
487 #define C6DOFIMU18_GYRO_ODR_500Hz 0x0F
488 #define C6DOFIMU18_GYRO_ODR_MASK 0x0F
489 #define C6DOFIMU18_GYRO_ODR_MASK 0x0F
490 
495 #define C6DOFIMU18_TEMP_FILT_BW_4kHz 0x00
496 #define C6DOFIMU18_TEMP_FILT_BW_170Hz 0x20
497 #define C6DOFIMU18_TEMP_FILT_BW_82Hz 0x40
498 #define C6DOFIMU18_TEMP_FILT_BW_40Hz 0x60
499 #define C6DOFIMU18_TEMP_FILT_BW_20Hz 0x80
500 #define C6DOFIMU18_TEMP_FILT_BW_10Hz 0xA0
501 #define C6DOFIMU18_TEMP_FILT_BW_5Hz_0 0xC0
502 #define C6DOFIMU18_TEMP_FILT_BW_5Hz_1 0xE0
503 #define C6DOFIMU18_GYRO_UI_FILT_ORD_1st 0x00
504 #define C6DOFIMU18_GYRO_UI_FILT_ORD_2nd 0x04
505 #define C6DOFIMU18_GYRO_UI_FILT_ORD_3rd 0x08
506 #define C6DOFIMU18_GYRO_UI_FILT_ORD_MASK 0x0C
507 #define C6DOFIMU18_GYRO_DEC2_M2_ORD_3rd 0x02
508 #define C6DOFIMU18_GYRO_CONFIG1_MASK 0xEF
509 
514 #define C6DOFIMU18_ACCEL_FS_SEL_16G 0x00
515 #define C6DOFIMU18_ACCEL_FS_SEL_8G 0x20
516 #define C6DOFIMU18_ACCEL_FS_SEL_4G 0x40
517 #define C6DOFIMU18_ACCEL_FS_SEL_2G 0x60
518 #define C6DOFIMU18_ACCEL_FS_SEL_MASK 0x60
519 #define C6DOFIMU18_ACCEL_ODR_8kHz_LN 0x03
520 #define C6DOFIMU18_ACCEL_ODR_4kHz_LN 0x04
521 #define C6DOFIMU18_ACCEL_ODR_2kHz_LN 0x05
522 #define C6DOFIMU18_ACCEL_ODR_1kHz_LN 0x06
523 #define C6DOFIMU18_ACCEL_ODR_200Hz_LP_LN 0x07
524 #define C6DOFIMU18_ACCEL_ODR_100Hz_LP_LN 0x08
525 #define C6DOFIMU18_ACCEL_ODR_50Hz_LP_LN 0x09
526 #define C6DOFIMU18_ACCEL_ODR_25Hz_LP_LN 0x0A
527 #define C6DOFIMU18_ACCEL_ODR_12Hz_LP_LN 0x0B
528 #define C6DOFIMU18_ACCEL_ODR_6Hz_LP 0x0C
529 #define C6DOFIMU18_ACCEL_ODR_3Hz_LP 0x0D
530 #define C6DOFIMU18_ACCEL_ODR_1Hz_LP 0x0E
531 #define C6DOFIMU18_ACCEL_ODR_500Hz_LP_LN 0x0F
532 #define C6DOFIMU18_ACCEL_ODR_MASK 0x0F
533 
538 #define C6DOFIMU18_ACCEL_UI_FILT_ORD_1st 0x00
539 #define C6DOFIMU18_ACCEL_UI_FILT_ORD_2nd 0x08
540 #define C6DOFIMU18_ACCEL_UI_FILT_ORD_3rd 0x10
541 #define C6DOFIMU18_ACCEL_UI_FILT_ORD_MASK 0x18
542 #define C6DOFIMU18_ACCEL_DEC2_M2_ORD_3rd 0x04
543 
548 #define C6DOFIMU18_TMST_TO_REGS_EN 0x10
549 #define C6DOFIMU18_TMST_RES 0x08
550 #define C6DOFIMU18_TMST_DELTA_EN 0x04
551 #define C6DOFIMU18_TMST_FSYNC_EN 0x02
552 #define C6DOFIMU18_TMST_EN 0x01
553 #define C6DOFIMU18_TMST_MASK 0x1F
554 
559 #define C6DOFIMU18_FIFO_BYPASS 0x00
560 #define C6DOFIMU18_FIFO_STREAM_TO_FIFO 0x40
561 #define C6DOFIMU18_FIFO_STOP_ON_FULL 0x80
562 #define C6DOFIMU18_FIFO_CONFIG_MASK 0xC0
563 
568 #define C6DOFIMU18_FIFO_RESUME_PARTIAL_RD 0x40
569 #define C6DOFIMU18_FIFO_WM_GT_TH 0x20
570 #define C6DOFIMU18_FIFO_TMST_FSYNC_EN 0x08
571 #define C6DOFIMU18_FIFO_TEMP_EN 0x04
572 #define C6DOFIMU18_FIFO_GYRO_EN 0x02
573 #define C6DOFIMU18_FIFO_ACCEL_EN 0x01
574 
579 #define C6DOFIMU18_DO_NOT_TAG_FSYNC 0x00
580 #define C6DOFIMU18_FSYNC_TAG_TEMP_OUT_LSB 0x10
581 #define C6DOFIMU18_FSYNC_GYRO_XOUT_LSB 0x20
582 #define C6DOFIMU18_FSYNC_GYRO_YOUT_LSB 0x30
583 #define C6DOFIMU18_FSYNC_GYRO_ZOUT_LSB 0x40
584 #define C6DOFIMU18_FSYNC_ACCEL_XOUT_LSB 0x50
585 #define C6DOFIMU18_FSYNC_ACCEL_YOUT_LSB 0x60
586 #define C6DOFIMU18_FSYNC_ACCEL_ZOUT_LSB 0x70
587 #define C6DOFIMU18_FSYNC_UI_SEL_MASK 0x70
588 #define C6DOFIMU18_FSYNC_UI_FLAG_CLEAR_SEL 0x02
589 #define C6DOFIMU18_FSYNC_POLARITY_RISING_EGDE 0x01
590 #define C6DOFIMU18_FSYNC_POLARITY_FALLING_EGDE 0x01
591 
596 #define C6DOFIMU18_DMP_POVER_SAVE_EN 0x80
597 #define C6DOFIMU18_TAP_ENABLE 0x40
598 #define C6DOFIMU18_PED_ENABLE 0x20
599 #define C6DOFIMU18_TILT_ENABLE 0x10
600 #define C6DOFIMU18_R2W_ENABLE 0x08
601 #define C6DOFIMU18_DMP_ODR_25Hz 0x00
602 #define C6DOFIMU18_DMP_ODR_50Hz 0x02
603 
608 #define C6DOFIMU18_LOW_ENERGY_AMP_TH_SEL 0xA0
609 #define C6DOFIMU18_DMP_POVER_SAVE_TIME_0S 0x00
610 #define C6DOFIMU18_DMP_POVER_SAVE_TIME_4S 0x01
611 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_8S 0x02
612 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_12S 0x03
613 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_16S 0x04
614 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_20S 0x05
615 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_24S 0x06
616 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_28S 0x07
617 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_32S 0x08
618 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_36S 0x09
619 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_40S 0x0A
620 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_44S 0x0B
621 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_48S 0x0C
622 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_52S 0x0D
623 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_56S 0x0E
624 #define C6DOFIMU18_DMP_POWER_SAVE_TIME_60S 0x0F
625 
630 #define C6DOFIMU18_PED_AMP_TH_SEL 0x80
631 #define C6DOFIMU18_PED_STEP_CNT_TH_0_STEPS 0x00
632 #define C6DOFIMU18_PED_STEP_CNT_TH_1_STEPS 0x01
633 #define C6DOFIMU18_PED_STEP_CNT_TH_2_STEPS 0x02
634 #define C6DOFIMU18_PED_STEP_CNT_TH_3_STEPS 0x03
635 #define C6DOFIMU18_PED_STEP_CNT_TH_4_STEPS 0x04
636 #define C6DOFIMU18_PED_STEP_CNT_TH_5_STEPS 0x05
637 #define C6DOFIMU18_PED_STEP_CNT_TH_6_STEPS 0x06
638 #define C6DOFIMU18_PED_STEP_CNT_TH_7_STEPS 0x07
639 #define C6DOFIMU18_PED_STEP_CNT_TH_8_STEPS 0x08
640 #define C6DOFIMU18_PED_STEP_CNT_TH_9_STEPS 0x09
641 #define C6DOFIMU18_PED_STEP_CNT_TH_10_STEPS 0x0A
642 #define C6DOFIMU18_PED_STEP_CNT_TH_11_STEPS 0x0B
643 #define C6DOFIMU18_PED_STEP_CNT_TH_12_STEPS 0x0C
644 #define C6DOFIMU18_PED_STEP_CNT_TH_13_STEPS 0x0D
645 #define C6DOFIMU18_PED_STEP_CNT_TH_14_STEPS 0x0E
646 #define C6DOFIMU18_PED_STEP_CNT_TH_15_STEPS 0x0F
647 #define C6DOFIMU18_PED_STEP_CNT_TH_MASK 0x0F
648 
653 #define C6DOFIMU18_PED_STEP_DET_TH_0_STEPS 0x00
654 #define C6DOFIMU18_PED_STEP_DET_TH_1_STEPS 0x20
655 #define C6DOFIMU18_PED_STEP_DET_TH_2_STEPS 0x40
656 #define C6DOFIMU18_PED_STEP_DET_TH_3_STEPS 0x60
657 #define C6DOFIMU18_PED_STEP_DET_TH_4_STEPS 0x80
658 #define C6DOFIMU18_PED_STEP_DET_TH_5_STEPS 0xA0
659 #define C6DOFIMU18_PED_STEP_DET_TH_6_STEPS 0xC0
660 #define C6DOFIMU18_PED_STEP_DET_TH_7_STEPS 0xE0
661 #define C6DOFIMU18_PED_SB_TIMER_TH_0_SAMPLES 0x00
662 #define C6DOFIMU18_PED_SB_TIMER_TH_1_SAMPLES 0x04
663 #define C6DOFIMU18_PED_SB_TIMER_TH_2_SAMPLES 0x08
664 #define C6DOFIMU18_PED_SB_TIMER_TH_3_SAMPLES 0x0C
665 #define C6DOFIMU18_PED_SB_TIMER_TH_4_SAMPLES 0x10
666 #define C6DOFIMU18_PED_SB_TIMER_TH_5_SAMPLES 0x14
667 #define C6DOFIMU18_PED_SB_TIMER_TH_6_SAMPLES 0x18
668 #define C6DOFIMU18_PED_SB_TIMER_TH_7_SAMPLES 0x1C
669 #define C6DOFIMU18_PED_HI_EN_TH_SEL 0x01
670 
675 #define C6DOFIMU18_TILT_WAIT_TIME_0S 0x00
676 #define C6DOFIMU18_TILT_WAIT_TIME_2S 0x40
677 #define C6DOFIMU18_TILT_WAIT_TIME_4S 0x80
678 #define C6DOFIMU18_TILT_WAIT_TIME_6S 0xC0
679 #define C6DOFIMU18_TILT_WAIT_TIME_MASK 0xC0
680 #define C6DOFIMU18_SLEEP_TIME_OUT_1s28 0x00
681 #define C6DOFIMU18_SLEEP_TIME_OUT_2s56 0x08
682 #define C6DOFIMU18_SLEEP_TIME_OUT_3s84 0x10
683 #define C6DOFIMU18_SLEEP_TIME_OUT_5s12 0x18
684 #define C6DOFIMU18_SLEEP_TIME_OUT_6s4 0x20
685 #define C6DOFIMU18_SLEEP_TIME_OUT_7s68 0x28
686 #define C6DOFIMU18_SLEEP_TIME_OUT_8s96 0x30
687 #define C6DOFIMU18_SLEEP_TIME_OUT_10s24 0x38
688 #define C6DOFIMU18_SLEEP_TIME_OUT_MASK 0x38
689 
694 #define C6DOFIMU18_TAP_MIN_JERK_THR 0x44
695 #define C6DOFIMU18_TAP_MAX_OEAK_TOL 0x01
696 
701 #define C6DOFIMU18_TAP_TMAX 0x20
702 #define C6DOFIMU18_TAP_TAVG 0x08
703 #define C6DOFIMU18_TAP_TMIN 0x03
704 
709 #define C6DOFIMU18_SENSITIVITY_MODE_HIGH_PERF 0x00
710 #define C6DOFIMU18_SENSITIVITY_MODE_SLOW_WALK 0x01
711 
716 #define C6DOFIMU18_TEMPERATURE_DIV 132.48
717 #define C6DOFIMU18_TEMPERATURE_ADD 25
718 
723 #define C6DOFIMU18_WHO_AM_I_VALUE 0x42
724 
730 #define C6DOFIMU18_DEVICE_ADDRESS_GND 0x68
731 #define C6DOFIMU18_DEVICE_ADDRESS_VCC 0x69
732 
741 #define C6DOFIMU18_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
742 #define C6DOFIMU18_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
743  // c6dofimu18_set
745 
760 #define C6DOFIMU18_MAP_MIKROBUS( cfg, mikrobus ) \
761  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
762  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
763  cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
764  cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
765  cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
766  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
767  cfg.ryc = MIKROBUS( mikrobus, MIKROBUS_AN ); \
768  cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
769  // c6dofimu18_map // c6dofimu18
772 
777 typedef enum
778 {
783 
788 typedef err_t ( *c6dofimu18_master_io_t )( struct c6dofimu18_s*, uint8_t, uint8_t*, uint8_t );
794 typedef struct c6dofimu18_s
795 {
796  digital_in_t ryc;
797  digital_in_t int_pin;
799  i2c_master_t i2c;
800  spi_master_t spi;
802  uint8_t slave_address;
803  pin_name_t chip_select;
804  spi_master_mode_t spi_mode;
805  uint8_t slew_rate;
812 
817 typedef struct
818 {
819  pin_name_t scl;
820  pin_name_t sda;
821  pin_name_t miso;
822  pin_name_t mosi;
823  pin_name_t sck;
824  pin_name_t cs;
825  pin_name_t ryc;
826  pin_name_t int_pin;
828  uint32_t i2c_speed;
829  uint8_t i2c_address;
831  uint32_t spi_speed;
832  spi_master_mode_t spi_mode;
833  spi_master_chip_select_polarity_t cs_polarity;
838 
843 typedef struct
844 {
845  int16_t data_x;
846  int16_t data_y;
847  int16_t data_z;
848 
850 
855 typedef enum
856 {
860 
862 
879 
895 
910 
924 
939 err_t c6dofimu18_generic_write ( c6dofimu18_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len );
940 
955 err_t c6dofimu18_generic_read ( c6dofimu18_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len );
956 
969 err_t c6dofimu18_set_reg_bank( c6dofimu18_t *ctx, uint8_t bank );
970 
987 err_t c6dofimu18_reg_write ( c6dofimu18_t *ctx, uint8_t reg_bank, uint8_t reg, uint8_t *data_in, uint8_t len );
988 
1003 err_t c6dofimu18_reg_read ( c6dofimu18_t *ctx, uint8_t reg_bank, uint8_t reg, uint8_t *data_out, uint8_t len );
1004 
1016 err_t c6dofimu18_configure_digital_interface ( c6dofimu18_t *ctx, uint8_t slew_rate );
1017 
1027 
1036 uint8_t c6dofimu18_get_int1_state ( c6dofimu18_t *ctx );
1037 
1050 
1063 err_t c6dofimu18_read_temperature ( c6dofimu18_t *ctx, float *temperature_data );
1064 
1077 err_t c6dofimu18_read_timestamp ( c6dofimu18_t *ctx, uint32_t *tmst_data );
1078 
1094 err_t c6dofimu18_get_data_from_register ( c6dofimu18_t *ctx, float *temperature_data,
1095  c6dofimu18_data_t *accel_data, c6dofimu18_data_t *gyro_data,
1096  uint32_t *tmst_data );
1097 
1109 
1123 err_t c6dofimu18_get_tap_detection ( c6dofimu18_t *ctx, uint8_t *tap_num, uint8_t *tap_axis, uint8_t *tap_dir );
1124 
1125 #ifdef __cplusplus
1126 }
1127 #endif
1128 #endif // C6DOFIMU18_H
1129  // c6dofimu18
1131 
1132 // ------------------------------------------------------------------------ END
c6dofimu18_init
err_t c6dofimu18_init(c6dofimu18_t *ctx, c6dofimu18_cfg_t *cfg)
6DOF IMU 18 initialization function.
c6dofimu18_get_tap_detection
err_t c6dofimu18_get_tap_detection(c6dofimu18_t *ctx, uint8_t *tap_num, uint8_t *tap_axis, uint8_t *tap_dir)
6DOF IMU 18 get tap detection data function.
c6dofimu18_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: c6dofimu18.h:828
c6dofimu18_sw_reset
err_t c6dofimu18_sw_reset(c6dofimu18_t *ctx)
6DOF IMU 18 software reset function.
c6dofimu18_reg_read
err_t c6dofimu18_reg_read(c6dofimu18_t *ctx, uint8_t reg_bank, uint8_t reg, uint8_t *data_out, uint8_t len)
6DOF IMU 18 data reading function.
c6dofimu18_s::chip_select
pin_name_t chip_select
Definition: c6dofimu18.h:803
c6dofimu18_s::ryc
digital_in_t ryc
Definition: c6dofimu18.h:796
c6dofimu18_s::slew_rate
uint8_t slew_rate
Definition: c6dofimu18.h:805
c6dofimu18_drv_t
c6dofimu18_drv_t
6DOF IMU 18 Click driver selector.
Definition: c6dofimu18.h:778
spi_specifics.h
This file contains SPI specific macros, functions, etc.
c6dofimu18_s
6DOF IMU 18 Click context object.
Definition: c6dofimu18.h:795
c6dofimu18_set_basic_tap_detection
err_t c6dofimu18_set_basic_tap_detection(c6dofimu18_t *ctx)
6DOF IMU 18 basic tap detection configuration function.
c6dofimu18_master_io_t
err_t(* c6dofimu18_master_io_t)(struct c6dofimu18_s *, uint8_t, uint8_t *, uint8_t)
6DOF IMU 18 Click driver interface.
Definition: c6dofimu18.h:788
c6dofimu18_s::drv_sel
c6dofimu18_drv_t drv_sel
Definition: c6dofimu18.h:806
c6dofimu18_read_timestamp
err_t c6dofimu18_read_timestamp(c6dofimu18_t *ctx, uint32_t *tmst_data)
6DOF IMU 18 read timestamp function.
c6dofimu18_get_int1_state
uint8_t c6dofimu18_get_int1_state(c6dofimu18_t *ctx)
6DOF IMU 18 read INT1 pin state function.
c6dofimu18_s::i2c
i2c_master_t i2c
Definition: c6dofimu18.h:799
C6DOFIMU18_DRV_SEL_I2C
@ C6DOFIMU18_DRV_SEL_I2C
Definition: c6dofimu18.h:780
C6DOFIMU18_RESET_ERROR
@ C6DOFIMU18_RESET_ERROR
Definition: c6dofimu18.h:859
c6dofimu18_default_cfg
err_t c6dofimu18_default_cfg(c6dofimu18_t *ctx)
6DOF IMU 18 default configuration function.
c6dofimu18_cfg_t::sck
pin_name_t sck
Definition: c6dofimu18.h:823
c6dofimu18_cfg_t
6DOF IMU 18 Click configuration object.
Definition: c6dofimu18.h:818
c6dofimu18_cfg_t::int_pin
pin_name_t int_pin
Definition: c6dofimu18.h:826
c6dofimu18_cfg_t::drv_sel
c6dofimu18_drv_t drv_sel
Definition: c6dofimu18.h:835
c6dofimu18_data_t::data_x
int16_t data_x
Definition: c6dofimu18.h:845
c6dofimu18_cfg_t::scl
pin_name_t scl
Definition: c6dofimu18.h:819
c6dofimu18_reg_write
err_t c6dofimu18_reg_write(c6dofimu18_t *ctx, uint8_t reg_bank, uint8_t reg, uint8_t *data_in, uint8_t len)
6DOF IMU 18 register data writing function.
c6dofimu18_read_temperature
err_t c6dofimu18_read_temperature(c6dofimu18_t *ctx, float *temperature_data)
6DOF IMU 18 read temperature function.
c6dofimu18_t
struct c6dofimu18_s c6dofimu18_t
6DOF IMU 18 Click context object.
c6dofimu18_cfg_setup
void c6dofimu18_cfg_setup(c6dofimu18_cfg_t *cfg)
6DOF IMU 18 configuration object setup function.
c6dofimu18_cfg_t::i2c_address
uint8_t i2c_address
Definition: c6dofimu18.h:829
c6dofimu18_cfg_t::spi_speed
uint32_t spi_speed
Definition: c6dofimu18.h:831
c6dofimu18_data_t::data_z
int16_t data_z
Definition: c6dofimu18.h:847
c6dofimu18_s::spi
spi_master_t spi
Definition: c6dofimu18.h:800
c6dofimu18_return_value_t
c6dofimu18_return_value_t
6DOF IMU 18 Click return value data.
Definition: c6dofimu18.h:856
c6dofimu18_configure_digital_interface
err_t c6dofimu18_configure_digital_interface(c6dofimu18_t *ctx, uint8_t slew_rate)
6DOF IMU 18 configure digital interface function.
c6dofimu18_generic_write
err_t c6dofimu18_generic_write(c6dofimu18_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
6DOF IMU 18 data writing function.
c6dofimu18_s::int_pin
digital_in_t int_pin
Definition: c6dofimu18.h:797
c6dofimu18_s::write_f
c6dofimu18_master_io_t write_f
Definition: c6dofimu18.h:808
C6DOFIMU18_OK
@ C6DOFIMU18_OK
Definition: c6dofimu18.h:857
C6DOFIMU18_ERROR
@ C6DOFIMU18_ERROR
Definition: c6dofimu18.h:858
c6dofimu18_set_reg_bank
err_t c6dofimu18_set_reg_bank(c6dofimu18_t *ctx, uint8_t bank)
6DOF IMU 18 set register bank function.
c6dofimu18_data_t::data_y
int16_t data_y
Definition: c6dofimu18.h:846
c6dofimu18_s::read_f
c6dofimu18_master_io_t read_f
Definition: c6dofimu18.h:809
c6dofimu18_s::slave_address
uint8_t slave_address
Definition: c6dofimu18.h:802
c6dofimu18_s::spi_mode
spi_master_mode_t spi_mode
Definition: c6dofimu18.h:804
c6dofimu18_cfg_t::spi_mode
spi_master_mode_t spi_mode
Definition: c6dofimu18.h:832
c6dofimu18_cfg_t::cs
pin_name_t cs
Definition: c6dofimu18.h:824
c6dofimu18_cfg_t::ryc
pin_name_t ryc
Definition: c6dofimu18.h:825
c6dofimu18_get_data_from_register
err_t c6dofimu18_get_data_from_register(c6dofimu18_t *ctx, float *temperature_data, c6dofimu18_data_t *accel_data, c6dofimu18_data_t *gyro_data, uint32_t *tmst_data)
6DOF IMU 18 read data function.
c6dofimu18_generic_read
err_t c6dofimu18_generic_read(c6dofimu18_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
6DOF IMU 18 data reading function.
c6dofimu18_data_t
6DOF IMU 18 data object.
Definition: c6dofimu18.h:844
c6dofimu18_cfg_t::cs_polarity
spi_master_chip_select_polarity_t cs_polarity
Definition: c6dofimu18.h:833
c6dofimu18_cfg_t::miso
pin_name_t miso
Definition: c6dofimu18.h:821
C6DOFIMU18_DRV_SEL_SPI
@ C6DOFIMU18_DRV_SEL_SPI
Definition: c6dofimu18.h:779
c6dofimu18_cfg_t::sda
pin_name_t sda
Definition: c6dofimu18.h:820
c6dofimu18_drv_interface_selection
void c6dofimu18_drv_interface_selection(c6dofimu18_cfg_t *cfg, c6dofimu18_drv_t drv_sel)
6DOF IMU 18 driver interface setup function.
c6dofimu18_cfg_t::mosi
pin_name_t mosi
Definition: c6dofimu18.h:822