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

     1  package lsm9ds1
     2  
     3  // Constants/addresses used for I2C.
     4  
     5  const (
     6  
     7  	// Constants/addresses used for I2C.
     8  	ACCEL_ADDRESS = 0x6B
     9  	MAG_ADDRESS   = 0x1E
    10  
    11  	// Table 21. Accelerometer and gyroscope register address map
    12  	WHO_AM_I     = 0x0F // value 0x68
    13  	CTRL_REG1_G  = 0x10
    14  	OUT_X_L_G    = 0x18
    15  	OUT_X_H_G    = 0x19
    16  	OUT_Y_L_G    = 0x1A
    17  	OUT_Y_H_G    = 0x1B
    18  	OUT_Z_L_G    = 0x1C
    19  	OUT_Z_H_G    = 0x1D
    20  	OUT_TEMP_L   = 0x15
    21  	OUT_TEMP_H   = 0x16
    22  	CTRL_REG6_XL = 0x20
    23  	STATUS_REG   = 0x27
    24  	OUT_X_L_XL   = 0x28
    25  	OUT_X_H_XL   = 0x29
    26  	OUT_Y_L_XL   = 0x2A
    27  	OUT_Y_H_XL   = 0x2B
    28  	OUT_Z_L_XL   = 0x2C
    29  	OUT_Z_H_XL   = 0x2D
    30  
    31  	// Table 22. Magnetic sensor register address map
    32  	OFFSET_X_REG_L_M = 0x05
    33  	OFFSET_X_REG_H_M = 0x06
    34  	OFFSET_Y_REG_L_M = 0x07
    35  	OFFSET_Y_REG_H_M = 0x08
    36  	OFFSET_Z_REG_L_M = 0x09
    37  	OFFSET_Z_REG_H_M = 0x0A
    38  	WHO_AM_I_M       = 0x0F // value 0x3D
    39  	CTRL_REG1_M      = 0x20 // TEMP_COMP OM1 OM0 DO2 DO1 DO0 FAST_ODR ST
    40  	CTRL_REG2_M      = 0x21 // 0 FS1 FS0 0 REBOOT SOFT_RST 0 0
    41  	CTRL_REG3_M      = 0x22 // 0 LP 0 0 SIM MD1 MD0
    42  	CTRL_REG4_M      = 0x23 // 0 0 0 0 OMZ1 OMZ0 BLE 0
    43  	STATUS_REG_M     = 0x27
    44  	OUT_X_L_M        = 0x28
    45  	OUT_X_H_M        = 0x29
    46  	OUT_Y_L_M        = 0x2A
    47  	OUT_Y_H_M        = 0x2B
    48  	OUT_Z_L_M        = 0x2C
    49  	OUT_Z_H_M        = 0x2D
    50  
    51  	// Table 67. CTRL_REG6_XL register description
    52  	ACCEL_2G  AccelRange = 0b00
    53  	ACCEL_4G  AccelRange = 0b10
    54  	ACCEL_8G  AccelRange = 0b11
    55  	ACCEL_16G AccelRange = 0b01
    56  
    57  	// Table 68. ODR register setting (accelerometer only mode)
    58  	ACCEL_SR_OFF AccelSampleRate = 0b000
    59  	ACCEL_SR_10  AccelSampleRate = 0b001
    60  	ACCEL_SR_50  AccelSampleRate = 0b010
    61  	ACCEL_SR_119 AccelSampleRate = 0b011
    62  	ACCEL_SR_238 AccelSampleRate = 0b100
    63  	ACCEL_SR_476 AccelSampleRate = 0b101
    64  	ACCEL_SR_952 AccelSampleRate = 0b110
    65  
    66  	// Table 67. CTRL_REG6_XL register description
    67  	ACCEL_BW_50  AccelBandwidth = 0b11
    68  	ACCEL_BW_105 AccelBandwidth = 0b10
    69  	ACCEL_BW_211 AccelBandwidth = 0b01
    70  	ACCEL_BW_408 AccelBandwidth = 0b00
    71  
    72  	// Table 45. CTRL_REG1_G register description
    73  	GYRO_250DPS  GyroRange = 0b00
    74  	GYRO_500DPS  GyroRange = 0b01
    75  	GYRO_2000DPS GyroRange = 0b11
    76  
    77  	// Table 9. Gyroscope operating modes
    78  	// Table 46. ODR and BW configuration setting (after LPF1)
    79  	GYRO_SR_OFF GyroSampleRate = 0b000
    80  	GYRO_SR_15  GyroSampleRate = 0b001
    81  	GYRO_SR_60  GyroSampleRate = 0b010
    82  	GYRO_SR_119 GyroSampleRate = 0b011
    83  	GYRO_SR_238 GyroSampleRate = 0b100
    84  	GYRO_SR_476 GyroSampleRate = 0b101
    85  	GYRO_SR_952 GyroSampleRate = 0b110
    86  
    87  	// Table 114. Full-scale selection
    88  	MAG_4G  MagRange = 0b00
    89  	MAG_8G  MagRange = 0b01
    90  	MAG_12G MagRange = 0b10
    91  	MAG_16G MagRange = 0b11
    92  
    93  	// Table 111. Output data rate configuration
    94  	MAG_SR_06 MagSampleRate = 0b000
    95  	MAG_SR_1  MagSampleRate = 0b001
    96  	MAG_SR_2  MagSampleRate = 0b010
    97  	MAG_SR_5  MagSampleRate = 0b011
    98  	MAG_SR_10 MagSampleRate = 0b100
    99  	MAG_SR_20 MagSampleRate = 0b101
   100  	MAG_SR_40 MagSampleRate = 0b110
   101  	MAG_SR_80 MagSampleRate = 0b111
   102  )