mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-13 19:33:39 +00:00
103 lines
2.8 KiB
Go
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
|
|
)
|