qmi8658c: Driver for QMI8658C 6-axis IMU sensor

Header file for QMI8658C sensor driver.

Datasheet: https://qstcorp.com/upload/pdf/202202/QMI8658C%20datasheet%20rev%200.9.pdf

Author

xyzroe ESP-IDF driver for QMI8658C sensor

Copyright (c) 2024 xyzroe i@xyzroe.cc

Defines

DEFAUL_QMI8658C_ADDR

I2C address for QMI8658C.

QMI8658C_I2C_FREQ_HZ
QMI8658_WHO_AM_I
QMI8658_REVISION
QMI8658_CTRL1
QMI8658_CTRL2
QMI8658_CTRL3
QMI8658_CTRL4
QMI8658_CTRL5
QMI8658_CTRL6
QMI8658_CTRL7
QMI8658_CTRL9
QMI8658_ACC_X_L
QMI8658_ACC_X_H
QMI8658_ACC_Y_L
QMI8658_ACC_Y_H
QMI8658_ACC_Z_L
QMI8658_ACC_Z_H
QMI8658_GYR_X_L
QMI8658_GYR_X_H
QMI8658_GYR_Y_L
QMI8658_GYR_Y_H
QMI8658_GYR_Z_L
QMI8658_GYR_Z_H
QMI8658_TEMP_L
QMI8658_TEMP_H
QMI8658_RESET
ACC_SCALE_SENSITIVITY_2G
ACC_SCALE_SENSITIVITY_4G
ACC_SCALE_SENSITIVITY_8G
ACC_SCALE_SENSITIVITY_16G
GYRO_SCALE_SENSITIVITY_16DPS
GYRO_SCALE_SENSITIVITY_32DPS
GYRO_SCALE_SENSITIVITY_64DPS
GYRO_SCALE_SENSITIVITY_128DPS
GYRO_SCALE_SENSITIVITY_256DPS
GYRO_SCALE_SENSITIVITY_512DPS
GYRO_SCALE_SENSITIVITY_1024DPS
GYRO_SCALE_SENSITIVITY_2048DPS
TEMPERATURE_SENSOR_RESOLUTION

Enums

enum qmi8658c_mode_t

Values:

enumerator QMI8658C_MODE_ACC_ONLY
enumerator QMI8658C_MODE_GYRO_ONLY
enumerator QMI8658C_MODE_DUAL
enum qmi8658c_acc_odr_t

Values:

enumerator QMI8658C_ACC_ODR_8000
enumerator QMI8658C_ACC_ODR_4000
enumerator QMI8658C_ACC_ODR_2000
enumerator QMI8658C_ACC_ODR_1000
enumerator QMI8658C_ACC_ODR_500
enumerator QMI8658C_ACC_ODR_250
enumerator QMI8658C_ACC_ODR_125
enumerator QMI8658C_ACC_ODR_62_5
enumerator QMI8658C_ACC_ODR_31_25
enumerator QMI8658C_ACC_ODR_128
enumerator QMI8658C_ACC_ODR_21
enumerator QMI8658C_ACC_ODR_11
enumerator QMI8658C_ACC_ODR_3
enum qmi8658c_gyro_odr_t

Values:

enumerator QMI8658C_GYRO_ODR_8000
enumerator QMI8658C_GYRO_ODR_4000
enumerator QMI8658C_GYRO_ODR_2000
enumerator QMI8658C_GYRO_ODR_1000
enumerator QMI8658C_GYRO_ODR_500
enumerator QMI8658C_GYRO_ODR_250
enumerator QMI8658C_GYRO_ODR_125
enumerator QMI8658C_GYRO_ODR_62_5
enumerator QMI8658C_GYRO_ODR_31_25
enum qmi8658c_acc_scale_t

Values:

enumerator QMI8658C_ACC_SCALE_2G
enumerator QMI8658C_ACC_SCALE_4G
enumerator QMI8658C_ACC_SCALE_8G
enumerator QMI8658C_ACC_SCALE_16G
enum qmi8658c_gyro_scale_t

Values:

enumerator QMI8658C_GYRO_SCALE_16DPS
enumerator QMI8658C_GYRO_SCALE_32DPS
enumerator QMI8658C_GYRO_SCALE_64DPS
enumerator QMI8658C_GYRO_SCALE_128DPS
enumerator QMI8658C_GYRO_SCALE_256DPS
enumerator QMI8658C_GYRO_SCALE_512DPS
enumerator QMI8658C_GYRO_SCALE_1024DPS
enumerator QMI8658C_GYRO_SCALE_2048DPS

Functions

esp_err_t qmi8658c_init_desc(i2c_dev_t *dev, uint8_t addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)
esp_err_t qmi8658c_free_desc(i2c_dev_t *dev)
esp_err_t qmi8658c_power_on(i2c_dev_t *dev)
esp_err_t qmi8658c_power_down(i2c_dev_t *dev)
esp_err_t qmi8658c_setup(i2c_dev_t *dev, qmi8658c_config_t *config)
esp_err_t qmi8658c_read_data(i2c_dev_t *dev, qmi8658c_data_t *data)
struct qmi8658c_axes_t
#include <qmi8658c.h>

Public Members

float x
float y
float z
struct qmi_ctx_t
#include <qmi8658c.h>

Public Members

uint16_t acc_sensitivity
uint8_t acc_scale
uint16_t gyro_sensitivity
uint8_t gyro_scale
uint8_t who_am_i
uint8_t revision
struct qmi8658c_data_t
#include <qmi8658c.h>

Public Members

qmi8658c_axes_t acc
qmi8658c_axes_t gyro
float temperature
struct qmi8658c_config_t
#include <qmi8658c.h>