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

     1  package qmi8656c
     2  
     3  // The I2C address that the sensor listens to.
     4  const Address = 0x6B
     5  
     6  const (
     7  	// Who am I
     8  	WHO_AM_I   = 0x00
     9  	IDENTIFIER = 0x05
    10  
    11  	// Configuration registers
    12  	CTRL1 = 0x02 // SPI Modes
    13  	CTRL2 = 0x03 // Accelerometer config
    14  	CTRL3 = 0x04 // Gyro config
    15  	CTRL4 = 0x05 // Magnetometer config (ignored)
    16  	CTRL5 = 0x06 // Sensor DSP config
    17  	CTRL6 = 0x07 // Motion on Demand (ignored)
    18  	CTRL7 = 0x08 // Sensors config
    19  
    20  	// Interface config (CTRL1)
    21  	SPI_4_WIRE        = 0x00
    22  	SPI_3_WIRE        = 0x80
    23  	SPI_NOT_AUTO_INC  = 0x00
    24  	SPI_AUTO_INC      = 0x40
    25  	SPI_LITTLE_ENDIAN = 0x00
    26  	SPI_BIG_ENDIAN    = 0x20
    27  
    28  	// Accelerometer scale config (CTRL2-H)
    29  	ACC_SELF_TEST = 0x80
    30  
    31  	// Accelerometer scale config (CTRL2-H)
    32  	ACC_2G  = 0x00
    33  	ACC_4G  = 0x10
    34  	ACC_8G  = 0x20
    35  	ACC_16G = 0x30
    36  
    37  	// Accelerometer output data rate (ODR) config (CTRL2-L)
    38  	ACC_NORMAL_8000HZ   = 0x00
    39  	ACC_NORMAL_4000HZ   = 0x01
    40  	ACC_NORMAL_2000HZ   = 0x02
    41  	ACC_NORMAL_1000HZ   = 0x03
    42  	ACC_NORMAL_500HZ    = 0x04
    43  	ACC_NORMAL_250HZ    = 0x05
    44  	ACC_NORMAL_125HZ    = 0x06
    45  	ACC_NORMAL_62HZ     = 0x07
    46  	ACC_NORMAL_31HZ     = 0x08
    47  	ACC_LOW_POWER_128HZ = 0x0C
    48  	ACC_LOW_POWER_21HZ  = 0x0D
    49  	ACC_LOW_POWER_11HZ  = 0x0E
    50  	ACC_LOW_POWER_3HZ   = 0x0F
    51  
    52  	// Gyro scale config (CTRL3-H)
    53  	GYRO_SELF_TEST = 0x80
    54  
    55  	// Gyro scale config (CTRL3-H)
    56  	GYRO_16DPS   = 0x00
    57  	GYRO_32DPS   = 0x10
    58  	GYRO_64DPS   = 0x20
    59  	GYRO_128DPS  = 0x30
    60  	GYRO_256DPS  = 0x40
    61  	GYRO_512DPS  = 0x50
    62  	GYRO_1024DPS = 0x60
    63  	GYRO_2048DPS = 0x70
    64  
    65  	// Gyro output data rate (ODR) config (CTRL3-L)
    66  	GYRO_8000HZ = 0x00
    67  	GYRO_4000HZ = 0x01
    68  	GYRO_2000HZ = 0x02
    69  	GYRO_1000HZ = 0x03
    70  	GYRO_500HZ  = 0x04
    71  	GYRO_250HZ  = 0x05
    72  	GYRO_125HZ  = 0x06
    73  	GYRO_62HZ   = 0x07
    74  	GYRO_31HZ   = 0x08
    75  
    76  	// Gyro DSP config (CTRL4-H)
    77  	GYRO_LOW_PASS_OFF  = 0x00 // Disabled
    78  	GYRO_LOW_PASS_2_62 = 0x10 // 2.62% of output data rate (ODR)
    79  	GYRO_LOW_PASS_3_59 = 0x30 // 3.59% of output data rate (ODR)
    80  	GYRO_LOW_PASS_5_32 = 0x50 // 5.32% of output data rate (ODR)
    81  	GYRO_LOW_PASS_14   = 0x70 // 14% of output data rate (ODR)
    82  
    83  	// Accelerometer DSP config (CTRL4-L)
    84  	ACC_LOW_PASS_OFF  = 0x00 // Disabled
    85  	ACC_LOW_PASS_2_62 = 0x01 // 2.62% of output data rate (ODR)
    86  	ACC_LOW_PASS_3_59 = 0x03 // 3.59% of output data rate (ODR)
    87  	ACC_LOW_PASS_5_32 = 0x05 // 5.32% of output data rate (ODR)
    88  	ACC_LOW_PASS_14   = 0x07 // 14% of output data rate (ODR)
    89  
    90  	// Motion on demand (MOD) (CTRL6)
    91  	MOD_DISABLE = 0x00
    92  	MOD_ENABLE  = 0x80
    93  
    94  	// Enable sensors (CTRL7)
    95  	GYRO_DISABLE       = 0x00
    96  	GYRO_FULL_ENABLE   = 0x02
    97  	GYRO_SNOOZE_ENABLE = 0x12
    98  	ACC_DISABLE        = 0x00
    99  	ACC_ENABLE         = 0x01
   100  
   101  	// Timestamp Outputs Register Adresses
   102  	TIMESTAMP_OUT_L = 0x30
   103  	TIMESTAMP_OUT_M = 0x31
   104  	TIMESTAMP_OUT_H = 0x32
   105  
   106  	// Temperature Outputs Register Adresses
   107  	TEMP_OUT_L = 0x33
   108  	TEMP_OUT_H = 0x34
   109  
   110  	// Acceleration Outputs Register Adresses
   111  	ACC_XOUT_L = 0x35
   112  	ACC_XOUT_H = 0x36
   113  	ACC_YOUT_L = 0x37
   114  	ACC_YOUT_H = 0x38
   115  	ACC_ZOUT_L = 0x39
   116  	ACC_ZOUT_H = 0x3A
   117  
   118  	// Angular Rate Outputs Register Adresses
   119  	GYRO_XOUT_L = 0x3B
   120  	GYRO_XOUT_H = 0x3C
   121  	GYRO_YOUT_L = 0x3D
   122  	GYRO_YOUT_H = 0x3E
   123  	GYRO_ZOUT_L = 0x3F
   124  	GYRO_ZOUT_H = 0x40
   125  
   126  	// Quaternion Outputs Register Adresses
   127  	DELTA_QUAT_WOUT_L = 0x49
   128  	DELTA_QUAT_WOUT_H = 0x4A
   129  	DELTA_QUAT_XOUT_L = 0x4B
   130  	DELTA_QUAT_XOUT_H = 0x4C
   131  	DELTA_QUAT_YOUT_L = 0x4D
   132  	DELTA_QUAT_YOUT_H = 0x4E
   133  	DELTA_QUAT_ZOUT_L = 0x4F
   134  	DELTA_QUAT_ZOUT_H = 0x50
   135  
   136  	// Delta Velocity Outputs Register Adresses
   137  	DELTA_VEL_XOUT_L = 0x51
   138  	DELTA_VEL_XOUT_H = 0x52
   139  	DELTA_VEL_YOUT_L = 0x53
   140  	DELTA_VEL_YOUT_H = 0x54
   141  	DELTA_VEL_ZOUT_L = 0x55
   142  	DELTA_VEL_ZOUT_H = 0x56
   143  )