Files
drivers/mpu6886/registers.go
T
2023-05-20 15:49:13 +02:00

117 lines
2.1 KiB
Go

package mpu6886
// Constants/addresses used for I2C.
// The I2C address which this device listens to.
const (
DefaultAddress = 0x68
SecondaryAddress = 0x69
)
// Registers. Names, addresses and comments copied from the datasheet.
const (
XG_OFFS_TC_H = 0x04
XG_OFFS_TC_L = 0x05
YG_OFFS_TC_H = 0x07
YG_OFFS_TC_L = 0x08
ZG_OFFS_TC_H = 0x0A
ZG_OFFS_TC_L = 0x0B
// Self test registers
SELF_TEST_X_ACCEL = 0x0D
SELF_TEST_Y_ACCEL = 0x0E
SELF_TEST_Z_ACCEL = 0x0F
XG_OFFS_USRH = 0x13
XG_OFFS_USRL = 0x14
YG_OFFS_USRH = 0x15
YG_OFFS_USRL = 0x16
ZG_OFFS_USRH = 0x17
ZG_OFFS_USRL = 0x18
SMPLRT_DIV = 0x19
CONFIG = 0x1A
GYRO_CONFIG = 0x1B
ACCEL_CONFIG = 0x1C
ACCEL_CONFIG_2 = 0x1D
LP_MODE_CFG = 0x1E
ACCEL_WOM_X_THR = 0x20
ACCEL_WOM_Y_THR = 0x21
ACCEL_WOM_Z_THR = 0x22
FIFO_EN = 0x23
FSYNC_INT = 0x36
// Interrupt configuration
INT_PIN_CFG = 0x37
INT_ENABLE = 0x38
FIFO_WM_INT_STATUS = 0x39
INT_STATUS = 0x3A
// Accelerometer measurements
ACCEL_XOUT_H = 0x3B
ACCEL_XOUT_L = 0x3C
ACCEL_YOUT_H = 0x3D
ACCEL_YOUT_L = 0x3E
ACCEL_ZOUT_H = 0x3F
ACCEL_ZOUT_L = 0x40
// Temperature measurement
TEMP_OUT_H = 0x41
TEMP_OUT_L = 0x42
// Gyroscope measurements
GYRO_XOUT_H = 0x43
GYRO_XOUT_L = 0x44
GYRO_YOUT_H = 0x45
GYRO_YOUT_L = 0x46
GYRO_ZOUT_H = 0x47
GYRO_ZOUT_L = 0x48
SELF_TEST_X_GYRO = 0x50
SELF_TEST_Y_GYRO = 0x51
SELF_TEST_Z_GYRO = 0x52
E_ID0 = 0x53
E_ID1 = 0x54
E_ID2 = 0x55
E_ID3 = 0x56
E_ID4 = 0x57
E_ID5 = 0x58
E_ID6 = 0x59
FIFO_WM_TH1 = 0x60
FIFO_WM_TH2 = 0x61
SIGNAL_PATH_RESET = 0x68
ACCEL_INTEL_CTRL = 0x69
USER_CTRL = 0x6A
PWR_MGMT_1 = 0x6B
PWR_MGMT_2 = 0x6C
I2C_IF = 0x70
FIFO_COUNTH = 0x72
FIFO_COUNTL = 0x73
FIFO_R_W = 0x74
WHO_AM_I = 0x75
XA_OFFSET_H = 0x77
XA_OFFSET_L = 0x78
YA_OFFSET_H = 0x7A
YA_OFFSET_L = 0x7B
ZA_OFFSET_H = 0x7D
ZA_OFFSET_L = 0x7E
)
// Accelerometer and gyroscope ranges
const (
AFS_RANGE_2_G = iota
AFS_RANGE_4_G
AFS_RANGE_8_G
AFS_RANGE_16_G
)
const (
GFS_RANGE_250 = iota
GFS_RANGE_500
GFS_RANGE_1000
GFS_RANGE_2000
)