It is the library published by sparkfun, edited accordingly to make it work under mbed platform.

Dependents:   MPU9250-dmp-bluepill MPU9250-dmp

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MPU9250_RegisterMap.h Source File

MPU9250_RegisterMap.h

00001 /******************************************************************************
00002 MPU9250_RegisterMap.h - MPU-9250 Digital Motion Processor Arduino Library 
00003 Jim Lindblom @ SparkFun Electronics
00004 original creation date: November 23, 2016
00005 https://github.com/sparkfun/SparkFun_MPU9250_DMP_Arduino_Library
00006 
00007 This library implements motion processing functions of Invensense's MPU-9250.
00008 It is based on their Emedded MotionDriver 6.12 library.
00009     https://www.invensense.com/developers/software-downloads/
00010 
00011 Development environment specifics:
00012 Arduino IDE 1.6.12
00013 SparkFun 9DoF Razor IMU M0
00014 
00015 Supported Platforms:
00016 - ATSAMD21 (Arduino Zero, SparkFun SAMD21 Breakouts)
00017 ******************************************************************************/
00018 #ifndef _MPU9250_REGISTER_MAP_H_
00019 #define _MPU9250_REGISTER_MAP_H_
00020 
00021 enum mpu9250_register {
00022     MPU9250_SELF_TEST_X_GYRO =  0x00,
00023     MPU9250_SELF_TEST_Y_GYRO =  0x01,
00024     MPU9250_SELF_TEST_Z_GYRO =  0x02,
00025     MPU9250_SELF_TEST_X_ACCEL = 0x0D,
00026     MPU9250_SELF_TEST_Y_ACCEL = 0x0E,
00027     MPU9250_SELF_TEST_Z_ACCEL = 0x0F,
00028     MPU9250_XG_OFFSET_H =       0x13,
00029     MPU9250_XG_OFFSET_L =       0x14,
00030     MPU9250_YG_OFFSET_H =       0x15,
00031     MPU9250_YG_OFFSET_L =       0x16,
00032     MPU9250_ZG_OFFSET_H =       0x17,
00033     MPU9250_ZG_OFFSET_L =       0x18,
00034     MPU9250_SMPLRT_DIV =        0x19,
00035     MPU9250_CONFIG =            0x1A,
00036     MPU9250_GYRO_CONFIG =       0x1B,
00037     MPU9250_ACCEL_CONFIG =      0x1C,
00038     MPU9250_ACCEL_CONFIG_2 =    0x1D,
00039     MPU9250_LP_ACCEL_ODR =      0x1E,
00040     MPU9250_WOM_THR =           0x1F,
00041     MPU9250_FIFO_EN =           0x23,
00042     MPU9250_I2C_MST_CTRL =      0x24,
00043     MPU9250_I2C_SLV0_ADDR =     0x25,
00044     MPU9250_I2C_SLV0_REG =      0x26,
00045     MPU9250_I2C_SLV0_CTRL =     0x27,
00046     MPU9250_I2C_SLV1_ADDR =     0x28,
00047     MPU9250_I2C_SLV1_REG =      0x29,
00048     MPU9250_I2C_SLV1_CTRL =     0x2A,
00049     MPU9250_I2C_SLV2_ADDR =     0x2B,
00050     MPU9250_I2C_SLV2_REG =      0x2C,
00051     MPU9250_I2C_SLV2_CTRL =     0x2D,
00052     MPU9250_I2C_SLV3_ADDR =     0x2E,
00053     MPU9250_I2C_SLV3_REG =      0x2F,
00054     MPU9250_I2C_SLV3_CTRL =     0x30,
00055     MPU9250_I2C_SLV4_ADDR =     0x31,
00056     MPU9250_I2C_SLV4_REG =      0x32,
00057     MPU9250_I2C_SLV4_DO =       0x33,
00058     MPU9250_I2C_SLV4_CTRL =     0x34,
00059     MPU9250_I2C_SLV4_DI =       0x35,
00060     MPU9250_I2C_MST_STATUS =    0x36,
00061     MPU9250_INT_PIN_CFG =       0x37,
00062     MPU9250_INT_ENABLE =        0x38,
00063     MPU9250_INT_STATUS =        0x3A,
00064     MPU9250_ACCEL_XOUT_H =      0x3B,
00065     MPU9250_ACCEL_XOUT_L =      0x3C,
00066     MPU9250_ACCEL_YOUT_H =      0x3D,
00067     MPU9250_ACCEL_YOUT_L =      0x3E,
00068     MPU9250_ACCEL_ZOUT_H =      0x3F,
00069     MPU9250_ACCEL_ZOUT_L =      0x40,
00070     MPU9250_TEMP_OUT_H =        0x41,
00071     MPU9250_TEMP_OUT_L =        0x42,
00072     MPU9250_GYRO_XOUT_H =       0x43,
00073     MPU9250_GYRO_XOUT_L =       0x44,
00074     MPU9250_GYRO_YOUT_H =       0x45,
00075     MPU9250_GYRO_YOUT_L =       0x46,
00076     MPU9250_GYRO_ZOUT_H =       0x47,
00077     MPU9250_GYRO_ZOUT_L =       0x48,
00078     MPU9250_EXT_SENS_DATA_00 =  0x49,
00079     MPU9250_EXT_SENS_DATA_01 =  0x4A,
00080     MPU9250_EXT_SENS_DATA_02 =  0x4B,
00081     MPU9250_EXT_SENS_DATA_03 =  0x4C,
00082     MPU9250_EXT_SENS_DATA_04 =  0x4D,
00083     MPU9250_EXT_SENS_DATA_05 =  0x4E,
00084     MPU9250_EXT_SENS_DATA_06 =  0x4F,
00085     MPU9250_EXT_SENS_DATA_07 =  0x50,
00086     MPU9250_EXT_SENS_DATA_08 =  0x51,
00087     MPU9250_EXT_SENS_DATA_09 =  0x52,
00088     MPU9250_EXT_SENS_DATA_10 =  0x53,
00089     MPU9250_EXT_SENS_DATA_11 =  0x54,
00090     MPU9250_EXT_SENS_DATA_12 =  0x55,
00091     MPU9250_EXT_SENS_DATA_13 =  0x56,
00092     MPU9250_EXT_SENS_DATA_14 =  0x57,
00093     MPU9250_EXT_SENS_DATA_15 =  0x58,
00094     MPU9250_EXT_SENS_DATA_16 =  0x59,
00095     MPU9250_EXT_SENS_DATA_17 =  0x5A,
00096     MPU9250_EXT_SENS_DATA_18 =  0x5B,
00097     MPU9250_EXT_SENS_DATA_19 =  0x5C,
00098     MPU9250_EXT_SENS_DATA_20 =  0x5D,
00099     MPU9250_EXT_SENS_DATA_21 =  0x5E,
00100     MPU9250_EXT_SENS_DATA_22 =  0x5F,
00101     MPU9250_EXT_SENS_DATA_23 =  0x60,
00102     MPU9250_I2C_SLV0_DO =       0x63,
00103     MPU9250_I2C_SLV1_DO =       0x64,
00104     MPU9250_I2C_SLV2_DO =       0x65,
00105     MPU9250_I2C_SLV3_DO =       0x66,
00106     MPU9250_I2C_MST_DELAY_CTRL =0x67,
00107     MPU9250_SIGNAL_PATH_RESET = 0x68,
00108     MPU9250_MOT_DETECT_CTRL =   0x69,
00109     MPU9250_USER_CTRL =         0x6A,
00110     MPU9250_PWR_MGMT_1 =        0x6B,
00111     MPU9250_PWR_MGMT_2 =        0x6C,
00112     MPU9250_FIFO_COUNTH =       0x72,
00113     MPU9250_FIFO_COUNTL =       0x73,
00114     MPU9250_FIFO_R_W =          0x74,
00115     MPU9250_WHO_AM_I =          0x75,
00116     MPU9250_XA_OFFSET_H =       0x77,
00117     MPU9250_XA_OFFSET_L =       0x78,
00118     MPU9250_YA_OFFSET_H =       0x7A,
00119     MPU9250_YA_OFFSET_L =       0x7B,
00120     MPU9250_ZA_OFFSET_H =       0x7D,
00121     MPU9250_ZA_OFFSET_L =       0x7E
00122 };
00123 
00124 enum interrupt_status_bits {
00125     INT_STATUS_RAW_DATA_RDY_INT = 0,
00126     INT_STATUS_FSYNC_INT = 3,
00127     INT_STATUS_FIFO_OVERFLOW_INT = 4,
00128     INT_STATUS_WOM_INT = 6,
00129 };
00130 
00131 enum gyro_config_bits {
00132     GYRO_CONFIG_FCHOICE_B = 0,
00133     GYRO_CONFIG_GYRO_FS_SEL = 3,
00134     GYRO_CONFIG_ZGYRO_CTEN = 5,
00135     GYRO_CONFIG_YGYRO_CTEN = 6,
00136     GYRO_CONFIG_XGYRO_CTEN = 7,
00137 };
00138 #define MPU9250_GYRO_FS_SEL_MASK 0x3
00139 #define MPU9250_GYRO_FCHOICE_MASK 0x3
00140 
00141 enum accel_config_bit {
00142     ACCEL_CONFIG_ACCEL_FS_SEL = 3,
00143     ACCEL_CONFIG_AZ_ST_EN = 5,
00144     ACCEL_CONFIG_AY_ST_EN = 6,
00145     ACCEL_CONFIG_AX_ST_EN = 7,
00146 };
00147 #define MPU9250_ACCEL_FS_SEL_MASK 0x3
00148 
00149 enum accel_config_2_bits {
00150     ACCEL_CONFIG_2_A_DLPFCFG = 0,
00151     ACCEL_CONFIG_2_ACCEL_FCHOICE_B = 3,
00152 };
00153     
00154 enum pwr_mgmt_1_bits {
00155     PWR_MGMT_1_CLKSEL = 0,
00156     PWR_MGMT_1_PD_PTAT = 3,
00157     PWR_MGMT_1_GYRO_STANDBY = 4,
00158     PWR_MGMT_1_CYCLE = 5,
00159     PWR_MGMT_1_SLEEP = 6,
00160     PWR_MGMT_1_H_RESET = 7
00161 };
00162 
00163 enum pwr_mgmt_2_bits {
00164     PWR_MGMT_2_DISABLE_ZG = 0,
00165     PWR_MGMT_2_DISABLE_YG = 1,
00166     PWR_MGMT_2_DISABLE_XG = 2,
00167     PWR_MGMT_2_DISABLE_ZA = 3,
00168     PWR_MGMT_2_DISABLE_YA = 4,
00169     PWR_MGMT_2_DISABLE_XA = 5,
00170 };
00171 
00172 enum int_enable_bits {
00173     INT_ENABLE_RAW_RDY_EN = 0,
00174     INT_ENABLE_FSYNC_INT_EN = 3,
00175     INT_ENABLE_FIFO_OVERFLOW_EN = 4,
00176     INT_ENABLE_WOM_EN = 6,
00177 };
00178 
00179 enum int_pin_cfg_bits {
00180     INT_PIN_CFG_BYPASS_EN = 1,
00181     INT_PIN_CFG_FSYNC_INT_MODE_EN = 2,
00182     INT_PIN_CFG_ACTL_FSYNC = 3,
00183     INT_PIN_CFG_INT_ANYRD_2CLEAR = 4,
00184     INT_PIN_CFG_LATCH_INT_EN = 5,
00185     INT_PIN_CFG_OPEN = 6,
00186     INT_PIN_CFG_ACTL = 7,
00187 };
00188 #define INT_PIN_CFG_INT_MASK 0xF0
00189 
00190 #define MPU9250_WHO_AM_I_RESULT 0x71
00191 
00192 enum ak8963_register {
00193     AK8963_WIA = 0x0,
00194     AK8963_INFO = 0x1,
00195     AK8963_ST1 = 0x2,
00196     AK8963_HXL = 0x3,
00197     AK8963_HXH = 0x4,
00198     AK8963_HYL = 0x5,
00199     AK8963_HYH = 0x6,
00200     AK8963_HZL = 0x7,
00201     AK8963_HZH = 0x8,
00202     AK8963_ST2 = 0x9,
00203     AK8963_CNTL = 0xA,
00204     AK8963_RSV = 0xB,
00205     AK8963_ASTC = 0xC,
00206     AK8963_TS1 = 0xD,
00207     AK8963_TS2 = 0xE,
00208     AK8963_I2CDIS = 0xF,
00209     AK8963_ASAX = 0x10,
00210     AK8963_ASAY = 0x11,
00211     AK8963_ASAZ = 0x12,
00212 };
00213 #define MAG_CTRL_OP_MODE_MASK 0xF
00214 
00215 #define AK8963_ST1_DRDY_BIT 0
00216 
00217 #define AK8963_WHO_AM_I_RESULT 0x48
00218 
00219 #endif // _MPU9250_REGISTER_MAP_H_