Contains the BSP driver for the B-L475E-IOT01 board.

Dependents:   mbed-os-example-ble-Thermometer DISCO_L475VG_IOT01-Telegram-BOT DISCO_L475VG_IOT01-sche_cheveux DISCO_L475VG_IOT01-QSPI_FLASH_FILE_SYSTEM ... more

https://os.mbed.com/platforms/ST-Discovery-L475E-IOT01A/

Committer:
bcostm
Date:
Fri Apr 14 13:09:54 2017 +0200
Revision:
4:137bb367ba50
Child:
7:bfe8272ced90
Add remaining Components files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 4:137bb367ba50 1 /**
bcostm 4:137bb367ba50 2 ******************************************************************************
bcostm 4:137bb367ba50 3 * @file lsm6dsl.h
bcostm 4:137bb367ba50 4 * @author MCD Application Team
bcostm 4:137bb367ba50 5 * @version V1.0.0
bcostm 4:137bb367ba50 6 * @date 14-February-2017
bcostm 4:137bb367ba50 7 * @brief LSM6DSL header driver file
bcostm 4:137bb367ba50 8 ******************************************************************************
bcostm 4:137bb367ba50 9 * @attention
bcostm 4:137bb367ba50 10 *
bcostm 4:137bb367ba50 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
bcostm 4:137bb367ba50 12 *
bcostm 4:137bb367ba50 13 * Redistribution and use in source and binary forms, with or without modification,
bcostm 4:137bb367ba50 14 * are permitted provided that the following conditions are met:
bcostm 4:137bb367ba50 15 * 1. Redistributions of source code must retain the above copyright notice,
bcostm 4:137bb367ba50 16 * this list of conditions and the following disclaimer.
bcostm 4:137bb367ba50 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
bcostm 4:137bb367ba50 18 * this list of conditions and the following disclaimer in the documentation
bcostm 4:137bb367ba50 19 * and/or other materials provided with the distribution.
bcostm 4:137bb367ba50 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
bcostm 4:137bb367ba50 21 * may be used to endorse or promote products derived from this software
bcostm 4:137bb367ba50 22 * without specific prior written permission.
bcostm 4:137bb367ba50 23 *
bcostm 4:137bb367ba50 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
bcostm 4:137bb367ba50 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bcostm 4:137bb367ba50 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
bcostm 4:137bb367ba50 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
bcostm 4:137bb367ba50 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
bcostm 4:137bb367ba50 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
bcostm 4:137bb367ba50 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
bcostm 4:137bb367ba50 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
bcostm 4:137bb367ba50 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
bcostm 4:137bb367ba50 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bcostm 4:137bb367ba50 34 *
bcostm 4:137bb367ba50 35 ******************************************************************************
bcostm 4:137bb367ba50 36 */
bcostm 4:137bb367ba50 37
bcostm 4:137bb367ba50 38 /* Define to prevent recursive inclusion -------------------------------------*/
bcostm 4:137bb367ba50 39 #ifndef __LSM6DSL__H
bcostm 4:137bb367ba50 40 #define __LSM6DSL__H
bcostm 4:137bb367ba50 41
bcostm 4:137bb367ba50 42 #ifdef __cplusplus
bcostm 4:137bb367ba50 43 extern "C" {
bcostm 4:137bb367ba50 44 #endif
bcostm 4:137bb367ba50 45
bcostm 4:137bb367ba50 46 /* Includes ------------------------------------------------------------------*/
bcostm 4:137bb367ba50 47 #include "../Common/accelero.h"
bcostm 4:137bb367ba50 48 #include "../Common/gyro.h"
bcostm 4:137bb367ba50 49
bcostm 4:137bb367ba50 50 /** @addtogroup BSP
bcostm 4:137bb367ba50 51 * @{
bcostm 4:137bb367ba50 52 */
bcostm 4:137bb367ba50 53
bcostm 4:137bb367ba50 54 /** @addtogroup Component
bcostm 4:137bb367ba50 55 * @{
bcostm 4:137bb367ba50 56 */
bcostm 4:137bb367ba50 57
bcostm 4:137bb367ba50 58 /** @addtogroup LSM6DSL
bcostm 4:137bb367ba50 59 * @{
bcostm 4:137bb367ba50 60 */
bcostm 4:137bb367ba50 61
bcostm 4:137bb367ba50 62 /** @defgroup LSM6DSL_Exported_Constants LSM6DSL Exported Constants
bcostm 4:137bb367ba50 63 * @{
bcostm 4:137bb367ba50 64 */
bcostm 4:137bb367ba50 65 /************** I2C Address *****************/
bcostm 4:137bb367ba50 66
bcostm 4:137bb367ba50 67 #define LSM6DSL_ACC_GYRO_I2C_ADDRESS_LOW 0xD4 // SAD[0] = 0
bcostm 4:137bb367ba50 68 #define LSM6DSL_ACC_GYRO_I2C_ADDRESS_HIGH 0xD6 // SAD[0] = 1
bcostm 4:137bb367ba50 69
bcostm 4:137bb367ba50 70 /************** Who am I *******************/
bcostm 4:137bb367ba50 71
bcostm 4:137bb367ba50 72 #define LSM6DSL_ACC_GYRO_WHO_AM_I 0x6A
bcostm 4:137bb367ba50 73
bcostm 4:137bb367ba50 74 /************** Device Register *******************/
bcostm 4:137bb367ba50 75
bcostm 4:137bb367ba50 76 #define LSM6DSL_ACC_GYRO_FUNC_CFG_ACCESS 0x01
bcostm 4:137bb367ba50 77
bcostm 4:137bb367ba50 78 #define LSM6DSL_ACC_GYRO_SENSOR_SYNC_TIME 0x04
bcostm 4:137bb367ba50 79 #define LSM6DSL_ACC_GYRO_SENSOR_RES_RATIO 0x05
bcostm 4:137bb367ba50 80
bcostm 4:137bb367ba50 81 #define LSM6DSL_ACC_GYRO_FIFO_CTRL1 0x06
bcostm 4:137bb367ba50 82 #define LSM6DSL_ACC_GYRO_FIFO_CTRL2 0x07
bcostm 4:137bb367ba50 83 #define LSM6DSL_ACC_GYRO_FIFO_CTRL3 0x08
bcostm 4:137bb367ba50 84 #define LSM6DSL_ACC_GYRO_FIFO_CTRL4 0x09
bcostm 4:137bb367ba50 85 #define LSM6DSL_ACC_GYRO_FIFO_CTRL5 0x0A
bcostm 4:137bb367ba50 86
bcostm 4:137bb367ba50 87 #define LSM6DSL_ACC_GYRO_DRDY_PULSE_CFG_G 0x0B
bcostm 4:137bb367ba50 88 #define LSM6DSL_ACC_GYRO_INT1_CTRL 0x0D
bcostm 4:137bb367ba50 89 #define LSM6DSL_ACC_GYRO_INT2_CTRL 0x0E
bcostm 4:137bb367ba50 90 #define LSM6DSL_ACC_GYRO_WHO_AM_I_REG 0x0F
bcostm 4:137bb367ba50 91 #define LSM6DSL_ACC_GYRO_CTRL1_XL 0x10
bcostm 4:137bb367ba50 92 #define LSM6DSL_ACC_GYRO_CTRL2_G 0x11
bcostm 4:137bb367ba50 93 #define LSM6DSL_ACC_GYRO_CTRL3_C 0x12
bcostm 4:137bb367ba50 94 #define LSM6DSL_ACC_GYRO_CTRL4_C 0x13
bcostm 4:137bb367ba50 95 #define LSM6DSL_ACC_GYRO_CTRL5_C 0x14
bcostm 4:137bb367ba50 96 #define LSM6DSL_ACC_GYRO_CTRL6_C 0x15
bcostm 4:137bb367ba50 97 #define LSM6DSL_ACC_GYRO_CTRL7_G 0x16
bcostm 4:137bb367ba50 98 #define LSM6DSL_ACC_GYRO_CTRL8_XL 0x17
bcostm 4:137bb367ba50 99 #define LSM6DSL_ACC_GYRO_CTRL9_XL 0x18
bcostm 4:137bb367ba50 100 #define LSM6DSL_ACC_GYRO_CTRL10_C 0x19
bcostm 4:137bb367ba50 101
bcostm 4:137bb367ba50 102 #define LSM6DSL_ACC_GYRO_MASTER_CONFIG 0x1A
bcostm 4:137bb367ba50 103 #define LSM6DSL_ACC_GYRO_WAKE_UP_SRC 0x1B
bcostm 4:137bb367ba50 104 #define LSM6DSL_ACC_GYRO_TAP_SRC 0x1C
bcostm 4:137bb367ba50 105 #define LSM6DSL_ACC_GYRO_D6D_SRC 0x1D
bcostm 4:137bb367ba50 106 #define LSM6DSL_ACC_GYRO_STATUS_REG 0x1E
bcostm 4:137bb367ba50 107
bcostm 4:137bb367ba50 108 #define LSM6DSL_ACC_GYRO_OUT_TEMP_L 0x20
bcostm 4:137bb367ba50 109 #define LSM6DSL_ACC_GYRO_OUT_TEMP_H 0x21
bcostm 4:137bb367ba50 110 #define LSM6DSL_ACC_GYRO_OUTX_L_G 0x22
bcostm 4:137bb367ba50 111 #define LSM6DSL_ACC_GYRO_OUTX_H_G 0x23
bcostm 4:137bb367ba50 112 #define LSM6DSL_ACC_GYRO_OUTY_L_G 0x24
bcostm 4:137bb367ba50 113 #define LSM6DSL_ACC_GYRO_OUTY_H_G 0x25
bcostm 4:137bb367ba50 114 #define LSM6DSL_ACC_GYRO_OUTZ_L_G 0x26
bcostm 4:137bb367ba50 115 #define LSM6DSL_ACC_GYRO_OUTZ_H_G 0x27
bcostm 4:137bb367ba50 116 #define LSM6DSL_ACC_GYRO_OUTX_L_XL 0x28
bcostm 4:137bb367ba50 117 #define LSM6DSL_ACC_GYRO_OUTX_H_XL 0x29
bcostm 4:137bb367ba50 118 #define LSM6DSL_ACC_GYRO_OUTY_L_XL 0x2A
bcostm 4:137bb367ba50 119 #define LSM6DSL_ACC_GYRO_OUTY_H_XL 0x2B
bcostm 4:137bb367ba50 120 #define LSM6DSL_ACC_GYRO_OUTZ_L_XL 0x2C
bcostm 4:137bb367ba50 121 #define LSM6DSL_ACC_GYRO_OUTZ_H_XL 0x2D
bcostm 4:137bb367ba50 122 #define LSM6DSL_ACC_GYRO_SENSORHUB1_REG 0x2E
bcostm 4:137bb367ba50 123 #define LSM6DSL_ACC_GYRO_SENSORHUB2_REG 0x2F
bcostm 4:137bb367ba50 124 #define LSM6DSL_ACC_GYRO_SENSORHUB3_REG 0x30
bcostm 4:137bb367ba50 125 #define LSM6DSL_ACC_GYRO_SENSORHUB4_REG 0x31
bcostm 4:137bb367ba50 126 #define LSM6DSL_ACC_GYRO_SENSORHUB5_REG 0x32
bcostm 4:137bb367ba50 127 #define LSM6DSL_ACC_GYRO_SENSORHUB6_REG 0x33
bcostm 4:137bb367ba50 128 #define LSM6DSL_ACC_GYRO_SENSORHUB7_REG 0x34
bcostm 4:137bb367ba50 129 #define LSM6DSL_ACC_GYRO_SENSORHUB8_REG 0x35
bcostm 4:137bb367ba50 130 #define LSM6DSL_ACC_GYRO_SENSORHUB9_REG 0x36
bcostm 4:137bb367ba50 131 #define LSM6DSL_ACC_GYRO_SENSORHUB10_REG 0x37
bcostm 4:137bb367ba50 132 #define LSM6DSL_ACC_GYRO_SENSORHUB11_REG 0x38
bcostm 4:137bb367ba50 133 #define LSM6DSL_ACC_GYRO_SENSORHUB12_REG 0x39
bcostm 4:137bb367ba50 134 #define LSM6DSL_ACC_GYRO_FIFO_STATUS1 0x3A
bcostm 4:137bb367ba50 135 #define LSM6DSL_ACC_GYRO_FIFO_STATUS2 0x3B
bcostm 4:137bb367ba50 136 #define LSM6DSL_ACC_GYRO_FIFO_STATUS3 0x3C
bcostm 4:137bb367ba50 137 #define LSM6DSL_ACC_GYRO_FIFO_STATUS4 0x3D
bcostm 4:137bb367ba50 138 #define LSM6DSL_ACC_GYRO_FIFO_DATA_OUT_L 0x3E
bcostm 4:137bb367ba50 139 #define LSM6DSL_ACC_GYRO_FIFO_DATA_OUT_H 0x3F
bcostm 4:137bb367ba50 140 #define LSM6DSL_ACC_GYRO_TIMESTAMP0_REG 0x40
bcostm 4:137bb367ba50 141 #define LSM6DSL_ACC_GYRO_TIMESTAMP1_REG 0x41
bcostm 4:137bb367ba50 142 #define LSM6DSL_ACC_GYRO_TIMESTAMP2_REG 0x42
bcostm 4:137bb367ba50 143
bcostm 4:137bb367ba50 144 #define LSM6DSL_ACC_GYRO_TIMESTAMP_L 0x49
bcostm 4:137bb367ba50 145 #define LSM6DSL_ACC_GYRO_TIMESTAMP_H 0x4A
bcostm 4:137bb367ba50 146
bcostm 4:137bb367ba50 147 #define LSM6DSL_ACC_GYRO_STEP_COUNTER_L 0x4B
bcostm 4:137bb367ba50 148 #define LSM6DSL_ACC_GYRO_STEP_COUNTER_H 0x4C
bcostm 4:137bb367ba50 149
bcostm 4:137bb367ba50 150 #define LSM6DSL_ACC_GYRO_SENSORHUB13_REG 0x4D
bcostm 4:137bb367ba50 151 #define LSM6DSL_ACC_GYRO_SENSORHUB14_REG 0x4E
bcostm 4:137bb367ba50 152 #define LSM6DSL_ACC_GYRO_SENSORHUB15_REG 0x4F
bcostm 4:137bb367ba50 153 #define LSM6DSL_ACC_GYRO_SENSORHUB16_REG 0x50
bcostm 4:137bb367ba50 154 #define LSM6DSL_ACC_GYRO_SENSORHUB17_REG 0x51
bcostm 4:137bb367ba50 155 #define LSM6DSL_ACC_GYRO_SENSORHUB18_REG 0x52
bcostm 4:137bb367ba50 156
bcostm 4:137bb367ba50 157 #define LSM6DSL_ACC_GYRO_FUNC_SRC 0x53
bcostm 4:137bb367ba50 158 #define LSM6DSL_ACC_GYRO_TAP_CFG1 0x58
bcostm 4:137bb367ba50 159 #define LSM6DSL_ACC_GYRO_TAP_THS_6D 0x59
bcostm 4:137bb367ba50 160 #define LSM6DSL_ACC_GYRO_INT_DUR2 0x5A
bcostm 4:137bb367ba50 161 #define LSM6DSL_ACC_GYRO_WAKE_UP_THS 0x5B
bcostm 4:137bb367ba50 162 #define LSM6DSL_ACC_GYRO_WAKE_UP_DUR 0x5C
bcostm 4:137bb367ba50 163 #define LSM6DSL_ACC_GYRO_FREE_FALL 0x5D
bcostm 4:137bb367ba50 164 #define LSM6DSL_ACC_GYRO_MD1_CFG 0x5E
bcostm 4:137bb367ba50 165 #define LSM6DSL_ACC_GYRO_MD2_CFG 0x5F
bcostm 4:137bb367ba50 166
bcostm 4:137bb367ba50 167 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_X_L 0x66
bcostm 4:137bb367ba50 168 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_X_H 0x67
bcostm 4:137bb367ba50 169 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_Y_L 0x68
bcostm 4:137bb367ba50 170 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_Y_H 0x69
bcostm 4:137bb367ba50 171 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_Z_L 0x6A
bcostm 4:137bb367ba50 172 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_Z_H 0x6B
bcostm 4:137bb367ba50 173
bcostm 4:137bb367ba50 174 #define LSM6DSL_ACC_GYRO_X_OFS_USR 0x73
bcostm 4:137bb367ba50 175 #define LSM6DSL_ACC_GYRO_Y_OFS_USR 0x74
bcostm 4:137bb367ba50 176 #define LSM6DSL_ACC_GYRO_Z_OFS_USR 0x75
bcostm 4:137bb367ba50 177
bcostm 4:137bb367ba50 178 /************** Embedded functions register mapping *******************/
bcostm 4:137bb367ba50 179 #define LSM6DSL_ACC_GYRO_SLV0_ADD 0x02
bcostm 4:137bb367ba50 180 #define LSM6DSL_ACC_GYRO_SLV0_SUBADD 0x03
bcostm 4:137bb367ba50 181 #define LSM6DSL_ACC_GYRO_SLAVE0_CONFIG 0x04
bcostm 4:137bb367ba50 182 #define LSM6DSL_ACC_GYRO_SLV1_ADD 0x05
bcostm 4:137bb367ba50 183 #define LSM6DSL_ACC_GYRO_SLV1_SUBADD 0x06
bcostm 4:137bb367ba50 184 #define LSM6DSL_ACC_GYRO_SLAVE1_CONFIG 0x07
bcostm 4:137bb367ba50 185 #define LSM6DSL_ACC_GYRO_SLV2_ADD 0x08
bcostm 4:137bb367ba50 186 #define LSM6DSL_ACC_GYRO_SLV2_SUBADD 0x09
bcostm 4:137bb367ba50 187 #define LSM6DSL_ACC_GYRO_SLAVE2_CONFIG 0x0A
bcostm 4:137bb367ba50 188 #define LSM6DSL_ACC_GYRO_SLV3_ADD 0x0B
bcostm 4:137bb367ba50 189 #define LSM6DSL_ACC_GYRO_SLV3_SUBADD 0x0C
bcostm 4:137bb367ba50 190 #define LSM6DSL_ACC_GYRO_SLAVE3_CONFIG 0x0D
bcostm 4:137bb367ba50 191 #define LSM6DSL_ACC_GYRO_DATAWRITE_SRC_MODE_SUB_SLV0 0x0E
bcostm 4:137bb367ba50 192 #define LSM6DSL_ACC_GYRO_CONFIG_PEDO_THS_MIN 0x0F
bcostm 4:137bb367ba50 193
bcostm 4:137bb367ba50 194 #define LSM6DSL_ACC_GYRO_SM_STEP_THS 0x13
bcostm 4:137bb367ba50 195 #define LSM6DSL_ACC_GYRO_PEDO_DEB_REG 0x14
bcostm 4:137bb367ba50 196 #define LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA 0x15
bcostm 4:137bb367ba50 197
bcostm 4:137bb367ba50 198 #define LSM6DSL_ACC_GYRO_MAG_SI_XX 0x24
bcostm 4:137bb367ba50 199 #define LSM6DSL_ACC_GYRO_MAG_SI_XY 0x25
bcostm 4:137bb367ba50 200 #define LSM6DSL_ACC_GYRO_MAG_SI_XZ 0x26
bcostm 4:137bb367ba50 201 #define LSM6DSL_ACC_GYRO_MAG_SI_YX 0x27
bcostm 4:137bb367ba50 202 #define LSM6DSL_ACC_GYRO_MAG_SI_YY 0x28
bcostm 4:137bb367ba50 203 #define LSM6DSL_ACC_GYRO_MAG_SI_YZ 0x29
bcostm 4:137bb367ba50 204 #define LSM6DSL_ACC_GYRO_MAG_SI_ZX 0x2A
bcostm 4:137bb367ba50 205 #define LSM6DSL_ACC_GYRO_MAG_SI_ZY 0x2B
bcostm 4:137bb367ba50 206 #define LSM6DSL_ACC_GYRO_MAG_SI_ZZ 0x2C
bcostm 4:137bb367ba50 207 #define LSM6DSL_ACC_GYRO_MAG_OFFX_L 0x2D
bcostm 4:137bb367ba50 208 #define LSM6DSL_ACC_GYRO_MAG_OFFX_H 0x2E
bcostm 4:137bb367ba50 209 #define LSM6DSL_ACC_GYRO_MAG_OFFY_L 0x2F
bcostm 4:137bb367ba50 210 #define LSM6DSL_ACC_GYRO_MAG_OFFY_H 0x30
bcostm 4:137bb367ba50 211 #define LSM6DSL_ACC_GYRO_MAG_OFFZ_L 0x31
bcostm 4:137bb367ba50 212 #define LSM6DSL_ACC_GYRO_MAG_OFFZ_H 0x32
bcostm 4:137bb367ba50 213
bcostm 4:137bb367ba50 214 /* Accelero Full_ScaleSelection */
bcostm 4:137bb367ba50 215 #define LSM6DSL_ACC_FULLSCALE_2G ((uint8_t)0x00) /*!< ±2 g */
bcostm 4:137bb367ba50 216 #define LSM6DSL_ACC_FULLSCALE_4G ((uint8_t)0x08) /*!< ±4 g */
bcostm 4:137bb367ba50 217 #define LSM6DSL_ACC_FULLSCALE_8G ((uint8_t)0x0C) /*!< ±8 g */
bcostm 4:137bb367ba50 218 #define LSM6DSL_ACC_FULLSCALE_16G ((uint8_t)0x04) /*!< ±16 g */
bcostm 4:137bb367ba50 219
bcostm 4:137bb367ba50 220 /* Accelero Full Scale Sensitivity */
bcostm 4:137bb367ba50 221 #define LSM6DSL_ACC_SENSITIVITY_2G ((float)0.061f) /*!< accelerometer sensitivity with 2 g full scale [mgauss/LSB] */
bcostm 4:137bb367ba50 222 #define LSM6DSL_ACC_SENSITIVITY_4G ((float)0.122f) /*!< accelerometer sensitivity with 4 g full scale [mgauss/LSB] */
bcostm 4:137bb367ba50 223 #define LSM6DSL_ACC_SENSITIVITY_8G ((float)0.244f) /*!< accelerometer sensitivity with 8 g full scale [mgauss/LSB] */
bcostm 4:137bb367ba50 224 #define LSM6DSL_ACC_SENSITIVITY_16G ((float)0.488f) /*!< accelerometer sensitivity with 12 g full scale [mgauss/LSB] */
bcostm 4:137bb367ba50 225
bcostm 4:137bb367ba50 226 /* Accelero Power Mode selection */
bcostm 4:137bb367ba50 227 #define LSM6DSL_ACC_GYRO_LP_XL_DISABLED ((uint8_t)0x00) /* LP disabled*/
bcostm 4:137bb367ba50 228 #define LSM6DSL_ACC_GYRO_LP_XL_ENABLED ((uint8_t)0x10) /* LP enabled*/
bcostm 4:137bb367ba50 229
bcostm 4:137bb367ba50 230 /* Output Data Rate */
bcostm 4:137bb367ba50 231 #define LSM6DSL_ODR_BITPOSITION ((uint8_t)0xF0) /*!< Output Data Rate bit position */
bcostm 4:137bb367ba50 232 #define LSM6DSL_ODR_POWER_DOWN ((uint8_t)0x00) /* Power Down mode */
bcostm 4:137bb367ba50 233 #define LSM6DSL_ODR_13Hz ((uint8_t)0x10) /* Low Power mode */
bcostm 4:137bb367ba50 234 #define LSM6DSL_ODR_26Hz ((uint8_t)0x20) /* Low Power mode */
bcostm 4:137bb367ba50 235 #define LSM6DSL_ODR_52Hz ((uint8_t)0x30) /* Low Power mode */
bcostm 4:137bb367ba50 236 #define LSM6DSL_ODR_104Hz ((uint8_t)0x40) /* Normal mode */
bcostm 4:137bb367ba50 237 #define LSM6DSL_ODR_208Hz ((uint8_t)0x50) /* Normal mode */
bcostm 4:137bb367ba50 238 #define LSM6DSL_ODR_416Hz ((uint8_t)0x60) /* High Performance mode */
bcostm 4:137bb367ba50 239 #define LSM6DSL_ODR_833Hz ((uint8_t)0x70) /* High Performance mode */
bcostm 4:137bb367ba50 240 #define LSM6DSL_ODR_1660Hz ((uint8_t)0x80) /* High Performance mode */
bcostm 4:137bb367ba50 241 #define LSM6DSL_ODR_3330Hz ((uint8_t)0x90) /* High Performance mode */
bcostm 4:137bb367ba50 242 #define LSM6DSL_ODR_6660Hz ((uint8_t)0xA0) /* High Performance mode */
bcostm 4:137bb367ba50 243
bcostm 4:137bb367ba50 244 /* Gyro Full Scale Selection */
bcostm 4:137bb367ba50 245 #define LSM6DSL_GYRO_FS_245 ((uint8_t)0x00)
bcostm 4:137bb367ba50 246 #define LSM6DSL_GYRO_FS_500 ((uint8_t)0x04)
bcostm 4:137bb367ba50 247 #define LSM6DSL_GYRO_FS_1000 ((uint8_t)0x08)
bcostm 4:137bb367ba50 248 #define LSM6DSL_GYRO_FS_2000 ((uint8_t)0x0C)
bcostm 4:137bb367ba50 249
bcostm 4:137bb367ba50 250 /* Gyro Full Scale Sensitivity */
bcostm 4:137bb367ba50 251 #define LSM6DSL_GYRO_SENSITIVITY_245DPS ((float)8.750f) /**< Sensitivity value for 245 dps full scale [mdps/LSB] */
bcostm 4:137bb367ba50 252 #define LSM6DSL_GYRO_SENSITIVITY_500DPS ((float)17.50f) /**< Sensitivity value for 500 dps full scale [mdps/LSB] */
bcostm 4:137bb367ba50 253 #define LSM6DSL_GYRO_SENSITIVITY_1000DPS ((float)35.00f) /**< Sensitivity value for 1000 dps full scale [mdps/LSB] */
bcostm 4:137bb367ba50 254 #define LSM6DSL_GYRO_SENSITIVITY_2000DPS ((float)70.00f) /**< Sensitivity value for 2000 dps full scale [mdps/LSB] */
bcostm 4:137bb367ba50 255
bcostm 4:137bb367ba50 256 /* Gyro Power Mode selection */
bcostm 4:137bb367ba50 257 #define LSM6DSL_ACC_GYRO_LP_G_DISABLED ((uint8_t)0x00) /* LP disabled*/
bcostm 4:137bb367ba50 258 #define LSM6DSL_ACC_GYRO_LP_G_ENABLED ((uint8_t)0x80) /* LP enabled*/
bcostm 4:137bb367ba50 259
bcostm 4:137bb367ba50 260 /* Block Data Update */
bcostm 4:137bb367ba50 261 #define LSM6DSL_BDU_CONTINUOS ((uint8_t)0x00)
bcostm 4:137bb367ba50 262 #define LSM6DSL_BDU_BLOCK_UPDATE ((uint8_t)0x40)
bcostm 4:137bb367ba50 263
bcostm 4:137bb367ba50 264 /* Auto-increment */
bcostm 4:137bb367ba50 265 #define LSM6DSL_ACC_GYRO_IF_INC_DISABLED ((uint8_t)0x00)
bcostm 4:137bb367ba50 266 #define LSM6DSL_ACC_GYRO_IF_INC_ENABLED ((uint8_t)0x04)
bcostm 4:137bb367ba50 267
bcostm 4:137bb367ba50 268 /**
bcostm 4:137bb367ba50 269 * @}
bcostm 4:137bb367ba50 270 */
bcostm 4:137bb367ba50 271
bcostm 4:137bb367ba50 272 /** @defgroup LSM6DSL_AccExported_Functions ACCELEROMETER Exported functions
bcostm 4:137bb367ba50 273 * @{
bcostm 4:137bb367ba50 274 */
bcostm 4:137bb367ba50 275 void LSM6DSL_AccInit(uint16_t InitStruct);
bcostm 4:137bb367ba50 276 void LSM6DSL_AccDeInit(void);
bcostm 4:137bb367ba50 277 uint8_t LSM6DSL_AccReadID(void);
bcostm 4:137bb367ba50 278 void LSM6DSL_AccLowPower(uint16_t status);
bcostm 4:137bb367ba50 279 void LSM6DSL_AccReadXYZ(int16_t* pData);
bcostm 4:137bb367ba50 280 /**
bcostm 4:137bb367ba50 281 * @}
bcostm 4:137bb367ba50 282 */
bcostm 4:137bb367ba50 283
bcostm 4:137bb367ba50 284 /** @defgroup LSM6DSL_AccImported_Globals ACCELEROMETER Imported Globals
bcostm 4:137bb367ba50 285 * @{
bcostm 4:137bb367ba50 286 */
bcostm 4:137bb367ba50 287 extern ACCELERO_DrvTypeDef Lsm6dslAccDrv;
bcostm 4:137bb367ba50 288 /**
bcostm 4:137bb367ba50 289 * @}
bcostm 4:137bb367ba50 290 */
bcostm 4:137bb367ba50 291
bcostm 4:137bb367ba50 292 /** @defgroup LSM6DSL_GyroExported_Functions GYROSCOPE Exported functions
bcostm 4:137bb367ba50 293 * @{
bcostm 4:137bb367ba50 294 */
bcostm 4:137bb367ba50 295 /* Sensor Configuration Functions */
bcostm 4:137bb367ba50 296 void LSM6DSL_GyroInit(uint16_t InitStruct);
bcostm 4:137bb367ba50 297 void LSM6DSL_GyroDeInit(void);
bcostm 4:137bb367ba50 298 uint8_t LSM6DSL_GyroReadID(void);
bcostm 4:137bb367ba50 299 void LSM6DSL_GyroLowPower(uint16_t status);
bcostm 4:137bb367ba50 300 void LSM6DSL_GyroReadXYZAngRate(float *pfData);
bcostm 4:137bb367ba50 301 /**
bcostm 4:137bb367ba50 302 * @}
bcostm 4:137bb367ba50 303 */
bcostm 4:137bb367ba50 304
bcostm 4:137bb367ba50 305 /** @defgroup LSM6DSL_GyroImported_Globals GYROSCOPE Imported Globals
bcostm 4:137bb367ba50 306 * @{
bcostm 4:137bb367ba50 307 */
bcostm 4:137bb367ba50 308 /* Gyroscope driver structure */
bcostm 4:137bb367ba50 309 extern GYRO_DrvTypeDef Lsm6dslGyroDrv;
bcostm 4:137bb367ba50 310
bcostm 4:137bb367ba50 311 /**
bcostm 4:137bb367ba50 312 * @}
bcostm 4:137bb367ba50 313 */
bcostm 4:137bb367ba50 314
bcostm 4:137bb367ba50 315 /** @defgroup LSM6DSL_Imported_Functions LSM6DSL Imported Functions
bcostm 4:137bb367ba50 316 * @{
bcostm 4:137bb367ba50 317 */
bcostm 4:137bb367ba50 318 /* IO functions */
bcostm 4:137bb367ba50 319 extern void SENSOR_IO_Init(void);
bcostm 4:137bb367ba50 320 extern void SENSOR_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value);
bcostm 4:137bb367ba50 321 extern uint8_t SENSOR_IO_Read(uint8_t Addr, uint8_t Reg);
bcostm 4:137bb367ba50 322 extern uint16_t SENSOR_IO_ReadMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length);
bcostm 4:137bb367ba50 323 extern void SENSOR_IO_WriteMultiple(uint8_t Addr, uint8_t Reg, uint8_t *Buffer, uint16_t Length);
bcostm 4:137bb367ba50 324 /**
bcostm 4:137bb367ba50 325 * @}
bcostm 4:137bb367ba50 326 */
bcostm 4:137bb367ba50 327
bcostm 4:137bb367ba50 328 #ifdef __cplusplus
bcostm 4:137bb367ba50 329 }
bcostm 4:137bb367ba50 330 #endif
bcostm 4:137bb367ba50 331
bcostm 4:137bb367ba50 332 #endif /* __LSM6DSL__H */
bcostm 4:137bb367ba50 333
bcostm 4:137bb367ba50 334 /**
bcostm 4:137bb367ba50 335 * @}
bcostm 4:137bb367ba50 336 */
bcostm 4:137bb367ba50 337
bcostm 4:137bb367ba50 338 /**
bcostm 4:137bb367ba50 339 * @}
bcostm 4:137bb367ba50 340 */
bcostm 4:137bb367ba50 341
bcostm 4:137bb367ba50 342 /**
bcostm 4:137bb367ba50 343 * @}
bcostm 4:137bb367ba50 344 */
bcostm 4:137bb367ba50 345
bcostm 4:137bb367ba50 346 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/