Paparazzi UAS  v5.15_devel-111-g8fb4629
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
mpu60x0_regs.h File Reference

Register and address definitions for MPU-6000 and MPU-6050. More...

+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MPU60X0_ADDR   0xD0
 
#define MPU60X0_ADDR_ALT   0xD2
 
#define MPU60X0_SPI_READ   0x80
 
#define MPU60X0_REG_AUX_VDDIO   0x01
 
#define MPU60X0_REG_USER_CTRL   0x6A
 
#define MPU60X0_REG_PWR_MGMT_1   0x6B
 
#define MPU60X0_REG_PWR_MGMT_2   0x6C
 
#define MPU60X0_REG_FIFO_EN   0x23
 
#define MPU60X0_REG_FIFO_COUNT_H   0x72
 
#define MPU60X0_REG_FIFO_COUNT_L   0x73
 
#define MPU60X0_REG_FIFO_R_W   0x74
 
#define MPU60X0_REG_SMPLRT_DIV   0x19
 
#define MPU60X0_REG_CONFIG   0x1A
 
#define MPU60X0_REG_GYRO_CONFIG   0x1B
 
#define MPU60X0_REG_ACCEL_CONFIG   0x1C
 
#define MPU60X0_REG_ACCEL_CONFIG2   0x1D
 
#define MPU60X0_REG_UNDOC1   0x11
 
#define MPU60X0_REG_I2C_MST_CTRL   0x24
 
#define MPU60X0_REG_I2C_MST_STATUS   0x36
 
#define MPU60X0_REG_I2C_MST_DELAY   0x67
 
#define MPU60X0_REG_I2C_SLV0_ADDR   0X25
 
#define MPU60X0_REG_I2C_SLV0_REG   0X26
 
#define MPU60X0_REG_I2C_SLV0_CTRL   0X27
 
#define MPU60X0_REG_I2C_SLV0_DO   0X63
 
#define MPU60X0_REG_I2C_SLV1_ADDR   0X28
 
#define MPU60X0_REG_I2C_SLV1_REG   0X29
 
#define MPU60X0_REG_I2C_SLV1_CTRL   0X2A
 
#define MPU60X0_REG_I2C_SLV1_DO   0X64
 
#define MPU60X0_REG_I2C_SLV2_ADDR   0X2B
 
#define MPU60X0_REG_I2C_SLV2_REG   0X2C
 
#define MPU60X0_REG_I2C_SLV2_CTRL   0X2D
 
#define MPU60X0_REG_I2C_SLV2_DO   0X65
 
#define MPU60X0_REG_I2C_SLV3_ADDR   0X2E
 
#define MPU60X0_REG_I2C_SLV3_REG   0X2F
 
#define MPU60X0_REG_I2C_SLV3_CTRL   0X30
 
#define MPU60X0_REG_I2C_SLV3_DO   0X66
 
#define MPU60X0_REG_I2C_SLV4_ADDR   0X31
 
#define MPU60X0_REG_I2C_SLV4_REG   0X32
 
#define MPU60X0_REG_I2C_SLV4_DO   0X33
 
#define MPU60X0_REG_I2C_SLV4_CTRL   0X34
 
#define MPU60X0_REG_I2C_SLV4_DI   0X35
 
#define MPU60X0_REG_INT_PIN_CFG   0x37
 
#define MPU60X0_REG_INT_ENABLE   0x38
 
#define MPU60X0_REG_INT_STATUS   0x3A
 
#define MPU60X0_REG_ACCEL_XOUT_H   0x3B
 
#define MPU60X0_REG_ACCEL_XOUT_L   0x3C
 
#define MPU60X0_REG_ACCEL_YOUT_H   0x3D
 
#define MPU60X0_REG_ACCEL_YOUT_L   0x3E
 
#define MPU60X0_REG_ACCEL_ZOUT_H   0x3F
 
#define MPU60X0_REG_ACCEL_ZOUT_L   0x40
 
#define MPU60X0_REG_TEMP_OUT_H   0x41
 
#define MPU60X0_REG_TEMP_OUT_L   0x42
 
