tinygo.org/x/drivers@v0.27.1-0.20240509133757-7dbca2a54349/mpu9150/registers.go (about)

     1  package mpu9150
     2  
     3  // Constants/addresses used for I2C.
     4  
     5  // The I2C address which this device listens to.
     6  const Address = 0x68
     7  
     8  // Registers. Names, addresses and comments copied from the datasheet.
     9  const (
    10  	// Self test registers
    11  	SELF_TEST_X = 0x0D
    12  	SELF_TEST_Y = 0x0E
    13  	SELF_TEST_Z = 0x0F
    14  	SELF_TEST_A = 0x10
    15  
    16  	SMPLRT_DIV   = 0x19 // Sample rate divider
    17  	CONFIG       = 0x1A // Configuration
    18  	GYRO_CONFIG  = 0x1B // Gyroscope configuration
    19  	ACCEL_CONFIG = 0x1C // Accelerometer configuration
    20  	FIFO_EN      = 0x23 // FIFO enable
    21  
    22  	// I2C pass-through configuration
    23  	I2C_MST_CTRL   = 0x24
    24  	I2C_SLV0_ADDR  = 0x25
    25  	I2C_SLV0_REG   = 0x26
    26  	I2C_SLV0_CTRL  = 0x27
    27  	I2C_SLV1_ADDR  = 0x28
    28  	I2C_SLV1_REG   = 0x29
    29  	I2C_SLV1_CTRL  = 0x2A
    30  	I2C_SLV2_ADDR  = 0x2B
    31  	I2C_SLV2_REG   = 0x2C
    32  	I2C_SLV2_CTRL  = 0x2D
    33  	I2C_SLV3_ADDR  = 0x2E
    34  	I2C_SLV3_REG   = 0x2F
    35  	I2C_SLV3_CTRL  = 0x30
    36  	I2C_SLV4_ADDR  = 0x31
    37  	I2C_SLV4_REG   = 0x32
    38  	I2C_SLV4_DO    = 0x33
    39  	I2C_SLV4_CTRL  = 0x34
    40  	I2C_SLV4_DI    = 0x35
    41  	I2C_MST_STATUS = 0x36
    42  
    43  	// Interrupt configuration
    44  	INT_PIN_CFG = 0x37 // Interrupt pin/bypass enable configuration
    45  	INT_ENABLE  = 0x38 // Interrupt enable
    46  	INT_STATUS  = 0x3A // Interrupt status
    47  
    48  	// Accelerometer measurements
    49  	ACCEL_XOUT_H = 0x3B
    50  	ACCEL_XOUT_L = 0x3C
    51  	ACCEL_YOUT_H = 0x3D
    52  	ACCEL_YOUT_L = 0x3E
    53  	ACCEL_ZOUT_H = 0x3F
    54  	ACCEL_ZOUT_L = 0x40
    55  
    56  	// Temperature measurement
    57  	TEMP_OUT_H = 0x41
    58  	TEMP_OUT_L = 0x42
    59  
    60  	// Gyroscope measurements
    61  	GYRO_XOUT_H = 0x43
    62  	GYRO_XOUT_L = 0x44
    63  	GYRO_YOUT_H = 0x45
    64  	GYRO_YOUT_L = 0x46
    65  	GYRO_ZOUT_H = 0x47
    66  	GYRO_ZOUT_L = 0x48
    67  
    68  	// External sensor data
    69  	EXT_SENS_DATA_00 = 0x49
    70  	EXT_SENS_DATA_01 = 0x4A
    71  	EXT_SENS_DATA_02 = 0x4B
    72  	EXT_SENS_DATA_03 = 0x4C
    73  	EXT_SENS_DATA_04 = 0x4D
    74  	EXT_SENS_DATA_05 = 0x4E
    75  	EXT_SENS_DATA_06 = 0x4F
    76  	EXT_SENS_DATA_07 = 0x50
    77  	EXT_SENS_DATA_08 = 0x51
    78  	EXT_SENS_DATA_09 = 0x52
    79  	EXT_SENS_DATA_10 = 0x53
    80  	EXT_SENS_DATA_11 = 0x54
    81  	EXT_SENS_DATA_12 = 0x55
    82  	EXT_SENS_DATA_13 = 0x56
    83  	EXT_SENS_DATA_14 = 0x57
    84  	EXT_SENS_DATA_15 = 0x58
    85  	EXT_SENS_DATA_16 = 0x59
    86  	EXT_SENS_DATA_17 = 0x5A
    87  	EXT_SENS_DATA_18 = 0x5B
    88  	EXT_SENS_DATA_19 = 0x5C
    89  	EXT_SENS_DATA_20 = 0x5D
    90  	EXT_SENS_DATA_21 = 0x5E
    91  	EXT_SENS_DATA_22 = 0x5F
    92  	EXT_SENS_DATA_23 = 0x60
    93  
    94  	// I2C peripheral data out
    95  	I2C_SLV0_DO        = 0x63
    96  	I2C_SLV1_DO        = 0x64
    97  	I2C_SLV2_DO        = 0x65
    98  	I2C_SLV3_DO        = 0x66
    99  	I2C_MST_DELAY_CTRL = 0x67
   100  	SIGNAL_PATH_RESET  = 0x68
   101  
   102  	USER_CTRL   = 0x6A // User control
   103  	PWR_MGMT_1  = 0x6B // Power Management 1
   104  	PWR_MGMT_2  = 0x6C // Power Management 2
   105  	FIFO_COUNTH = 0x72 // FIFO count registers (high bits)
   106  	FIFO_COUNTL = 0x73 // FIFO count registers (low bits)
   107  	FIFO_R_W    = 0x74 // FIFO read/write
   108  	WHO_AM_I    = 0x75 // Who am I
   109  
   110  	// Clock settings  (4.28 Register 107 – Power Management 1)
   111  	CLOCK_INTERNAL               = 0x00
   112  	CLOCK_PLL_XGYRO              = 0x01
   113  	CLOCK_PLL_YGYRO              = 0x02
   114  	CLOCK_PLL_ZGYRO              = 0x03
   115  	CLOCK_PLL_EXTERNAL_32_768_KZ = 0x04
   116  	CLOCK_PLL_EXTERNAL_19_2_MHZ  = 0x05
   117  	CLOCK_RESERVED               = 0x06
   118  	CLOCK_STOP                   = 0x07
   119  
   120  	// Gyroscope settings (4.4 Register 27 – Gyroscope Configuration)
   121  	FS_RANGE_250  = 0x00
   122  	FS_RANGE_500  = 0x01
   123  	FS_RANGE_1000 = 0x02
   124  	FS_RANGE_2000 = 0x03
   125  
   126  	// Accelerometer settings (4.5 Register 28 – Accelerometer Configuration)
   127  	AFS_RANGE_2G  = 0x00
   128  	AFS_RANGE_4G  = 0x01
   129  	AFS_RANGE_8G  = 0x02
   130  	AFS_RANGE_16G = 0x03
   131  )