Firmware Library for X-NUCLEO-IKS01A1 (MEMS Inertial & Environmental Sensors) Expansion Board
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: MultiTech_Dragonfly_2015_ATT_Gov_Solutions_Hackathon_Example HelloWorld_IKS01A1 LoRaWAN-test-10secs ServoMotorDemo ... more
Fork of X_NUCLEO_IKS01A1 by
lsm6ds3.h
00001 /** 00002 ****************************************************************************** 00003 * @file lsm6ds3.h 00004 * @author MEMS Application Team 00005 * @version V1.2.0 00006 * @date 28-May-2015 00007 * @brief This file contains definitions for the lsm6ds3.c firmware driver 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00012 * 00013 * Redistribution and use in source and binary forms, with or without modification, 00014 * are permitted provided that the following conditions are met: 00015 * 1. Redistributions of source code must retain the above copyright notice, 00016 * this list of conditions and the following disclaimer. 00017 * 2. Redistributions in binary form must reproduce the above copyright notice, 00018 * this list of conditions and the following disclaimer in the documentation 00019 * and/or other materials provided with the distribution. 00020 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00021 * may be used to endorse or promote products derived from this software 00022 * without specific prior written permission. 00023 * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00028 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00029 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00030 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00032 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 ****************************************************************************** 00036 */ 00037 00038 /* Define to prevent recursive inclusion -------------------------------------*/ 00039 #ifndef __LSM6DS3_H 00040 #define __LSM6DS3_H 00041 00042 #ifdef __cplusplus 00043 extern "C" { 00044 #endif 00045 00046 /* Includes ------------------------------------------------------------------*/ 00047 #include "imu_6axes.h" 00048 00049 /** @addtogroup BSP 00050 * @{ 00051 */ 00052 00053 /** @addtogroup Components 00054 * @{ 00055 */ 00056 00057 /** @addtogroup LSM6DS3 00058 * @{ 00059 */ 00060 00061 /** @addtogroup LSM6DS3_Exported_Defines LSM6DS3_Exported_Defines 00062 * @{ 00063 */ 00064 #ifndef NULL 00065 #define NULL (void *) 0 00066 #endif 00067 00068 /******************************************************************************/ 00069 /*********** START ACCELEROMETER AND GYROSCOPE REGISTER MAPPING **************/ 00070 /******************************************************************************/ 00071 00072 00073 /***************************************** COMMON REGISTERS ********************************************/ 00074 00075 /** 00076 * @brief FIFO control register 00077 * \code 00078 * Read/write 00079 * Default value: 0x00 00080 * [7] FUNC_CFG_EN: Enable access to the embedded functions configuration registers (1) from address 02h to 32h. Default value: 0. 00081 * [6:0] This bit must be set to �0� for the correct operation of the device 00082 * \endcode 00083 */ 00084 #define LSM6DS3_XG_FUNC_CFG_ACCESS 0x01 00085 00086 /** 00087 * @brief FIFO control register 00088 * \code 00089 * Read/write 00090 * Default value: 0x00 00091 * [7:0] TPH_[7:0]: Sensor SyncronizationTime Frame with the step of 500ms and full range of 5s. Default: 0000 0000 00092 * \endcode 00093 */ 00094 #define LSM6DS3_XG_SENSOR_SYNC_TIME_FRAME 0x04 00095 00096 /** 00097 * @brief FIFO control register 00098 * \code 00099 * Read/write 00100 * Default value: 0x00 00101 * [7:2] This bit must be set to �0� for the correct operation of the device 00102 * [1] HP_RST: Gyro digital HP filter reset. Default: 0 00103 * [1] SENSOR_SYNC_ENHP_RST: Enable sensor synchronization feature. Default 0 00104 * \endcode 00105 */ 00106 #define LSM6DS3_XG_SENSOR_SYNC_ENABLE 0x05 00107 00108 00109 /** 00110 * @brief FIFO control register 00111 * \code 00112 * Read/write 00113 * Default value: 0x00 00114 * [7:0] FTH_7-0 FIFO threshold level setting - watermark flag is toggled when the number of bytes written to FIFO is greater or equal to threshold level. 00115 * \endcode 00116 */ 00117 #define LSM6DS3_XG_FIFO_CTRL1 0x06 00118 00119 /** 00120 * @brief FIFO control register 00121 * \code 00122 * Read/write 00123 * Default value: 0x00 00124 * [7] TIMER_PEDO_FIFO_EN: Enable Pedometer step counter and time stamp as 4th sensor FIFO data. Default: 0 disabled 00125 * [6] TIMER_PEDO_FIFO_DRDY : Pedometer FIFO write mode. Default: 0 disabled 00126 * [5:4] This bit must be set to �0� for the correct operation of the device 00127 * [3:0] FTH_[11:8] FIFO threshold level setting(1). Default value: 0000 00128 * \endcode 00129 */ 00130 #define LSM6DS3_XG_FIFO_CTRL2 0x07 00131 00132 /** 00133 * @brief FIFO control register 00134 * \code 00135 * Read/write 00136 * Default value: 0x00 00137 * [7:6] This bit must be set to �0� for the correct operation of the device 00138 * [5:3] DEC_FIFO_GYRO[2:0]: Gyro FIFO decimation setting. Default value: 000 00139 * [2:0] DEC_FIFO_XL[2:0]: XL FIFO decimation setting. Default value: 000 00140 * \endcode 00141 */ 00142 #define LSM6DS3_XG_FIFO_CTRL3 0x08 00143 00144 /** 00145 * @brief FIFO control register 00146 * \code 00147 * Read/write 00148 * Default value: 0x00 00149 * [7] This bit must be set to �0� for the correct operation of the device 00150 * [6] ONLY_HIGH_DATA :8 bit data storing in FIFO. Default: 0 00151 * [5:3] DEC_SLV1_FIFO[2:0] Second external sensor FIFO decimation setting. Default: 000 00152 * [2:0] DEC_SLV1_FIFO[2:0] First external sensor FIFO decimation setting. Default: 000 00153 * \endcode 00154 */ 00155 #define LSM6DS3_XG_FIFO_CTRL4 0x09 00156 00157 00158 /** 00159 * @brief FIFO control register 00160 * \code 00161 * Read/write 00162 * Default value: 0x00 00163 * [7] This bit must be set to �0� for the correct operation of the device 00164 * [6:3] ODR_FIFO_[3:0]: FIFO ODR selection. Default: 0000 00165 * [2:0] FIFO_MODE_[2:0] : FIFO mode selection bits. Default value: 000 00166 * \endcode 00167 */ 00168 #define LSM6DS3_XG_FIFO_CTRL5 0x0A 00169 00170 00171 /** 00172 * @brief Angular rate sensor sign and orientation register 00173 * \code 00174 * Read/write 00175 * Default value: 0x00 00176 * [7:6] This bit must be set to �0� for the correct operation of the device 00177 * [5] SignX_G: Pitch axis (X) Angular rate sign. Default value: 0 00178 * [5] SignY_G: Roll axis (Y) Angular rate sign. Default value: 0 00179 * [5] SignZ_G: Pitch axis (Z) Angular rate sign. Default value: 0 00180 * [2:0] Orient[2:0] : Directional user orientation selection. Default Value: 000 00181 * \endcode 00182 */ 00183 #define LSM6DS3_XG_ORIENT_CFG_G 0x0B 00184 00185 /** 00186 * @brief INT1 pad control registrer 00187 * \code 00188 * Read/write 00189 * Default value: 0x00 00190 * [7] INT1_PEDO: Pedometer step recognition interrupt enable on INT1 pad. Default value: 0 00191 * [6] INT1_SIGN_MOT: Significant motion interrupt enable on INT1 pad. Default value: 0 00192 * [5] INT1_FULL_FLAG: Full flag Interrupt Enable on INT1 pad. Default value: 0 00193 * [4] INT1_OVR: Overrun Interrupt on INT1 pad. Default value: 0 00194 * [3] INT1_FTH: FIFO threshold interrupt on INT1 pad. Default value: 0 00195 * [2] INT1_BOOT: Overrun Interrupt on INT1 pad. Default value: 0 00196 * [1] INT1_DRDY_G: Gyroscope Data Ready on INT1 pad. Default value: 0. 00197 * [0] INT1_DRDY_XL: Accelerometer Data Ready on INT1 pad. Default value: 0 00198 * \endcode 00199 */ 00200 #define LSM6DS3_XG_INT1_CTRL 0x0D 00201 00202 00203 //new, done 00204 /** 00205 * @brief INT2 pad control registrer 00206 * \code 00207 * Read/write 00208 * Default value: 0x00 00209 * [7] INT2_PEDO: Pedometer step recognition interrupt enable on INT1 pad. Default value: 0 00210 * [6] INT2_SIGN_MOT: Significant motion interrupt enable on INT1 pad. Default value: 0 00211 * [5] INT2_FULL_FLAG: Full flag Interrupt Enable on INT1 pad. Default value: 0 00212 * [4] INT2_OVR: Overrun Interrupt on INT1 pad. Default value: 0 00213 * [3] INT2_FTH: FIFO threshold interrupt on INT1 pad. Default value: 0 00214 * [2] INT2_BOOT: Overrun Interrupt on INT1 pad. Default value: 0 00215 * [1] INT2_DRDY_G: Gyroscope Data Ready on INT1 pad. Default value: 0. 00216 * [0] INT2_DRDY_XL: Accelerometer Data Ready on INT1 pad. Default value: 0 00217 * \endcode 00218 */ 00219 #define LSM6DS3_XG_INT2_CTRL 0x0E 00220 00221 00222 /** 00223 * @brief Device identifier register. 00224 * \code 00225 * Read 00226 * Default value:69 00227 * [7:0] This read-only register contains the device identifier 00228 * \endcode 00229 */ 00230 #define LSM6DS3_XG_WHO_AM_I_ADDR 0x0F 00231 00232 00233 /** 00234 * @brief Control Register 3 00235 * \code 00236 * Read/write 00237 * Default value: 0x00 00238 * [7] BOOT: Reboot memory content. Default value: 0 00239 * [6] BDU: Block Data Update. Default value: 0 00240 * [5] H_LACTIVE: Interrupt activation level. Default value: 0 00241 * [4] PP_OD: Push-pull/Open Drain selection on INT pad. Default value: 0 00242 * [3] SIM: SPI Serial Interface Mode selection. Default value: 0 00243 * [2] IF_INC: Register address automatically incremented during a multiple byte access with a serial interface (I2C or SPI). Default value: 0 00244 * [1] BLE: Big/Little Endian Data Selection. Default value: 0 00245 * [0] SW_RESET: Software Reset. Default value: 0 00246 * \endcode 00247 */ 00248 #define LSM6DS3_XG_CTRL3_C 0x12 00249 00250 /** 00251 * @brief Control Register 4 00252 * \code 00253 * Read/write 00254 * Default value: 0x00 00255 * [7] BW_SCAL_ODR: Accelerometer bandwidth selection. Default value: 0 00256 * [6] SLEEP_G: Gyroscope sleep mode enable. Default value: 0 00257 * [5] INT2_on_INT1: All interrupt signals available on INT1 pad enable. Default value: 0 00258 * [4] This bit must be set to �0� for the correct operation of the device 00259 * [3] DRDY_MASK: Configuration 1(3) Data Available Enable bit. Default Value: 0 00260 * [2] I2C_disable Disable I2C interface. Default value: 0 00261 * [1] MODE3_EN Enable auxiliary SPI interface (Mode3, refer to Table 1.). Default value: 0 00262 * [0] STOP_ON_FTH Enable FIFO threshold level use. Default value: 0. 00263 00264 * \endcode 00265 */ 00266 #define LSM6DS3_XG_CTRL4_C 0x13 00267 00268 /** 00269 * @brief Control Register 4 00270 * \code 00271 * Read/write 00272 * Default value: 0x00 00273 * [7:4] This bit must be set to �0� for the correct operation of the device 00274 * [3:2] ST_G[1:0]: Angular rate sensor Self Test Enable. Default value: 00 00275 * [1:0] ST_XL[1:0]: Linear acceleration sensor Self Test Enable. Default value: 00 00276 * \endcode 00277 */ 00278 #define LSM6DS3_XG_CTRL5_C 0x14 00279 00280 00281 /** 00282 * @brief Control Register 10 00283 * \code 00284 * Read/write 00285 * Default value: 0x38 00286 * [7:6] These bits must be set to �0� for the correct operation of the device 00287 * [5] Zen_G: Gyroscope�s Z-axis output enable. Default value: 1 00288 * [4] Yen_G: Gyroscope�s Y-axis output enable. Default value: 1 00289 * [3] Xen_G: Gyroscope�s X-axis output enable. Default value: 1 00290 * [2] FUNC_EN: Enable embedded functionalities (pedometer, tilt and significant motion) . Default value: 0 00291 * [1] PEDO_RST_STEP: Reset pedometer step counter . Default value: 0 00292 * [0] SIGN_MOTION_EN: Enable significant motion function. For a correct functionality of significant motion function, TILT_EN bit in FUNC_SRC (53h) register must be set to 1 . Default value: 1 00293 * \endcode 00294 */ 00295 #define LSM6DS3_XG_CTRL10_C 0x19 00296 00297 00298 /** 00299 * @brief Sensor hub Master config Register 00300 * \code 00301 * Read/write 00302 * Default value: 0x00 00303 * [7] DRDY_ON_INT1:Manage the DRDY signal on INT1 pad. Default: 0 00304 * [6] DATA_VALID_SEL_FIFO: Selection of FIFO data-valid signal. Default value: 0 00305 * [5] This bit must be set to �0� for the correct operation of the device 00306 * [4] START_CONFIG: Sensor Hub trigger signal selection. Default value: 0 00307 * [3] PULL_UP_EN: Auxiliary I2C pull-up. Default value: 0 00308 * [2] PASS_THROUGH_MODE: I2C interface pass-through. Default value: 0 00309 * [1] IRON_EN:Enable soft iron correction algorithm for magnetometer. Default value: 0. 00310 * [0] MASTER_ON: Sensor Hub I2C master enable. Default: 0 00311 * \endcode 00312 */ 00313 #define LSM6DS3_XG_MASTER_CONFIG 0x1A 00314 00315 00316 /** 00317 * @brief Wake up interrupt source register 00318 * \code 00319 * Read 00320 * Default value: output 00321 * [7:6] This bit must be set to �0� for the correct operation of the device 00322 * [5] FF_IA: Free fall event detection status. Default: 0 00323 * [4] SLEEP_STATE_IA: Sleep event status. Default value: 0 00324 * [3] WU_IA: Wake up event detection status. Default 00325 * [2] X_WU: detection status on X axis. Default value: 0 00326 * [1] Y_WU: detection status on Y axis. Default value: 0 00327 * [0] Z_WU: detection status on Z axis. Default value: 0 00328 * \endcode 00329 */ 00330 #define LSM6DS3_XG_WAKE_UP_SRC 0x1B 00331 00332 /** 00333 * @brief Tap source register 00334 * \code 00335 * Read 00336 * Default value: output 00337 * [7] This bit must be set to �0� for the correct operation of the device 00338 * [6] TAP_IA: Tap event detection status. Default: 0 00339 * [5] SINGLE_TAP: Single tap event status. Default value: 0 00340 * [4] DOUBLE_TAP: Double tap event detection status. Default value: 0 00341 * [3] TAP_SIGN: Sign of acceleration detected by tap event. Default: 0 00342 * [2] X_TAP: Tap event detection status on X axis. Default value: 0 00343 * [1] Y_TAP: Tap event detection status on Y axis. Default value: 0 00344 * [0] Z_TAP: Tap event detection status on Z axis. Default value: 0 00345 * \endcode 00346 */ 00347 #define LSM6DS3_XG_TAP_SRC 0x1C 00348 00349 /** 00350 * @brief Portrait, landscape face-up and face-down source register 00351 * \code 00352 * Read 00353 * Default value: output 00354 * [7] This bit must be set to �0� for the correct operation of the device 00355 * [6] D6D_IA: Interrupt active for change position portrait, landscape, face-up, face-down. Default value: 0 00356 * [5] ZH: Z-axis high event (over-threshold). Default value: 0 00357 * [4] ZL: Z-axis low event (under-threshold). Default value: 0 00358 * [5] YH: Y-axis high event (over-threshold). Default value: 0 00359 * [4] YL: Y-axis low event (under-threshold). Default value: 0 00360 * [5] X_H: X-axis high event (over-threshold). Default value: 0 00361 * [4] X_L: X-axis low event (under-threshold). Default value: 0 00362 * \endcode 00363 */ 00364 #define LSM6DS3_XG_D6D_SRC 0x1D 00365 00366 /** 00367 * @brief Status register 00368 * \code 00369 * Read 00370 * Default value: output 00371 * [7:4] No meaning set 00372 * [3] EV_BOOT: Boot running flag signal. Default value: 0 00373 * [2] No meaning set 00374 * [1] GDA: Gyroscope new data avaialble. Default value: 0 00375 * [0] XLDA: Accelerometer new data avaialble. Default value: 0 00376 * \endcode 00377 */ 00378 #define LSM6DS3_XG_STATUS_REG 0x1E 00379 00380 /** 00381 * @brief FIFO status control register 00382 * \code 00383 * Read 00384 * Default value: 0x00 00385 * [7:0] DIFF_FIFO_[7:0]: Number of unread words (16 bit axes) stored in FIFO . For a complete number of unread samples, consider DIFF_FIFO [11:8] in FIFO_STATUS2 (3Bh) 00386 * \endcode 00387 */ 00388 #define LSM6DS3_XG_FIFO_STATUS1 0x3A 00389 00390 /** 00391 * @brief FIFO status control register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0. 00392 * \code 00393 * Read 00394 * Default value: 0x00 00395 * [7] FTH FIFO watermark status. Deafult value: 0 00396 * [6] OVER_RUN: FIFO overrun status. Default value: 0 00397 * [5] FIFO_FULL: FIFO full status. Default value: 0 00398 * [5] FIFO_EMPTY: FIFO empty bit. Default value: 0; 0: FIFO contains data; 1: FIFO is empty 00399 * [3:0] DIFF_FIFO_[11:8] Number of unread words (16 bit axes) stored in FIFO : For a complete number of unread samples, consider DIFF_FIFO [11:8] in FIFO_STATUS1 (3Ah) 00400 * \endcode 00401 */ 00402 #define LSM6DS3_XG_FIFO_STATUS2 0x3B 00403 00404 /** 00405 * @brief FIFO status control register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0 00406 * \code 00407 * Read 00408 * Default value: 0x00 00409 * [7:0] FIFO_PATTERN_[7:0] : Word of recursive pattern read at the next reading 00410 * \endcode 00411 */ 00412 #define LSM6DS3_XG_FIFO_STATUS3 0x3C 00413 00414 /** 00415 * @brief FIFO status control register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0 00416 * \code 00417 * Read 00418 * Default value: 0x00 00419 * [1:0] FIFO_PATTERN_[9:8] : Word of recursive pattern read at the next reading 00420 * \endcode 00421 */ 00422 #define LSM6DS3_XG_FIFO_STATUS4 0x3D 00423 00424 /** 00425 * @brief FIFO status control register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0. 00426 * \code 00427 * Read 00428 * Default value: 0x00 00429 * [4:0] FIFO_PATTERN_[9:8] : Word of recursive pattern read at the next reading 00430 * \endcode 00431 */ 00432 #define LSM6DS3_XG_FIFO_STATUS4 0x3D 00433 00434 /** 00435 * @brief FIFO data output register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0. 00436 * \code 00437 * Read 00438 * Default value: 0x00 00439 * [7:0] DATA_OUT_FIFO_L_[7:0]: FIFO data output (First byte) 00440 * \endcode 00441 */ 00442 #define LSM6DS3_XG_FIFO_DATA_OUT_L 0x3E 00443 00444 /** 00445 * @brief FIFO data output register (r). For a proper reading of the register it is suggested to set BDU bit in CTRL3_C (12h) to 0. 00446 * \code 00447 * Read 00448 * Default value: 0x00 00449 * [7:0] DATA_OUT_FIFO_H_[7:0]: FIFO data output (second byte) 00450 * \endcode 00451 */ 00452 #define LSM6DS3_XG_FIFO_DATA_OUT_H 0x3F 00453 00454 /** 00455 * @brief Time stamp first byte data output register (r). The value is expressed as 24 bit and the bit resolution is defined by setting value in WAKE_UP_DUR (5Ch). 00456 * \code 00457 * Read 00458 * Default value: output 00459 * [7:0] TIMESTAMP0_[7:0]: FIFO first byte data output 00460 * \endcode 00461 */ 00462 #define LSM6DS3_XG_TIMESTAMP0_REG 0x40 00463 00464 /** 00465 * @brief Time stamp second byte data output register (r). The value is expressed as 24 bit and the bit resolution is defined by setting value in WAKE_UP_DUR (5Ch). 00466 * \code 00467 * Read 00468 * Default value: output 00469 * [7:0] TIMESTAMP1_[7:0]: FIFO second byte data output 00470 * \endcode 00471 */ 00472 #define LSM6DS3_XG_TIMESTAMP1_REG 0x41 00473 00474 /** 00475 * @brief Time stamp third byte data output register (r). The value is expressed as 24 bit and the bit resolution is defined by setting value in WAKE_UP_DUR (5Ch). 00476 * \code 00477 * Read 00478 * Default value: output 00479 * [7:0] TIMESTAMP2_[7:0]: FIFO third byte data output 00480 * \endcode 00481 */ 00482 #define LSM6DS3_XG_TIMESTAMP2_REG 0x42 00483 00484 /** 00485 * @brief Step counter output register (r). 00486 * \code 00487 * Read 00488 * Default value: output 00489 * [7:0] STEP_COUNTER_L_[7:0]: Step counter output (LSbyte) 00490 * \endcode 00491 */ 00492 #define LSM6DS3_XG_STEP_COUNTER_L 0x4B 00493 00494 /** 00495 * @brief Step counter output register (r). 00496 * \code 00497 * Read 00498 * Default value: output 00499 * [7:0] STEP_COUNTER_H_[7:0]: Step counter output (MSbyte) 00500 * \endcode 00501 */ 00502 #define LSM6DS3_XG_STEP_COUNTER_H 0x4C 00503 00504 /** 00505 * @brief Significant motion, tilt, step detector, soft iron and sensor hub interrupt source register 00506 * \code 00507 * Read 00508 * Default value: output 00509 * [7] This bit must be set to �0� for the correct operation of the device 00510 * [6] SIGN_MOTION_IA: Significant motion event detection status. Default value: 0 00511 * [5] TILT_IA: Tilt event detection status. Default value: 0 00512 * [5] STEP_DETECTED: Step detector event detection status. Default value: 0 00513 * [3:2] This bit must be set to �0� for the correct operation of the device 00514 * [1] SI_END_OP:Soft iron calculation status. Default value: 0 00515 * [0] SENSORHUB_END_OP:Senso hub communication status. Default value: 0 00516 * \endcode 00517 */ 00518 #define LSM6DS3_XG_FUNC_SRC 0x53 00519 00520 /** 00521 * @brief Time stamp, pedometer, tilt, filtering, and tap recognition functions configuration register 00522 * \code 00523 * Read/write 00524 * Default value: 0x00 00525 * [7] TIMER_EN: Time stamp count enable, output data are collected in TIMESTAMP0_REG (40h), TIMESTAMP1_REG (41h), TIMESTAMP2_REG (42h) register. Default: 0 00526 * [6] PEDO_EN: Pedometer algorithm enable(1). Default value: 0 00527 * [5] TILT_EN: Tilt calculation enable.(2) Default value: 0 00528 * [4] This bit must be set to �0� for the correct operation of the device 00529 * [3] TAP_X_EN: Enable X direction in tap recognition. Default value: 0 00530 * [2] TAP_Y_EN: Enable Z direction in tap recognition. Default value: 0 00531 * [1] TAP_Z_EN: Enable Z direction in tap recognition. Default value: 0 00532 * [0] LIR: Relatch of the time stamp, pedometer, tilt, filtering, and tap recognition functions routed to PINs. 00533 * \endcode 00534 */ 00535 #define LSM6DS3_XG_TAP_CFG 0x58 00536 00537 /** 00538 * @brief Portrait/landscape position and tap function threshold register 00539 * \code 00540 * Read/write 00541 * Default value: 0x00 00542 * [7] This bit must be set to �0� for the correct operation of the device 00543 * [6:5] SIXD_THS[1:0]: Threshold for D6D function. Default value: 00 00544 * [4:0] TAP_THS[4:0]: Threshold for tap recognition. Default value: 0000 00545 * \endcode 00546 */ 00547 #define LSM6DS3_XG_TAP_THS_6D 0x59 00548 00549 /** 00550 * @brief Tap recognition function setting register (r/w) 00551 * \code 00552 * Read/write 00553 * Default value: 0x00 00554 * [7:4] DUR[3:0]: Duration of maximum time gap for double tap recognition. Default: 0000 00555 * [3:2] QUIET[1:0]: Expected quiet time after a tap detection. Default value: 00 00556 * [1:0] SHOCK[1:0]: Maximum duration of over-threshold event. Default value: 00 00557 * \endcode 00558 */ 00559 #define LSM6DS3_XG_INT_DUR2 0x5A 00560 00561 /** 00562 * @brief Tap recognition function setting register 00563 * \code 00564 * Read/write 00565 * Default value: 0x00 00566 * [7] SINGLE_DOUBLE_TAP: Single/double tap event detection. Default: 0 00567 * [6] INACTIVITY: Inactivity event enable. Default value: 0 00568 * [5:0] WK_THS[5:0]:Threshold for wake-up. Default value: 0000 00569 * \endcode 00570 */ 00571 #define LSM6DS3_XG_WAKE_UP_THS 0x5B 00572 00573 /** 00574 * @brief Free-fall, wake-up, time stamp and sleep mode functions duration setting register (r/w). 00575 * \code 00576 * Read/write 00577 * Default value: 0x00 00578 * [7] FF_DUR5:Free fall duration event. Default: 0 00579 * [6:5] WAKE_DUR[1:0]: Wake up duration event. Default: 00 00580 * [4] TIMER_HR: Time stamp register resolution setting(1). Default value: 0 00581 * [3:0] SLEEP_DUR[3:0] : Duration to go in sleep mode. Default value: 0000 00582 * \endcode 00583 */ 00584 #define LSM6DS3_XG_WAKE_UP_DUR 0x5C 00585 00586 /** 00587 * @brief Free-fall function duration setting register 00588 * \code 00589 * Read/write 00590 * Default value: 0x00 00591 * [7:3] FF_DUR[4:0]: Free fall duration event. Default: 0. For the complete configuration of the free fall duration, refer to FF_DUR5 in WAKE_UP_DUR (5Ch) configuration 00592 * [2:0] FF_THS[2:0]: Free fall threshold setting. Default: 000. 00593 * \endcode 00594 */ 00595 #define LSM6DS3_XG_WAKE_FREE_FALL 0x5D 00596 00597 /** 00598 * @brief Functions routing on INT1 register 00599 * \code 00600 * Read/write 00601 * Default value: 0x00 00602 * [7] INT1_INACT_STATE: Routing on INT1 of inactivity mode. Default: 0 00603 * [6] INT1_SINGLE_TAP: Single tap recognition routing on INT1. Default: 0 00604 * [5] INT1_WU: Routing of wake-up event on INT1. Default value: 0 00605 * [4] INT1_FF: Routing of free-fall event on INT1. Default value: 0 00606 * [3] INT1_TAP: Routing of tap event on INT1. Default value: 0 00607 * [2] INT1_6D: Routing of 6D event on INT1. Default value: 0 00608 * [1] INT1_TILT: Routing of tilt event on INT1. Default value: 0 00609 * [0] INT1_TIMER: Routing of end counter event of timer on INT1. Default value: 0 00610 * \endcode 00611 */ 00612 #define LSM6DS3_XG_MD1_CFG 0x5E 00613 00614 /** 00615 * @brief Functions routing on INT2 register 00616 * \code 00617 * Read/write 00618 * Default value: 0x00 00619 * [7] INT2_INACT_STATE: Routing on INT1 of inactivity mode. Default: 0 00620 * [6] INT2_SINGLE_TAP: Single tap recognition routing on INT1. Default: 0 00621 * [5] INT2_WU: Routing of wake-up event on INT1. Default value: 0 00622 * [4] INT2_FF: Routing of free-fall event on INT1. Default value: 0 00623 * [3] INT2_TAP: Routing of tap event on INT1. Default value: 0 00624 * [2] INT2_6D: Routing of 6D event on INT1. Default value: 0 00625 * [1] INT2_TILT: Routing of tilt event on INT1. Default value: 0 00626 * [0] INT2_TIMER: Routing of end counter event of timer on INT1. Default value: 0 00627 * \endcode 00628 */ 00629 #define LSM6DS3_XG_MD2_CFG 0x5F 00630 00631 /***************************************** SENSORHUB REGISTERS ********************************************/ 00632 00633 /** 00634 * @brief SENSORHUB REGISTER 1 : SLV0 first external sensor, first axis output register (r). The value is expressed as 16bit word in two�s complement 00635 * \code 00636 * Read 00637 * Default value: 0x00 00638 * [7:0] SHUB1[7:0]: SLV0 first external sensor, first byte of the first axis. 00639 * \endcode 00640 */ 00641 #define LSM6DS3_XG_SENSORHUB1_REG 0x2E 00642 00643 /** 00644 * @brief SENSORHUB REGISTER 2 : SLV0 first external sensor, first axis output register (r). The value is expressed as 16bit word in two�s complement 00645 * \code 00646 * Read 00647 * Default value: 0x00 00648 * [7:0] SHUB2[7:0]: SLV0 first external sensor, second byte of the first axis. 00649 * \endcode 00650 */ 00651 #define LSM6DS3_XG_SENSORHUB2_REG 0x2F 00652 00653 /** 00654 * @brief SENSORHUB REGISTER 3 : SLV0 first external sensor, second axis output register (r). The value is expressed as 16bit word in two�s complement 00655 * \code 00656 * Read 00657 * Default value: 0x00 00658 * [7:0] SHUB3[7:0]: SLV0 first external sensor, first byte of the second axis. 00659 * \endcode 00660 */ 00661 #define LSM6DS3_XG_SENSORHUB3_REG 0x30 00662 00663 /** 00664 * @brief SENSORHUB REGISTER 4 : SLV0 first external sensor, second axis output register (r). The value is expressed as 16bit word in two�s complement 00665 * \code 00666 * Read 00667 * Default value: 0x00 00668 * [7:0] SHUB4[7:0]: SLV0 first external sensor, second byte of the second axis. 00669 * \endcode 00670 */ 00671 #define LSM6DS3_XG_SENSORHUB4_REG 0x31 00672 00673 /** 00674 * @brief SENSORHUB REGISTER 5 : SLV0 first external sensor, third axis output register (r). The value is expressed as 16bit word in two�s complement 00675 * \code 00676 * Read 00677 * Default value: 0x00 00678 * [7:0] SHUB5[7:0]: SLV0 first external sensor, second byte of the second axis. 00679 * \endcode 00680 */ 00681 #define LSM6DS3_XG_SENSORHUB5_REG 0x32 00682 00683 /** 00684 * @brief SENSORHUB REGISTER 6 : SLV0 first external sensor, third axis output register (r). The value is expressed as 16bit word in two�s complement 00685 * \code 00686 * Read 00687 * Default value: 0x00 00688 * [7:0] SHUB6[7:0]: SLV0 first external sensor, second byte of the third axis 00689 * \endcode 00690 */ 00691 #define LSM6DS3_XG_SENSORHUB6_REG 0x33 00692 00693 /** 00694 * @brief SENSORHUB REGISTER 7 : SLV1 second external sensor, first axis output register (r). The value is expressed as 16bit word in two�s complement 00695 * \code 00696 * Read 00697 * Default value: 0x00 00698 * [7:0] SHUB7[7:0]: SLV1 second external sensor, first byte of the first axis. 00699 * \endcode 00700 */ 00701 #define LSM6DS3_XG_SENSORHUB7_REG 0x34 00702 00703 /** 00704 * @brief SENSORHUB REGISTER 8 : SLV1 second external sensor, first axis output register (r). The value is expressed as 16bit word in two�s complement 00705 * \code 00706 * Read 00707 * Default value: 0x00 00708 * [7:0] SHUB8[7:0]: SLV1 second external sensor, second byte of the first axis. 00709 * \endcode 00710 */ 00711 #define LSM6DS3_XG_SENSORHUB8_REG 0x35 00712 00713 /** 00714 * @brief SENSORHUB REGISTER 9 : SLV1 second external sensor,, second axis output register (r). The value is expressed as 16bit word in two�s complement 00715 * \code 00716 * Read 00717 * Default value: 0x00 00718 * [7:0] SHUB9[7:0]: SLV1 second external sensor, first byte of the second axis. 00719 * \endcode 00720 */ 00721 #define LSM6DS3_XG_SENSORHUB9_REG 0x36 00722 00723 /** 00724 * @brief SLV1 second external sensor, second axis output register (r). The value is expressed as 16bit word in two�s complement 00725 * \code 00726 * Read 00727 * Default value: 0x00 00728 * [7:0] SHUB10[7:0]: SLV1 second external sensor, second byte of the second axis. 00729 * \endcode 00730 */ 00731 #define LSM6DS3_XG_SENSORHUB10_REG 0x37 00732 00733 /** 00734 * @brief SLV1 second external sensor, third axis output register (r). The value is expressed as 16bit word in two�s complement 00735 * \code 00736 * Read 00737 * Default value: 0x00 00738 * [7:0] SHUB11[7:0]: SLV1 second external sensor, first byte of the third axis. 00739 * \endcode 00740 */ 00741 #define LSM6DS3_XG_SENSORHUB11_REG 0x38 00742 00743 /** 00744 * @brief SLV1 second external sensor, third axis output register (r). The value is expressed as 16bit word in two�s complement 00745 * \code 00746 * Read 00747 * Default value: 0x00 00748 * [7:0] SHUB12[7:0]: SLV1 second external sensor, second byte of the third axis. 00749 * \endcode 00750 */ 00751 #define LSM6DS3_XG_SENSORHUB12_REG 0x39 00752 00753 00754 00755 00756 /***************************************** GYROSCOPE REGISTERS ********************************************/ 00757 00758 /** 00759 * @brief Angular rate sensor Control Register 2 00760 * \code 00761 * Read/write 00762 * Default value: 0x00 00763 * [7:4] ODR_G[3:0]: Gyroscope output data rate selection 00764 * [3:2] FS_G[1-0]: Gyroscope full-scale selection 00765 * [1] FS_125: Gyroscope full-scale at 125 dps 00766 * [0] This bit must be set to �0� for the correct operation of the device 00767 * \endcode 00768 */ 00769 #define LSM6DS3_XG_CTRL2_G 0x11 00770 00771 00772 /** 00773 * @brief Angular rate sensor Control Register 6 00774 * \code 00775 * Read/write 00776 * Default value: 0x00 00777 * [7] TRIG_EN: Data edge sensitive trigger Enable. Default value: 0 00778 * [6] LVLen: Data level sensitive trigger Enable. Default value: 0 00779 * [5] LVL2en: Level sensitive latched Enable. Default value: 0 00780 * [4] XL_H_MODE: High Performance operating mode disable for accelerometer(1). Default value: 0 00781 * [3:0] This bit must be set to �0� for the correct operation of the device 00782 * \endcode 00783 */ 00784 #define LSM6DS3_XG_CTRL6_G 0x15 00785 00786 00787 /** 00788 * @brief Angular rate sensor Control Register 7 00789 * \code 00790 * Read/write 00791 * Default value: 0x00 00792 * [7] G_H_MODE: High Performance operating mode disable for Gyroscope(1) . Default: 0 00793 * [6] HP_EN: High Pass filter Enable. Default Value: 0 00794 * [5:4] HPCF_G[1:0]: Gyroscope High Pass filter Cut Off frequency selection. Default value: 00 00795 * [3:0] This bit must be set to �0� for the correct operation of the device 00796 * \endcode 00797 */ 00798 #define LSM6DS3_XG_CTRL7_G 0x16 00799 00800 /** 00801 * @brief Gyroscope data (LSB) 00802 * \code 00803 * Read 00804 * \endcode 00805 */ 00806 #define LSM6DS3_XG_OUT_X_L_G 0x22 00807 00808 00809 /** 00810 * @brief Gyroscope data (MSB) 00811 * \code 00812 * Read 00813 * \endcode 00814 */ 00815 #define LSM6DS3_XG_OUT_X_H_G 0x23 00816 00817 00818 /** 00819 * @brief Gyroscope data (LSB) 00820 * \code 00821 * Read 00822 * \endcode 00823 */ 00824 #define LSM6DS3_XG_OUT_Y_L_G 0x24 00825 00826 00827 /** 00828 * @brief Gyroscope data (MSB) 00829 * \code 00830 * Read 00831 * \endcode 00832 */ 00833 #define LSM6DS3_XG_OUT_Y_H_G 0x25 00834 00835 00836 /** 00837 * @brief Gyroscope data (LSB) 00838 * \code 00839 * Read 00840 * \endcode 00841 */ 00842 #define LSM6DS3_XG_OUT_Z_L_G 0x26 00843 00844 00845 /** 00846 * @brief Gyroscope data (MSB) 00847 * \code 00848 * Read 00849 * \endcode 00850 */ 00851 #define LSM6DS3_XG_OUT_Z_H_G 0x27 00852 00853 00854 00855 /*************************************** ACCELEROMETER REGISTERS *******************************************/ 00856 00857 /** 00858 * @brief Linear acceleration sensor Control Register 1 00859 * \code 00860 * Read/write 00861 * Default value: 0x00 00862 * [7:4] ODR_XL3-0: Accelerometer Output data rate and power mode selection 00863 * [3:2] FS_XL1-0: Accelerometer full-scale selection 00864 * [1:0] BW_XL1-0: Anti-aliasing filter bandwidth selection 00865 * \endcode 00866 */ 00867 #define LSM6DS3_XG_CTRL1_XL 0x10 00868 00869 /** 00870 * @brief XL sensor Control Register 8 00871 * \code 00872 * Read/write 00873 * Default value: 0x00 00874 * [7:3] This bit must be set to �0� for the correct operation of the device 00875 * [2] SLOPE_FDS: Enable HP filter on output registers and FIFO. Default value: 0 00876 * [1:0] This bit must be set to �0� for the correct operation of the device 00877 * \endcode 00878 */ 00879 #define LSM6DS3_XG_CTRL8_XL 0x17 00880 00881 /** 00882 * @brief Linear acceleration sensor Control Register 9 00883 * \code 00884 * Read/write 00885 * Default value: 0x38 00886 * [7:6] These bits must be set to �0� for the correct operation of the device 00887 * [5] Zen_XL: Accelerometers�s Z-axis output enable 00888 * [4] Yen_XL: Accelerometers�s Y-axis output enable 00889 * [3] Xen_XL: Accelerometers�s X-axis output enable 00890 * [2:0] These bits must be set to �0� for the correct operation of the device 00891 * \endcode 00892 */ 00893 #define LSM6DS3_XG_CTRL9_XL 0x18 00894 00895 00896 /** 00897 * @brief Accelerometer data (LSB) 00898 * \code 00899 * Read 00900 * \endcode 00901 */ 00902 #define LSM6DS3_XG_OUT_X_L_XL 0x28 00903 00904 00905 /** 00906 * @brief Accelerometer data (MSB) 00907 * \code 00908 * Read 00909 * \endcode 00910 */ 00911 #define LSM6DS3_XG_OUT_X_H_XL 0x29 00912 00913 00914 /** 00915 * @brief Accelerometer data (LSB) 00916 * \code 00917 * Read 00918 * \endcode 00919 */ 00920 #define LSM6DS3_XG_OUT_Y_L_XL 0x2A 00921 00922 00923 /** 00924 * @brief Accelerometer data (MSB) 00925 * \code 00926 * Read 00927 * \endcode 00928 */ 00929 #define LSM6DS3_XG_OUT_Y_H_XL 0x2B 00930 00931 00932 /** 00933 * @brief Accelerometer data (LSB) 00934 * \code 00935 * Read 00936 * \endcode 00937 */ 00938 #define LSM6DS3_XG_OUT_Z_L_XL 0x2C 00939 00940 00941 /** 00942 * @brief Accelerometer data (MSB) 00943 * \code 00944 * Read 00945 * \endcode 00946 */ 00947 #define LSM6DS3_XG_OUT_Z_H_XL 0x2D 00948 00949 /******************************************************************************/ 00950 /************* END ACCELEROMETER AND GYROSCOPE REGISTER MAPPING **************/ 00951 /******************************************************************************/ 00952 00953 00954 /************************************** COMMON REGISTERS VALUE *******************************************/ 00955 00956 /** 00957 * @brief Device Address 00958 */ 00959 #define LSM6DS3_ADDRESS_LOW 0xD4 // SAD[0] = 0 00960 #define LSM6DS3_ADDRESS_HIGH 0xD6 // SAD[0] = 1 00961 #define LSM6DS3_XG_MEMS_ADDRESS LSM6DS3_ADDRESS_LOW // SAD[0] = 0 00962 00963 00964 /** 00965 * @brief Device Identifier. Default value of the WHO_AM_I register. 00966 */ 00967 #define I_AM_LSM6DS3_XG ((uint8_t)0x69) 00968 00969 00970 /** 00971 * @brief Register address automatically incremented during a multiple byte 00972 * access with a serial interface (I2C or SPI). Default value of the 00973 * LSM6DS3_XG_CTRL3_C register. 00974 */ 00975 #define LSM6DS3_XG_IF_INC ((uint8_t)0x04) 00976 00977 #define LSM6DS3_XG_IF_INC_MASK ((uint8_t)0x04) 00978 00979 /** @defgroup LSM6DS3_XG_FIFO_Output_Data_Rate_Selection_FIFO_CTRL5 LSM6DS3_XG_FIFO_Output_Data_Rate_Selection_FIFO_CTRL5 00980 * @{ 00981 */ 00982 #define LSM6DS3_XG_FIFO_ODR_NA ((uint8_t)0x00) /*!< FIFO ODR NA */ 00983 #define LSM6DS3_XG_FIFO_ODR_10HZ ((uint8_t)0x08) /*!< FIFO ODR 10Hz */ 00984 #define LSM6DS3_XG_FIFO_ODR_25HZ ((uint8_t)0x10) /*!< FIFO ODR 25Hz */ 00985 #define LSM6DS3_XG_FIFO_ODR_50HZ ((uint8_t)0x18) /*!< FIFO ODR 50Hz */ 00986 #define LSM6DS3_XG_FIFO_ODR_100HZ ((uint8_t)0x20) /*!< FIFO ODR 100Hz */ 00987 #define LSM6DS3_XG_FIFO_ODR_200HZ ((uint8_t)0x28) /*!< FIFO ODR 200Hz */ 00988 #define LSM6DS3_XG_FIFO_ODR_400HZ ((uint8_t)0x30) /*!< FIFO ODR 400Hz */ 00989 #define LSM6DS3_XG_FIFO_ODR_800HZ ((uint8_t)0x38) /*!< FIFO ODR 800Hz */ 00990 #define LSM6DS3_XG_FIFO_ODR_1600HZ ((uint8_t)0x40) /*!< FIFO ODR 1600Hz */ 00991 #define LSM6DS3_XG_FIFO_ODR_3300HZ ((uint8_t)0x48) /*!< FIFO ODR 3300Hz */ 00992 #define LSM6DS3_XG_FIFO_ODR_6600HZ ((uint8_t)0x50) /*!< FIFO ODR 6600Hz */ 00993 00994 #define LSM6DS3_XG_FIFO_ODR_MASK ((uint8_t)0x78) 00995 /** 00996 * @} 00997 */ 00998 00999 /** @defgroup LSM6DS3_XG_FIFO_Mode_Selection_FIFO_CTRL5 LSM6DS3_XG_FIFO_Mode_Selection_FIFO_CTRL5 01000 * @{ 01001 */ 01002 #define LSM6DS3_XG_FIFO_MODE_BYPASS ((uint8_t)0x00) /*!< BYPASS Mode. FIFO turned off */ 01003 #define LSM6DS3_XG_FIFO_MODE_FIFO ((uint8_t)0x01) /*!< FIFO Mode. Stop collecting data when FIFO is full */ 01004 #define LSM6DS3_XG_FIFO_MODE_CONTINUOUS_THEN_FIFO ((uint8_t)0x03) /*!< CONTINUOUS mode until trigger is deasserted, then FIFO mode */ 01005 #define LSM6DS3_XG_FIFO_MODE_BYPASS_THEN_CONTINUOUS ((uint8_t)0x04) /*!< BYPASS mode until trigger is deasserted, then CONTINUOUS mode */ 01006 #define LSM6DS3_XG_FIFO_MODE_CONTINUOUS_OVERWRITE ((uint8_t)0x05) /*!< CONTINUOUS mode. If the FIFO is full the new sample overwrite the older one */ 01007 01008 #define LSM6DS3_XG_FIFO_MODE_MASK ((uint8_t)0x07) 01009 /** 01010 * @} 01011 */ 01012 01013 01014 /************************************** GYROSCOPE REGISTERS VALUE *******************************************/ 01015 01016 01017 /** @addtogroup LSM6DS3_XG_Gyroscope_Output_Data_Rate_Selection_CTRL_REG1_G LSM6DS3_XG_Gyroscope_Output_Data_Rate_Selection_CTRL_REG1_G 01018 * @{ 01019 */ 01020 #define LSM6DS3_G_ODR_PD ((uint8_t)0x00) /*!< Output Data Rate: Power-down*/ 01021 #define LSM6DS3_G_ODR_13HZ ((uint8_t)0x10) /*!< Output Data Rate: 13 Hz*/ 01022 #define LSM6DS3_G_ODR_26HZ ((uint8_t)0x20) /*!< Output Data Rate: 26 Hz*/ 01023 #define LSM6DS3_G_ODR_52HZ ((uint8_t)0x30) /*!< Output Data Rate: 52 Hz */ 01024 #define LSM6DS3_G_ODR_104HZ ((uint8_t)0x40) /*!< Output Data Rate: 104 Hz */ 01025 #define LSM6DS3_G_ODR_208HZ ((uint8_t)0x50) /*!< Output Data Rate: 208 Hz */ 01026 #define LSM6DS3_G_ODR_416HZ ((uint8_t)0x60) /*!< Output Data Rate: 416 Hz */ 01027 #define LSM6DS3_G_ODR_833HZ ((uint8_t)0x70) /*!< Output Data Rate: 833 Hz */ 01028 #define LSM6DS3_G_ODR_1660HZ ((uint8_t)0x80) /*!< Output Data Rate: 1.66 kHz */ 01029 01030 #define LSM6DS3_G_ODR_MASK ((uint8_t)0xF0) 01031 01032 /** 01033 * @} 01034 */ 01035 01036 01037 /** @addtogroup LSM6DS3_XG_Gyroscope_Full_Scale_Selection_CTRL2_G LSM6DS3_XG_Gyroscope_Full_Scale_Selection_CTRL2_G 01038 * @{ 01039 */ 01040 #define LSM6DS3_G_FS_125_DISABLE ((uint8_t)0x00) /*!< Full scale: 125 dps enable: disable */ 01041 #define LSM6DS3_G_FS_125_ENABLE ((uint8_t)0x02) /*!< Full scale: 125 dps enable: enable */ 01042 01043 #define LSM6DS3_G_FS_125_MASK ((uint8_t)0x02) 01044 01045 #define LSM6DS3_G_FS_245 ((uint8_t)0x00) /*!< Full scale: 245 dps*/ 01046 #define LSM6DS3_G_FS_500 ((uint8_t)0x04) /*!< Full scale: 500 dps */ 01047 #define LSM6DS3_G_FS_1000 ((uint8_t)0x08) /*!< Full scale: 1000 dps */ 01048 #define LSM6DS3_G_FS_2000 ((uint8_t)0x0C) /*!< Full scale: 2000 dps */ 01049 01050 #define LSM6DS3_G_FS_MASK ((uint8_t)0x0C) 01051 01052 /** 01053 * @} 01054 */ 01055 01056 01057 /** @addtogroup LSM6DS3_XG_Gyroscope_Z_Axis_Output_Enable_Selection_CTRL10_C LSM6DS3_XG_Gyroscope_Z_Axis_Output_Enable_Selection_CTRL10_C 01058 * @{ 01059 */ 01060 #define LSM6DS3_G_ZEN_DISABLE ((uint8_t)0x00) /*!< Gyroscope�s Z-axis output enable: disable */ 01061 #define LSM6DS3_G_ZEN_ENABLE ((uint8_t)0x20) /*!< Gyroscope�s Z-axis output enable: enable */ 01062 01063 #define LSM6DS3_G_ZEN_MASK ((uint8_t)0x20) 01064 01065 /** 01066 * @} 01067 */ 01068 01069 01070 /** @addtogroup LSM6DS3_XG_Gyroscope_Y_Axis_Output_Enable_Selection_CTRL10_C LSM6DS3_XG_Gyroscope_Y_Axis_Output_Enable_Selection_CTRL10_C 01071 * @{ 01072 */ 01073 #define LSM6DS3_G_YEN_DISABLE ((uint8_t)0x00) /*!< Gyroscope�s Y-axis output enable: disable */ 01074 #define LSM6DS3_G_YEN_ENABLE ((uint8_t)0x10) /*!< Gyroscope�s Y-axis output enable: enable */ 01075 01076 #define LSM6DS3_G_YEN_MASK ((uint8_t)0x10) 01077 01078 /** 01079 * @} 01080 */ 01081 01082 01083 /** @addtogroup LSM6DS3_XG_Gyroscope_X_Axis_Output_Enable_Selection_CTRL10_C LSM6DS3_XG_Gyroscope_X_Axis_Output_Enable_Selection_CTRL10_C 01084 * @{ 01085 */ 01086 #define LSM6DS3_G_XEN_DISABLE ((uint8_t)0x00) /*!< Gyroscope�s X-axis output enable: disable */ 01087 #define LSM6DS3_G_XEN_ENABLE ((uint8_t)0x08) /*!< Gyroscope�s X-axis output enable: enable */ 01088 01089 #define LSM6DS3_G_XEN_MASK ((uint8_t)0x08) 01090 01091 /** 01092 * @} 01093 */ 01094 01095 01096 /************************************ ACCELEROMETER REGISTERS VALUE *****************************************/ 01097 01098 /** @addtogroup LSM6DS3_XG_Accelerometer_Output_Data_Rate_Selection_CTRL1_XL LSM6DS3_XG_Accelerometer_Output_Data_Rate_Selection_CTRL1_XL 01099 * @{ 01100 */ 01101 #define LSM6DS3_XL_ODR_PD ((uint8_t)0x00) /*!< Output Data Rate: Power-down*/ 01102 #define LSM6DS3_XL_ODR_13HZ ((uint8_t)0x10) /*!< Output Data Rate: 13 Hz*/ 01103 #define LSM6DS3_XL_ODR_26HZ ((uint8_t)0x20) /*!< Output Data Rate: 26 Hz*/ 01104 #define LSM6DS3_XL_ODR_52HZ ((uint8_t)0x30) /*!< Output Data Rate: 52 Hz */ 01105 #define LSM6DS3_XL_ODR_104HZ ((uint8_t)0x40) /*!< Output Data Rate: 104 Hz */ 01106 #define LSM6DS3_XL_ODR_208HZ ((uint8_t)0x50) /*!< Output Data Rate: 208 Hz */ 01107 #define LSM6DS3_XL_ODR_416HZ ((uint8_t)0x60) /*!< Output Data Rate: 416 Hz */ 01108 #define LSM6DS3_XL_ODR_833HZ ((uint8_t)0x70) /*!< Output Data Rate: 833 Hz */ 01109 #define LSM6DS3_XL_ODR_1660HZ ((uint8_t)0x80) /*!< Output Data Rate: 1.66 kHz */ 01110 #define LSM6DS3_XL_ODR_3330HZ ((uint8_t)0x90) /*!< Output Data Rate: 3.33 kHz */ 01111 #define LSM6DS3_XL_ODR_6660HZ ((uint8_t)0xA0) /*!< Output Data Rate: 6.66 kHz */ 01112 01113 #define LSM6DS3_XL_ODR_MASK ((uint8_t)0xF0) 01114 01115 /** 01116 * @} 01117 */ 01118 01119 01120 /** @addtogroup LSM6DS3_XG_Accelerometer_Full_Scale_Selection_CTRL1_XL LSM6DS3_XG_Accelerometer_Full_Scale_Selection_CTRL1_XL 01121 * @{ 01122 */ 01123 #define LSM6DS3_XL_FS_2G ((uint8_t)0x00) /*!< Full scale: +- 2g */ 01124 #define LSM6DS3_XL_FS_4G ((uint8_t)0x08) /*!< Full scale: +- 4g */ 01125 #define LSM6DS3_XL_FS_8G ((uint8_t)0x0C) /*!< Full scale: +- 8g */ 01126 #define LSM6DS3_XL_FS_16G ((uint8_t)0x04) /*!< Full scale: +- 16g */ 01127 01128 #define LSM6DS3_XL_FS_MASK ((uint8_t)0x0C) 01129 01130 /** 01131 * @} 01132 */ 01133 01134 01135 /** @addtogroup LSM6DS3_XG_Accelerometer_Anti_Aliasing_Filter_Bandwidth_Selection_CTRL1_XL LSM6DS3_XG_Accelerometer_Anti_Aliasing_Filter_Bandwidth_Selection_CTRL1_XL 01136 * @{ 01137 */ 01138 #define LSM6DS3_XL_BW_400HZ ((uint8_t)0x00) /*!< Anti-aliasing filter bandwidht: 400 Hz */ 01139 #define LSM6DS3_XL_BW_200HZ ((uint8_t)0x01) /*!< Anti-aliasing filter bandwidht: 200 Hz */ 01140 #define LSM6DS3_XL_BW_100HZ ((uint8_t)0x02) /*!< Anti-aliasing filter bandwidht: 100 Hz */ 01141 #define LSM6DS3_XL_BW_50HZ ((uint8_t)0x03) /*!< Anti-aliasing filter bandwidht: 50 Hz */ 01142 01143 #define LSM6DS3_XL_BW_MASK ((uint8_t)0x03) 01144 01145 /** 01146 * @} 01147 */ 01148 01149 01150 /** @addtogroup LSM6DS3_XG_Accelerometer_Z_Axis_Output_Enable_Selection_CTRL9_XL LSM6DS3_XG_Accelerometer_Z_Axis_Output_Enable_Selection_CTRL9_XL 01151 * @{ 01152 */ 01153 #define LSM6DS3_XL_ZEN_DISABLE ((uint8_t)0x00) /*!< Accelerometer�s Z-axis output enable: disable */ 01154 #define LSM6DS3_XL_ZEN_ENABLE ((uint8_t)0x20) /*!< Accelerometer�s Z-axis output enable: enable */ 01155 01156 #define LSM6DS3_XL_ZEN_MASK ((uint8_t)0x20) 01157 01158 /** 01159 * @} 01160 */ 01161 01162 01163 /** @addtogroup LSM6DS3_XG_Accelerometer_Y_Axis_Output_Enable_Selection_CTRL9_XL LSM6DS3_XG_Accelerometer_Y_Axis_Output_Enable_Selection_CTRL9_XL 01164 * @{ 01165 */ 01166 #define LSM6DS3_XL_YEN_DISABLE ((uint8_t)0x00) /*!< Accelerometer�s Y-axis output enable: disable */ 01167 #define LSM6DS3_XL_YEN_ENABLE ((uint8_t)0x10) /*!< Accelerometer�s Y-axis output enable: enable */ 01168 01169 #define LSM6DS3_XL_YEN_MASK ((uint8_t)0x10) 01170 01171 /** 01172 * @} 01173 */ 01174 01175 01176 /** @addtogroup LSM6DS3_XG_Accelerometer_X_Axis_Output_Enable_Selection_CTRL9_XL LSM6DS3_XG_Accelerometer_X_Axis_Output_Enable_Selection_CTRL9_XL 01177 * @{ 01178 */ 01179 #define LSM6DS3_XL_XEN_DISABLE ((uint8_t)0x00) /*!< Accelerometer�s X-axis output enable: disable */ 01180 #define LSM6DS3_XL_XEN_ENABLE ((uint8_t)0x08) /*!< Accelerometer�s X-axis output enable: enable */ 01181 01182 #define LSM6DS3_XL_XEN_MASK ((uint8_t)0x08) 01183 01184 /** 01185 * @} 01186 */ 01187 01188 /** @addtogroup LSM6DS3_XG_Accelerometer_FF_DUR5_Selection_WAKE_UP_DUR LSM6DS3_XG_Accelerometer_FF_DUR5_Selection_WAKE_UP_DUR 01189 * @{ 01190 */ 01191 #define LSM6DS3_XG_WAKE_UP_DUR_FF_DUR5_DEFAULT ((uint8_t)0x00) 01192 01193 #define LSM6DS3_XG_WAKE_UP_DUR_FF_DUR5_MASK ((uint8_t)0x80) 01194 /** 01195 * @} 01196 */ 01197 01198 /** @addtogroup LSM6DS3_XG_Accelerometer_WAKE_DUR_Selection_WAKE_UP_DUR LSM6DS3_XG_Accelerometer_WAKE_DUR_Selection_WAKE_UP_DUR 01199 * @{ 01200 */ 01201 #define LSM6DS3_XG_WAKE_UP_DUR_WAKE_DUR_DEFAULT ((uint8_t)0x00) 01202 01203 #define LSM6DS3_XG_WAKE_UP_DUR_WAKE_DUR_MASK ((uint8_t)0x60) 01204 /** 01205 * @} 01206 */ 01207 01208 /** @addtogroup LSM6DS3_XG_Accelerometer_TIMER_HR_Selection_WAKE_UP_DUR LSM6DS3_XG_Accelerometer_TIMER_HR_Selection_WAKE_UP_DUR 01209 * @{ 01210 */ 01211 #define LSM6DS3_XG_WAKE_UP_DUR_TIMER_HR_DEFAULT ((uint8_t)0x00) 01212 01213 #define LSM6DS3_XG_WAKE_UP_DUR_TIMER_HR_MASK ((uint8_t)0x10) 01214 /** 01215 * @} 01216 */ 01217 01218 /** @addtogroup LSM6DS3_XG_Accelerometer_SLEEP_DUR_Selection_WAKE_UP_DUR LSM6DS3_XG_Accelerometer_SLEEP_DUR_Selection_WAKE_UP_DUR 01219 * @{ 01220 */ 01221 #define LSM6DS3_XG_WAKE_UP_DUR_SLEEP_DUR_DEFAULT ((uint8_t)0x00) 01222 01223 #define LSM6DS3_XG_WAKE_UP_DUR_SLEEP_DUR_MASK ((uint8_t)0x0F) 01224 /** 01225 * @} 01226 */ 01227 01228 /** @addtogroup LSM6DS3_XG_Accelerometer_FF_DUR_Selection_FREE_FALL LSM6DS3_XG_Accelerometer_FF_DUR_Selection_FREE_FALL 01229 * @{ 01230 */ 01231 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_DUR_DEFAULT ((uint8_t)0x00) 01232 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_DUR_TYPICAL ((uint8_t)0x30) 01233 01234 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_DUR_MASK ((uint8_t)0xF8) 01235 /** 01236 * @} 01237 */ 01238 01239 /** @addtogroup LSM6DS3_XG_Accelerometer_FF_THS_Selection_FREE_FALL LSM6DS3_XG_Accelerometer_FF_THS_Selection_FREE_FALL 01240 * @{ 01241 */ 01242 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_156MG ((uint8_t)0x00) 01243 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_219MG ((uint8_t)0x01) 01244 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_250MG ((uint8_t)0x02) 01245 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_312MG ((uint8_t)0x03) 01246 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_344MG ((uint8_t)0x04) 01247 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_406MG ((uint8_t)0x05) 01248 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_469MG ((uint8_t)0x06) 01249 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_500MG ((uint8_t)0x07) 01250 01251 #define LSM6DS3_XG_WAKE_FREE_FALL_FF_THS_MASK ((uint8_t)0x07) 01252 01253 /** 01254 * @} 01255 */ 01256 01257 01258 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_INACT_STATE_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_INACT_STATE_Selection_MD1_CFG 01259 * @{ 01260 */ 01261 #define LSM6DS3_XG_MD1_CFG_INT1_INACT_STATE_DISABLE ((uint8_t)0x00) 01262 #define LSM6DS3_XG_MD1_CFG_INT1_INACT_STATE_ENABLE ((uint8_t)0x80) 01263 01264 #define LSM6DS3_XG_MD1_CFG_INT1_INACT_STATE_MASK ((uint8_t)0x80) 01265 /** 01266 * @} 01267 */ 01268 01269 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_SINGLE_TAP_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_SINGLE_TAP_Selection_MD1_CFG 01270 * @{ 01271 */ 01272 #define LSM6DS3_XG_MD1_CFG_INT1_SINGLE_TAP_DISABLE ((uint8_t)0x00) 01273 #define LSM6DS3_XG_MD1_CFG_INT1_SINGLE_TAP_ENABLE ((uint8_t)0x40) 01274 01275 #define LSM6DS3_XG_MD1_CFG_INT1_SINGLE_TAP_MASK ((uint8_t)0x40) 01276 /** 01277 * @} 01278 */ 01279 01280 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_WU_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_WU_Selection_MD1_CFG 01281 * @{ 01282 */ 01283 #define LSM6DS3_XG_MD1_CFG_INT1_WU_DISABLE ((uint8_t)0x00) 01284 #define LSM6DS3_XG_MD1_CFG_INT1_WU_ENABLE ((uint8_t)0x20) 01285 01286 #define LSM6DS3_XG_MD1_CFG_INT1_WU_MASK ((uint8_t)0x20) 01287 /** 01288 * @} 01289 */ 01290 01291 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_FF_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_FF_Selection_MD1_CFG 01292 * @{ 01293 */ 01294 #define LSM6DS3_XG_MD1_CFG_INT1_FF_DISABLE ((uint8_t)0x00) 01295 #define LSM6DS3_XG_MD1_CFG_INT1_FF_ENABLE ((uint8_t)0x10) 01296 01297 #define LSM6DS3_XG_MD1_CFG_INT1_FF_MASK ((uint8_t)0x10) 01298 /** 01299 * @} 01300 */ 01301 01302 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_DOUBLE_TAP_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_DOUBLE_TAP_Selection_MD1_CFG 01303 * @{ 01304 */ 01305 #define LSM6DS3_XG_MD1_CFG_INT1_DOUBLE_TAP_DISABLE ((uint8_t)0x00) 01306 #define LSM6DS3_XG_MD1_CFG_INT1_DOUBLE_TAP_ENABLE ((uint8_t)0x08) 01307 01308 #define LSM6DS3_XG_MD1_CFG_INT1_DOUBLE_TAP_MASK ((uint8_t)0x08) 01309 /** 01310 * @} 01311 */ 01312 01313 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_6D_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_6D_Selection_MD1_CFG 01314 * @{ 01315 */ 01316 #define LSM6DS3_XG_MD1_CFG_INT1_6D_DISABLE ((uint8_t)0x00) 01317 #define LSM6DS3_XG_MD1_CFG_INT1_6D_ENABLE ((uint8_t)0x04) 01318 01319 #define LSM6DS3_XG_MD1_CFG_INT1_6D_MASK ((uint8_t)0x04) 01320 /** 01321 * @} 01322 */ 01323 01324 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_TILT_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_TILT_Selection_MD1_CFG 01325 * @{ 01326 */ 01327 #define LSM6DS3_XG_MD1_CFG_INT1_TILT_DISABLE ((uint8_t)0x00) 01328 #define LSM6DS3_XG_MD1_CFG_INT1_TILT_ENABLE ((uint8_t)0x02) 01329 01330 #define LSM6DS3_XG_MD1_CFG_INT1_TILT_MASK ((uint8_t)0x02) 01331 /** 01332 * @} 01333 */ 01334 01335 /** @addtogroup LSM6DS3_XG_Accelerometer_INT1_TIMER_Selection_MD1_CFG LSM6DS3_XG_Accelerometer_INT1_TIMER_Selection_MD1_CFG 01336 * @{ 01337 */ 01338 #define LSM6DS3_XG_MD1_CFG_INT1_TIMER_DISABLE ((uint8_t)0x00) 01339 #define LSM6DS3_XG_MD1_CFG_INT1_TIMER_ENABLE ((uint8_t)0x01) 01340 01341 #define LSM6DS3_XG_MD1_CFG_INT1_TIMER_MASK ((uint8_t)0x01) 01342 01343 /** 01344 * @} 01345 */ 01346 01347 /** @addtogroup LSM6DS3_XG_Accelerometer_FF_IA_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_FF_IA_Enable_WAKE_UP_SRC 01348 * @{ 01349 */ 01350 #define LSM6DS3_XG_WAKE_UP_SRC_FF_IA_DISABLE ((uint8_t)0x00) 01351 #define LSM6DS3_XG_WAKE_UP_SRC_FF_IA_ENABLE ((uint8_t)0x20) 01352 01353 #define LSM6DS3_XG_WAKE_UP_SRC_FF_IA_MASK ((uint8_t)0x20) 01354 /** 01355 * @} 01356 */ 01357 01358 /** @addtogroup LSM6DS3_XG_Accelerometer_SLEEP_STATE_IA_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_SLEEP_STATE_IA_Enable_WAKE_UP_SRC 01359 * @{ 01360 */ 01361 #define LSM6DS3_XG_WAKE_UP_SRC_SLEEP_STATE_IA_DISABLE ((uint8_t)0x00) 01362 #define LSM6DS3_XG_WAKE_UP_SRC_SLEEP_STATE_IA_ENABLE ((uint8_t)0x10) 01363 01364 #define LSM6DS3_XG_WAKE_UP_SRC_SLEEP_STATE_IA_MASK ((uint8_t)0x10) 01365 /** 01366 * @} 01367 */ 01368 01369 /** @addtogroup LSM6DS3_XG_Accelerometer_WU_IA_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_WU_IA_Enable_WAKE_UP_SRC 01370 * @{ 01371 */ 01372 #define LSM6DS3_XG_WAKE_UP_SRC_WU_IA_DISABLE ((uint8_t)0x00) 01373 #define LSM6DS3_XG_WAKE_UP_SRC_WU_IA_ENABLE ((uint8_t)0x08) 01374 01375 #define LSM6DS3_XG_WAKE_UP_SRC_WU_IA_MASK ((uint8_t)0x08) 01376 /** 01377 * @} 01378 */ 01379 01380 /** @addtogroup LSM6DS3_XG_Accelerometer_X_WU_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_X_WU_Enable_WAKE_UP_SRC 01381 * @{ 01382 */ 01383 #define LSM6DS3_XG_WAKE_UP_SRC_X_WU_DISABLE ((uint8_t)0x00) 01384 #define LSM6DS3_XG_WAKE_UP_SRC_X_WU_ENABLE ((uint8_t)0x04) 01385 01386 #define LSM6DS3_XG_WAKE_UP_SRC_X_WU_MASK ((uint8_t)0x04) 01387 /** 01388 * @} 01389 */ 01390 01391 /** @addtogroup LSM6DS3_XG_Accelerometer_Y_WU_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_Y_WU_Enable_WAKE_UP_SRC 01392 * @{ 01393 */ 01394 #define LSM6DS3_XG_WAKE_UP_SRC_Y_WU_DISABLE ((uint8_t)0x00) 01395 #define LSM6DS3_XG_WAKE_UP_SRC_Y_WU_ENABLE ((uint8_t)0x02) 01396 01397 01398 #define LSM6DS3_XG_WAKE_UP_SRC_Y_WU_MASK ((uint8_t)0x02) 01399 /** 01400 * @} 01401 */ 01402 01403 /** @addtogroup LSM6DS3_XG_Accelerometer_Z_WU_Enable_WAKE_UP_SRC LSM6DS3_XG_Accelerometer_Z_WU_Enable_WAKE_UP_SRC 01404 * @{ 01405 */ 01406 #define LSM6DS3_XG_WAKE_UP_SRC_Z_WU_DISABLE ((uint8_t)0x00) 01407 #define LSM6DS3_XG_WAKE_UP_SRC_Z_WU_ENABLE ((uint8_t)0x01) 01408 01409 #define LSM6DS3_XG_WAKE_UP_SRC_Z_WU_MASK ((uint8_t)0x01) 01410 /** 01411 * @} 01412 */ 01413 01414 /** 01415 * @} 01416 */ 01417 01418 /** @addtogroup LSM6DS3_Imported_Functions LSM6DS3_Imported_Functions 01419 * @{ 01420 */ 01421 01422 /* Six axes sensor IO functions */ 01423 extern IMU_6AXES_StatusTypeDef LSM6DS3_IO_Init( void ); 01424 extern IMU_6AXES_StatusTypeDef LSM6DS3_IO_Write( uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, 01425 uint16_t NumByteToWrite ); 01426 extern IMU_6AXES_StatusTypeDef LSM6DS3_IO_Read( uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr, 01427 uint16_t NumByteToRead ); 01428 extern void LSM6DS3_IO_ITConfig( void ); 01429 01430 /** 01431 * @} 01432 */ 01433 01434 /** @addtogroup LSM6DS3_Exported_Types LSM6DS3_Exported_Types 01435 * @{ 01436 */ 01437 /** 01438 * @brief LSM6DS3 driver extended internal structure definition 01439 */ 01440 typedef struct 01441 { 01442 IMU_6AXES_StatusTypeDef (*Enable_Free_Fall_Detection) (void); 01443 IMU_6AXES_StatusTypeDef (*Disable_Free_Fall_Detection) (void); 01444 IMU_6AXES_StatusTypeDef (*Get_Status_Free_Fall_Detection) (uint8_t *); 01445 } LSM6DS3_DrvExtTypeDef; 01446 01447 /** 01448 * @} 01449 */ 01450 01451 /** @addtogroup LSM6DS3_Exported_Variables LSM6DS3_Exported_Variables 01452 * @{ 01453 */ 01454 01455 /* Six axes sensor driver structure */ 01456 extern IMU_6AXES_DrvTypeDef LSM6DS3Drv; 01457 extern IMU_6AXES_DrvExtTypeDef LSM6DS3Drv_ext; 01458 01459 /** 01460 * @} 01461 */ 01462 01463 /** 01464 * @} 01465 */ 01466 01467 /** 01468 * @} 01469 */ 01470 01471 /** 01472 * @} 01473 */ 01474 01475 #ifdef __cplusplus 01476 } 01477 #endif 01478 01479 #endif /* __LSM6DS3_H */ 01480 01481 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 17:19:45 by 1.7.2