#define MPU60X0_REG_GYRO_XOUT_H   0x43
 
#define MPU60X0_REG_GYRO_XOUT_L   0x44
 
#define MPU60X0_REG_GYRO_YOUT_H   0x45
 
#define MPU60X0_REG_GYRO_YOUT_L   0x46
 
#define MPU60X0_REG_GYRO_ZOUT_H   0x47
 
#define MPU60X0_REG_GYRO_ZOUT_L   0x48
 
#define MPU60X0_EXT_SENS_DATA   0x49
 
#define MPU60X0_EXT_SENS_DATA_SIZE   24
 
#define MPU60X0_REG_WHO_AM_I   0x75
 
#define MPU60X0_WHOAMI_REPLY   0x68
 
#define ICM20600_WHOAMI_REPLY   0x11
 
#define ICM20608_WHOAMI_REPLY   0xAF
 
#define ICM20602_WHOAMI_REPLY   0x12
 
#define ICM20689_WHOAMI_REPLY   0x98
 
#define MPU60X0_I2C_BYPASS_EN   1
 
#define MPU60X0_SIG_COND_RESET   0
 
#define MPU60X0_I2C_MST_RESET   1
 
#define MPU60X0_FIFO_RESET   2
 
#define MPU60X0_I2C_IF_DIS   4
 
#define MPU60X0_I2C_MST_EN   5
 
#define MPU60X0_FIFO_EN   6
 
#define MPU60X0_I2C_SLV4_DONE   6
 

Enumerations

enum  Mpu60x0DLPF {
  MPU60X0_DLPF_256HZ = 0x0, MPU60X0_DLPF_188HZ = 0x1, MPU60X0_DLPF_98HZ = 0x2, MPU60X0_DLPF_42HZ = 0x3,
  MPU60X0_DLPF_20HZ = 0x4, MPU60X0_DLPF_10HZ = 0x5, MPU60X0_DLPF_05HZ = 0x6
}
 Digital Low Pass Filter Options DLFP is affecting both gyro and accels (on MPU not ICM), with slightly different bandwidth. More...
 
enum  Mpu60x0ACCDLPF {
  MPU60X0_DLPF_ACC_1046HZ = 0x0, MPU60X0_DLPF_ACC_218HZ = 0x1, MPU60X0_DLPF_ACC_99HZ = 0x2, MPU60X0_DLPF_ACC_44HZ = 0x3,
  MPU60X0_DLPF_ACC_21HZ = 0x4, MPU60X0_DLPF_ACC_10HZ = 0x5, MPU60X0_DLPF_ACC_05HZ = 0x6, MPU60X0_DLPF_ACC_420HZ = 0x7
}
 Digital Low Pass Filter Options DLFP specifically for the ICM device accelerometer. More...
 
enum  Mpu60x0GyroRanges { MPU60X0_GYRO_RANGE_250 = 0x00, MPU60X0_GYRO_RANGE_500 = 0x01, MPU60X0_GYRO_RANGE_1000 = 0x02, MPU60X0_GYRO_RANGE_2000 = 0x03 }
 Selectable gyro range. More...
 
enum  Mpu60x0AccelRanges { MPU60X0_ACCEL_RANGE_2G = 0x00, MPU60X0_ACCEL_RANGE_4G = 0x01, MPU60X0_ACCEL_RANGE_8G = 0x02, MPU60X0_ACCEL_RANGE_16G = 0x03 }
 Selectable accel range. More...
 
enum  Mpu60x0MstClk {
  MPU60X0_MST_CLK_500KHZ = 0x9, MPU60X0_MST_CLK_471KHZ = 0xA, MPU60X0_MST_CLK_444KHZ = 0xB, MPU60X0_MST_CLK_421KHZ = 0xC,
  MPU60X0_MST_CLK_400KHZ = 0xD, MPU60X0_MST_CLK_381KHZ = 0xE, MPU60X0_MST_CLK_364KHZ = 0xF, MPU60X0_MST_CLK_348KHZ = 0x0,
  MPU60X0_MST_CLK_333KHZ = 0x1, MPU60X0_MST_CLK_320KHZ = 0x2, MPU60X0_MST_CLK_308KHZ = 0x3, MPU60X0_MST_CLK_296KHZ = 0x4,
  MPU60X0_MST_CLK_286KHZ = 0x5, MPU60X0_MST_CLK_276KHZ = 0x6, MPU60X0_MST_CLK_267KHZ = 0x7, MPU60X0_MST_CLK_254KHZ = 0x8
}
 I2C Master clock. More...
 

