Files
drivers/lsm9ds1/registers.go
T
2021-11-18 11:36:16 +01:00

103 lines
2.8 KiB
Go

package lsm9ds1
// Constants/addresses used for I2C.
const (
// Constants/addresses used for I2C.
ACCEL_ADDRESS = 0x6B
MAG_ADDRESS = 0x1E
// Table 21. Accelerometer and gyroscope register address map
WHO_AM_I = 0x0F // value 0x68
CTRL_REG1_G = 0x10
OUT_X_L_G = 0x18
OUT_X_H_G = 0x19
OUT_Y_L_G = 0x1A
OUT_Y_H_G = 0x1B
OUT_Z_L_G = 0x1C
OUT_Z_H_G = 0x1D
OUT_TEMP_L = 0x15
OUT_TEMP_H = 0x16
CTRL_REG6_XL = 0x20
STATUS_REG = 0x27
OUT_X_L_XL = 0x28
OUT_X_H_XL = 0x29
OUT_Y_L_XL = 0x2A
OUT_Y_H_XL = 0x2B
OUT_Z_L_XL = 0x2C
OUT_Z_H_XL = 0x2D
// Table 22. Magnetic sensor register address map
OFFSET_X_REG_L_M = 0x05
OFFSET_X_REG_H_M = 0x06
OFFSET_Y_REG_L_M = 0x07
OFFSET_Y_REG_H_M = 0x08
OFFSET_Z_REG_L_M = 0x09
OFFSET_Z_REG_H_M = 0x0A
WHO_AM_I_M = 0x0F // value 0x3D
CTRL_REG1_M = 0x20 // TEMP_COMP OM1 OM0 DO2 DO1 DO0 FAST_ODR ST
CTRL_REG2_M = 0x21 // 0 FS1 FS0 0 REBOOT SOFT_RST 0 0
CTRL_REG3_M = 0x22 // 0 LP 0 0 SIM MD1 MD0
CTRL_REG4_M = 0x23 // 0 0 0 0 OMZ1 OMZ0 BLE 0
STATUS_REG_M = 0x27
OUT_X_L_M = 0x28
OUT_X_H_M = 0x29
OUT_Y_L_M = 0x2A
OUT_Y_H_M = 0x2B
OUT_Z_L_M = 0x2C
OUT_Z_H_M = 0x2D
// Table 67. CTRL_REG6_XL register description
ACCEL_2G AccelRange = 0b00
ACCEL_4G AccelRange = 0b10
ACCEL_8G AccelRange = 0b11
ACCEL_16G AccelRange = 0b01
// Table 68. ODR register setting (accelerometer only mode)
ACCEL_SR_OFF AccelSampleRate = 0b000
ACCEL_SR_10 AccelSampleRate = 0b001
ACCEL_SR_50 AccelSampleRate = 0b010
ACCEL_SR_119 AccelSampleRate = 0b011
ACCEL_SR_238 AccelSampleRate = 0b100
ACCEL_SR_476 AccelSampleRate = 0b101
ACCEL_SR_952 AccelSampleRate = 0b110
// Table 67. CTRL_REG6_XL register description
ACCEL_BW_50 AccelBandwidth = 0b11
ACCEL_BW_105 AccelBandwidth = 0b10
ACCEL_BW_211 AccelBandwidth = 0b01
ACCEL_BW_408 AccelBandwidth = 0b00
// Table 45. CTRL_REG1_G register description
GYRO_250DPS GyroRange = 0b00
GYRO_500DPS GyroRange = 0b01
GYRO_2000DPS GyroRange = 0b11
// Table 9. Gyroscope operating modes
// Table 46. ODR and BW configuration setting (after LPF1)
GYRO_SR_OFF GyroSampleRate = 0b000
GYRO_SR_15 GyroSampleRate = 0b001
GYRO_SR_60 GyroSampleRate = 0b010
GYRO_SR_119 GyroSampleRate = 0b011
GYRO_SR_238 GyroSampleRate = 0b100
GYRO_SR_476 GyroSampleRate = 0b101
GYRO_SR_952 GyroSampleRate = 0b110
// Table 114. Full-scale selection
MAG_4G MagRange = 0b00
MAG_8G MagRange = 0b01
MAG_12G MagRange = 0b10
MAG_16G MagRange = 0b11
// Table 111. Output data rate configuration
MAG_SR_06 MagSampleRate = 0b000
MAG_SR_1 MagSampleRate = 0b001
MAG_SR_2 MagSampleRate = 0b010
MAG_SR_5 MagSampleRate = 0b011
MAG_SR_10 MagSampleRate = 0b100
MAG_SR_20 MagSampleRate = 0b101
MAG_SR_40 MagSampleRate = 0b110
MAG_SR_80 MagSampleRate = 0b111
)