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

     1  package lsm303agr
     2  
     3  const (
     4  
     5  	// Constants/addresses used for I2C.
     6  	ACCEL_ADDRESS = 0x19
     7  	MAG_ADDRESS   = 0x1E
     8  
     9  	// i2C 8-bit subaddress (SUB): the 7 LSb represent the actual register address
    10  	// while the MSB enables address auto increment.
    11  	// If the MSb of the SUB field is 1, the SUB (register address) is
    12  	// automatically increased to allow multiple data read/writes.
    13  	ADDR_AUTO_INC_MASK = 0x80
    14  
    15  	// accelerometer registers.
    16  	ACCEL_WHO_AM_I     = 0x0F
    17  	ACCEL_CTRL_REG1_A  = 0x20
    18  	ACCEL_CTRL_REG4_A  = 0x23
    19  	ACCEL_OUT_X_L_A    = 0x28
    20  	ACCEL_OUT_X_H_A    = 0x29
    21  	ACCEL_OUT_Y_L_A    = 0x2A
    22  	ACCEL_OUT_Y_H_A    = 0x2B
    23  	ACCEL_OUT_Z_L_A    = 0x2C
    24  	ACCEL_OUT_Z_H_A    = 0x2D
    25  	ACCEL_OUT_AUTO_INC = ACCEL_OUT_X_L_A | ADDR_AUTO_INC_MASK
    26  
    27  	// magnetic sensor registers.
    28  	MAG_WHO_AM_I     = 0x4F
    29  	MAG_MR_REG_M     = 0x60
    30  	MAG_OUT_X_L_M    = 0x68
    31  	MAG_OUT_X_H_M    = 0x69
    32  	MAG_OUT_Y_L_M    = 0x6A
    33  	MAG_OUT_Y_H_M    = 0x6B
    34  	MAG_OUT_Z_L_M    = 0x6C
    35  	MAG_OUT_Z_H_M    = 0x6D
    36  	MAG_OUT_AUTO_INC = MAG_OUT_X_L_M | ADDR_AUTO_INC_MASK
    37  
    38  	// temperature sensor registers.
    39  	TEMP_CFG_REG_A    = 0x1F
    40  	OUT_TEMP_L_A      = 0x0C
    41  	OUT_TEMP_H_A      = 0x0D
    42  	OUT_TEMP_AUTO_INC = OUT_TEMP_L_A | ADDR_AUTO_INC_MASK
    43  
    44  	// accelerometer power mode.
    45  	ACCEL_POWER_NORMAL = 0x00 // default
    46  	ACCEL_POWER_LOW    = 0x08
    47  
    48  	// accelerometer range.
    49  	ACCEL_RANGE_2G  = 0x00 // default
    50  	ACCEL_RANGE_4G  = 0x01
    51  	ACCEL_RANGE_8G  = 0x02
    52  	ACCEL_RANGE_16G = 0x03
    53  
    54  	// accelerometer data rate.
    55  	ACCEL_DATARATE_1HZ    = 0x01
    56  	ACCEL_DATARATE_10HZ   = 0x02
    57  	ACCEL_DATARATE_25HZ   = 0x03
    58  	ACCEL_DATARATE_50HZ   = 0x04
    59  	ACCEL_DATARATE_100HZ  = 0x05 // default
    60  	ACCEL_DATARATE_200HZ  = 0x06
    61  	ACCEL_DATARATE_400HZ  = 0x07
    62  	ACCEL_DATARATE_1344HZ = 0x09 // 5376Hz in low-power mode
    63  
    64  	// magnetic sensor power mode.
    65  	MAG_POWER_NORMAL = 0x00 // default
    66  	MAG_POWER_LOW    = 0x01
    67  
    68  	// magnetic sensor operate mode.
    69  	MAG_SYSTEM_CONTINUOUS = 0x00 // default
    70  	MAG_SYSTEM_SINGLE     = 0x01
    71  
    72  	// magnetic sensor data rate
    73  	MAG_DATARATE_10HZ  = 0x00 // default
    74  	MAG_DATARATE_20HZ  = 0x01
    75  	MAG_DATARATE_50HZ  = 0x02
    76  	MAG_DATARATE_100HZ = 0x03
    77  )