Detailed Description

Register and address definitions for MPU-6000 and MPU-6050.

Definition in file mpu60x0_regs.h.

Macro Definition Documentation

#define ICM20600_WHOAMI_REPLY   0x11

Definition at line 120 of file mpu60x0_regs.h.

Referenced by mpu60x0_spi_start_configure().

#define ICM20602_WHOAMI_REPLY   0x12

Definition at line 122 of file mpu60x0_regs.h.

Referenced by mpu60x0_spi_start_configure().

#define ICM20608_WHOAMI_REPLY   0xAF

Definition at line 121 of file mpu60x0_regs.h.

Referenced by mpu60x0_spi_start_configure().

#define ICM20689_WHOAMI_REPLY   0x98

Definition at line 123 of file mpu60x0_regs.h.

Referenced by mpu60x0_spi_start_configure().

#define MPU60X0_ADDR   0xD0

Definition at line 32 of file mpu60x0_regs.h.

Referenced by imu_bebop_init(), imu_disco_init(), imu_krooz_init(), and imu_swing_init().

#define MPU60X0_ADDR_ALT   0xD2

Definition at line 33 of file mpu60x0_regs.h.

Referenced by imu_apogee_init(), and imu_navstik_init().

#define MPU60X0_EXT_SENS_DATA   0x49

Definition at line 114 of file mpu60x0_regs.h.

#define MPU60X0_EXT_SENS_DATA_SIZE   24

Definition at line 115 of file mpu60x0_regs.h.

#define MPU60X0_FIFO_EN   6

Definition at line 134 of file mpu60x0_regs.h.

#define MPU60X0_FIFO_RESET   2

Definition at line 131 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_I2C_BYPASS_EN   1

Definition at line 126 of file mpu60x0_regs.h.

#define MPU60X0_I2C_IF_DIS   4

Definition at line 132 of file mpu60x0_regs.h.

Referenced by mpu60x0_configure_i2c_slaves().

#define MPU60X0_I2C_MST_EN   5

Definition at line 133 of file mpu60x0_regs.h.

Referenced by mpu60x0_configure_i2c_slaves().

#define MPU60X0_I2C_MST_RESET   1

Definition at line 130 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_I2C_SLV4_DONE   6

Definition at line 137 of file mpu60x0_regs.h.

Referenced by mpu_wait_slave4_ready_cb().

#define MPU60X0_REG_ACCEL_CONFIG   0x1C

Definition at line 53 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_REG_ACCEL_CONFIG2   0x1D

Definition at line 54 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_REG_ACCEL_XOUT_H   0x3B

Definition at line 94 of file mpu60x0_regs.h.

#define MPU60X0_REG_ACCEL_XOUT_L   0x3C

Definition at line 95 of file mpu60x0_regs.h.

#define MPU60X0_REG_ACCEL_YOUT_H   0x3D

Definition at line 96 of file mpu60x0_regs.h.

#define MPU60X0_REG_ACCEL_YOUT_L   0x3E

Definition at line 97 of file mpu60x0_regs.h.

#define MPU60X0_REG_ACCEL_ZOUT_H   0x3F

Definition at line 98 of file mpu60x0_regs.h.

#define MPU60X0_REG_ACCEL_ZOUT_L   0x40

Definition at line 99 of file mpu60x0_regs.h.

#define MPU60X0_REG_AUX_VDDIO   0x01

Definition at line 38 of file mpu60x0_regs.h.

#define MPU60X0_REG_CONFIG   0x1A

Definition at line 51 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_REG_FIFO_COUNT_H   0x72

Definition at line 45 of file mpu60x0_regs.h.

#define MPU60X0_REG_FIFO_COUNT_L   0x73

Definition at line 46 of file mpu60x0_regs.h.

#define MPU60X0_REG_FIFO_EN   0x23

Definition at line 44 of file mpu60x0_regs.h.

#define MPU60X0_REG_FIFO_R_W   0x74

Definition at line 47 of file mpu60x0_regs.h.

#define MPU60X0_REG_GYRO_CONFIG   0x1B

Definition at line 52 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_REG_GYRO_XOUT_H   0x43

Definition at line 106 of file mpu60x0_regs.h.

#define MPU60X0_REG_GYRO_XOUT_L   0x44

Definition at line 107 of file mpu60x0_regs.h.

#define MPU60X0_REG_GYRO_YOUT_H   0x45

Definition at line 108 of file mpu60x0_regs.h.

#define MPU60X0_REG_GYRO_YOUT_L   0x46

Definition at line 109 of file mpu60x0_regs.h.

#define MPU60X0_REG_GYRO_ZOUT_H   0x47

Definition at line 110 of file mpu60x0_regs.h.

#define MPU60X0_REG_GYRO_ZOUT_L   0x48

Definition at line 111 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_MST_CTRL   0x24

Definition at line 58 of file mpu60x0_regs.h.

Referenced by mpu60x0_configure_i2c_slaves().

#define MPU60X0_REG_I2C_MST_DELAY   0x67

Definition at line 60 of file mpu60x0_regs.h.

Referenced by mpu60x0_configure_i2c_slaves().

#define MPU60X0_REG_I2C_MST_STATUS   0x36

Definition at line 59 of file mpu60x0_regs.h.

Referenced by mpu_wait_slave4_ready().

#define MPU60X0_REG_I2C_SLV0_ADDR   0X25

Definition at line 62 of file mpu60x0_regs.h.

Referenced by imu_aspirin2_configure_mag_slave().

#define MPU60X0_REG_I2C_SLV0_CTRL   0X27

Definition at line 64 of file mpu60x0_regs.h.

Referenced by imu_aspirin2_configure_mag_slave().

#define MPU60X0_REG_I2C_SLV0_DO   0X63

Definition at line 65 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV0_REG   0X26

Definition at line 63 of file mpu60x0_regs.h.

Referenced by imu_aspirin2_configure_mag_slave().

#define MPU60X0_REG_I2C_SLV1_ADDR   0X28

Definition at line 67 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV1_CTRL   0X2A

Definition at line 69 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV1_DO   0X64

Definition at line 70 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV1_REG   0X29

Definition at line 68 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV2_ADDR   0X2B

Definition at line 72 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV2_CTRL   0X2D

Definition at line 74 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV2_DO   0X65

Definition at line 75 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV2_REG   0X2C

Definition at line 73 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV3_ADDR   0X2E

Definition at line 77 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV3_CTRL   0X30

Definition at line 79 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV3_DO   0X66

Definition at line 80 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV3_REG   0X2F

Definition at line 78 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV4_ADDR   0X31

Definition at line 82 of file mpu60x0_regs.h.

Referenced by imu_aspirin2_configure_mag_slave().

#define MPU60X0_REG_I2C_SLV4_CTRL   0X34
#define MPU60X0_REG_I2C_SLV4_DI   0X35

Definition at line 86 of file mpu60x0_regs.h.

#define MPU60X0_REG_I2C_SLV4_DO   0X33

Definition at line 84 of file mpu60x0_regs.h.

Referenced by imu_aspirin2_configure_mag_slave().

#define MPU60X0_REG_I2C_SLV4_REG   0X32

Definition at line 83 of file mpu60x0_regs.h.

Referenced by imu_aspirin2_configure_mag_slave().

#define MPU60X0_REG_INT_ENABLE   0x38

Definition at line 90 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_REG_INT_PIN_CFG   0x37

Definition at line 89 of file mpu60x0_regs.h.

Referenced by mpu60x0_configure_i2c_slaves().

#define MPU60X0_REG_INT_STATUS   0x3A

Definition at line 91 of file mpu60x0_regs.h.

Referenced by mpu60x0_i2c_read(), and mpu60x0_spi_read().

#define MPU60X0_REG_PWR_MGMT_1   0x6B

Definition at line 40 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_REG_PWR_MGMT_2   0x6C

Definition at line 41 of file mpu60x0_regs.h.

#define MPU60X0_REG_SMPLRT_DIV   0x19

Definition at line 50 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_REG_TEMP_OUT_H   0x41

Definition at line 102 of file mpu60x0_regs.h.

#define MPU60X0_REG_TEMP_OUT_L   0x42

Definition at line 103 of file mpu60x0_regs.h.

#define MPU60X0_REG_UNDOC1   0x11

Definition at line 55 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_REG_USER_CTRL   0x6A

Definition at line 39 of file mpu60x0_regs.h.

Referenced by mpu60x0_configure_i2c_slaves(), and mpu60x0_send_config().

#define MPU60X0_REG_WHO_AM_I   0x75

Definition at line 118 of file mpu60x0_regs.h.

Referenced by mpu60x0_spi_start_configure().

#define MPU60X0_SIG_COND_RESET   0

Definition at line 129 of file mpu60x0_regs.h.

Referenced by mpu60x0_send_config().

#define MPU60X0_SPI_READ   0x80
#define MPU60X0_WHOAMI_REPLY   0x68

Definition at line 119 of file mpu60x0_regs.h.

Referenced by mpu60x0_spi_start_configure().

Enumeration Type Documentation

Digital Low Pass Filter Options DLFP specifically for the ICM device accelerometer.

Enumerator
MPU60X0_DLPF_ACC_1046HZ 
MPU60X0_DLPF_ACC_218HZ 
MPU60X0_DLPF_ACC_99HZ 
MPU60X0_DLPF_ACC_44HZ 
MPU60X0_DLPF_ACC_21HZ 
MPU60X0_DLPF_ACC_10HZ 
MPU60X0_DLPF_ACC_05HZ 
MPU60X0_DLPF_ACC_420HZ 

Definition at line 156 of file mpu60x0_regs.h.

Selectable accel range.

Enumerator
MPU60X0_ACCEL_RANGE_2G 
MPU60X0_ACCEL_RANGE_4G 
MPU60X0_ACCEL_RANGE_8G 
MPU60X0_ACCEL_RANGE_16G 

Definition at line 180 of file mpu60x0_regs.h.

Digital Low Pass Filter Options DLFP is affecting both gyro and accels (on MPU not ICM), with slightly different bandwidth.

Enumerator
MPU60X0_DLPF_256HZ 
MPU60X0_DLPF_188HZ 
MPU60X0_DLPF_98HZ 
MPU60X0_DLPF_42HZ 
MPU60X0_DLPF_20HZ 
MPU60X0_DLPF_10HZ 
MPU60X0_DLPF_05HZ 

Definition at line 143 of file mpu60x0_regs.h.

Selectable gyro range.

Enumerator
MPU60X0_GYRO_RANGE_250 
MPU60X0_GYRO_RANGE_500 
MPU60X0_GYRO_RANGE_1000 
MPU60X0_GYRO_RANGE_2000 

Definition at line 170 of file mpu60x0_regs.h.

I2C Master clock.

Enumerator
MPU60X0_MST_CLK_500KHZ 
MPU60X0_MST_CLK_471KHZ 
MPU60X0_MST_CLK_444KHZ 
MPU60X0_MST_CLK_421KHZ 
MPU60X0_MST_CLK_400KHZ 
MPU60X0_MST_CLK_381KHZ 
MPU60X0_MST_CLK_364KHZ 
MPU60X0_MST_CLK_348KHZ 
MPU60X0_MST_CLK_333KHZ 
MPU60X0_MST_CLK_320KHZ 
MPU60X0_MST_CLK_308KHZ 
MPU60X0_MST_CLK_296KHZ 
MPU60X0_MST_CLK_286KHZ 
MPU60X0_MST_CLK_276KHZ 
MPU60X0_MST_CLK_267KHZ 
MPU60X0_MST_CLK_254KHZ 

Definition at line 190 of file mpu60x0_regs.h.