accelqvar  2.1.0.0
Data Structures | Macros | Typedefs | Enumerations | Functions
accelqvar.h File Reference

This file contains API for AccelQvar Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"
#include "drv_spi_master.h"
#include "spi_specifics.h"

Go to the source code of this file.

Data Structures

struct  accelqvar_s
 AccelQvar Click context object. More...
 
struct  accelqvar_cfg_t
 AccelQvar Click configuration object. More...
 
struct  accelqvar_axes_t
 AccelQvar Click axes data. More...
 

Macros

#define ACCELQVAR_REG_PIN_CTRL   0x0C
 AccelQvar description register. More...
 
#define ACCELQVAR_REG_WAKE_UP_DUR_EXT   0x0E
 
#define ACCELQVAR_REG_WHO_AM_I   0x0F
 
#define ACCELQVAR_REG_CTRL1   0x10
 
#define ACCELQVAR_REG_CTRL2   0x11
 
#define ACCELQVAR_REG_CTRL3   0x12
 
#define ACCELQVAR_REG_CTRL4   0x13
 
#define ACCELQVAR_REG_CTRL5   0x14
 
#define ACCELQVAR_REG_FIFO_CTRL   0x15
 
#define ACCELQVAR_REG_FIFO_WTM   0x16
 
#define ACCELQVAR_REG_INTERRUPT_CFG   0x17
 
#define ACCELQVAR_REG_SIXD   0x18
 
#define ACCELQVAR_REG_WAKE_UP_THS   0x1C
 
#define ACCELQVAR_REG_WAKE_UP_DUR   0x1D
 
#define ACCELQVAR_REG_FREE_FALL   0x1E
 
#define ACCELQVAR_REG_MD1_CFG   0x1F
 
#define ACCELQVAR_REG_MD2_CFG   0x20
 
#define ACCELQVAR_REG_WAKE_UP_SRC   0x21
 
#define ACCELQVAR_REG_TAP_SRC   0x22
 
#define ACCELQVAR_REG_SIXD_SRC   0x23
 
#define ACCELQVAR_REG_ALL_INT_SRC   0x24
 
#define ACCELQVAR_REG_STATUS   0x25
 
#define ACCELQVAR_REG_FIFO_STATUS1   0x26
 
#define ACCELQVAR_REG_FIFO_STATUS2   0x27
 
#define ACCELQVAR_REG_OUT_X_L   0x28
 
#define ACCELQVAR_REG_OUT_X_H   0x29
 
#define ACCELQVAR_REG_OUT_Y_L   0x2A
 
#define ACCELQVAR_REG_OUT_Y_H   0x2B
 
#define ACCELQVAR_REG_OUT_Z_L   0x2C
 
#define ACCELQVAR_REG_OUT_Z_H   0x2D
 
#define ACCELQVAR_REG_OUT_T_AH_QVAR_L   0x2E
 
#define ACCELQVAR_REG_OUT_T_AH_QVAR_H   0x2F
 
#define ACCELQVAR_REG_AH_QVAR_CFG   0x31
 
#define ACCELQVAR_REG_SELF_TEST   0x32
 
#define ACCELQVAR_REG_I3C_IF_CTRL   0x33
 
#define ACCELQVAR_REG_EMB_FUNC_STATUS_MAINPAGE   0x34
 
#define ACCELQVAR_REG_FSM_STATUS_MAINPAGE   0x35
 
#define ACCELQVAR_REG_MLC_STATUS_MAINPAGE   0x36
 
#define ACCELQVAR_REG_SLEEP   0x3D
 
#define ACCELQVAR_REG_IF_WAKE_UP   0x3E
 
#define ACCELQVAR_REG_FUNC_CFG_ACCESS   0x3F
 
#define ACCELQVAR_REG_FIFO_DATA_OUT_TAG   0x40
 
#define ACCELQVAR_REG_FIFO_DATA_OUT_X_L   0x41
 
#define ACCELQVAR_REG_FIFO_DATA_OUT_X_H   0x42
 
#define ACCELQVAR_REG_FIFO_DATA_OUT_Y_L   0x43
 
#define ACCELQVAR_REG_FIFO_DATA_OUT_Y_H   0x44
 
#define ACCELQVAR_REG_FIFO_DATA_OUT_Z_L   0x45
 
#define ACCELQVAR_REG_FIFO_DATA_OUT_Z_H   0x46
 
#define ACCELQVAR_REG_FIFO_BATCH_DEC   0x47
 
#define ACCELQVAR_REG_TAP_CFG0   0x6F
 
#define ACCELQVAR_REG_TAP_CFG1   0x70
 
#define ACCELQVAR_REG_TAP_CFG2   0x71
 
#define ACCELQVAR_REG_TAP_CFG3   0x72
 
#define ACCELQVAR_REG_TAP_CFG4   0x73
 
#define ACCELQVAR_REG_TAP_CFG5   0x74
 
#define ACCELQVAR_REG_TAP_CFG6   0x75
 
#define ACCELQVAR_REG_TIMESTAMP0   0x7A
 
#define ACCELQVAR_REG_TIMESTAMP1   0x7B
 
#define ACCELQVAR_REG_TIMESTAMP2   0x7C
 
#define ACCELQVAR_REG_TIMESTAMP3   0x7D
 
#define ACCELQVAR_WHO_AM_I   0x47
 AccelQvar device ID data value. More...
 
#define ACCELQVAR_CTRL1_INT1_ON_RES   0x40
 AccelQvar CTRL1 register description bitmask. More...
 
#define ACCELQVAR_CTRL1_SW_RESET   0x20
 
#define ACCELQVAR_CTRL1_IF_ADD_INC   0x10
 
#define ACCELQVAR_CTRL1_DRDY_PULSED   0x08
 
#define ACCELQVAR_CTRL1_WU_X_EN   0x04
 
#define ACCELQVAR_CTRL1_WU_Y_EN   0x02
 
#define ACCELQVAR_CTRL1_WU_Z_EN   0x01
 
#define ACCELQVAR_CTRL2_INT1_BOOT   0x80
 AccelQvar CTRL2 register description bitmask. More...
 
#define ACCELQVAR_CTRL2_INT1_FIFO_FULL   0x40
 
#define ACCELQVAR_CTRL2_INT1_FIFO_TH   0x20
 
#define ACCELQVAR_CTRL2_INT1_FIFO_OVR   0x10
 
#define ACCELQVAR_CTRL2_INT1_DRDY   0x08
 
#define ACCELQVAR_CTRL3_INT2_BOOT   0x80
 AccelQvar CTRL3 register description bitmask. More...
 
#define ACCELQVAR_CTRL3_INT2_FIFO_FULL   0x40
 
#define ACCELQVAR_CTRL3_INT2_FIFO_TH   0x20
 
#define ACCELQVAR_CTRL3_INT2_FIFO_OVR   0x10
 
#define ACCELQVAR_CTRL3_INT2_DRDY   0x08
 
#define ACCELQVAR_CTRL3_HP_EN   0x04
 
#define ACCELQVAR_CTRL3_ST_SIGN_Y   0x02
 
#define ACCELQVAR_CTRL3_ST_SIGN_X   0x01
 
#define ACCELQVAR_CTRL4_INACT_ODR_25   0xC0
 AccelQvar CTRL4 register description bitmask. More...
 
#define ACCELQVAR_CTRL4_INACT_ODR_3   0x80
 
#define ACCELQVAR_CTRL4_INACT_ODR1_6   0x40
 
#define ACCELQVAR_CTRL4_INACT_ODR1_STAT   0x00
 
#define ACCELQVAR_CTRL4_BDU   0x20
 
#define ACCELQVAR_CTRL4_EMB_FUNC_EN   0x10
 
#define ACCELQVAR_CTRL4_FIFO_EN   0x08
 
#define ACCELQVAR_CTRL4_SOC   0x02
 
#define ACCELQVAR_CTRL4_BOOT   0x01
 
#define ACCELQVAR_CTRL5_ODR_ONE_SHOT_IFACE   0xF0
 AccelQvar CTRL5 register description bitmask. More...
 
#define ACCELQVAR_CTRL5_ODR_ONE_SHOT_INT2   0xE0
 
#define ACCELQVAR_CTRL5_ODR_800_HZ   0xB0
 
#define ACCELQVAR_CTRL5_ODR_400_HZ   0xA0
 
#define ACCELQVAR_CTRL5_ODR_200_HZ   0x90
 
#define ACCELQVAR_CTRL5_ODR_100_HZ   0x80
 
#define ACCELQVAR_CTRL5_ODR_50_HZ   0x70
 
#define ACCELQVAR_CTRL5_ODR_25_HZ   0x60
 
#define ACCELQVAR_CTRL5_ODR_12_5_HZ   0x50
 
#define ACCELQVAR_CTRL5_ODR_6_HZ   0x40
 
#define ACCELQVAR_CTRL5_ODR_ULP_25_HZ   0x30
 
#define ACCELQVAR_CTRL5_ODR_ULP_3_HZ   0x20
 
#define ACCELQVAR_CTRL5_ODR_ULP_1_6_HZ   0x10
 
#define ACCELQVAR_CTRL5_ODR_PWR_DOWN   0x00
 
#define ACCELQVAR_CTRL5_BW_ODR_16   0x0C
 
#define ACCELQVAR_CTRL5_BW_ODR_8   0x08
 
#define ACCELQVAR_CTRL5_BW_ODR_4   0x04
 
#define ACCELQVAR_CTRL5_BW_ODR_2   0x00
 
#define ACCELQVAR_CTRL5_FS_16_G   0x03
 
#define ACCELQVAR_CTRL5_FS_8_G   0x02
 
#define ACCELQVAR_CTRL5_FS_4_G   0x01
 
#define ACCELQVAR_CTRL5_FS_2_G   0x00
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_EN   0x80
 AccelQvar AH_QVAR_CFG register description bitmask. More...
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_NOTCH_EN   0x40
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_NOTCH_CUTOFF   0x00
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_C_ZIN_75_MOHM   0x0C
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_C_ZIN_310_MOHM   0x08
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_C_ZIN_175_MOHM   0x04
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_C_ZIN_520_MOHM   0x00
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_GAIN_4   0x03
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_GAIN_2   0x02
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_GAIN_1   0x01
 
#define ACCELQVAR_AH_QVAR_CFG_AH_QVAR_GAIN_0_5   0x00
 
#define ACCELQVAR_IF_WAKE_UP_SOFT_PD   0x01
 AccelQvar IF_WAKE_UP register description bitmask. More...
 
#define ACCELQVAR_SENSITIVITY_FS_2G   0.061f
 AccelQvar full scale sensitivity data value. More...
 
#define ACCELQVAR_SENSITIVITY_FS_4G   0.122f
 
#define ACCELQVAR_SENSITIVITY_FS_8G   0.244f
 
#define ACCELQVAR_SENSITIVITY_FS_16G   0.488f
 
#define ACCELQVAR_QVAR_DIVIDER   74.4f
 AccelQvar calculation data value. More...
 
#define ACCELQVAR_TEMP_DIVIDER   355.5f
 
#define ACCELQVAR_TEMP_ZERO_VAL   25.0f
 
#define ACCELQVAR_DEVICE_ADDRESS_GND   0x18
 AccelQvar device address setting. More...
 
#define ACCELQVAR_DEVICE_ADDRESS_VCC   0x19
 
#define ACCELQVAR_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection. More...
 
#define ACCELQVAR_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 
#define ACCELQVAR_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping. More...
 

Typedefs

typedef err_t(* accelqvar_master_io_t) (struct accelqvar_s *, uint8_t, uint8_t *, uint8_t)
 
typedef struct accelqvar_s accelqvar_t
 AccelQvar Click context object. More...
 

Enumerations

enum  accelqvar_drv_t { ACCELQVAR_DRV_SEL_SPI, ACCELQVAR_DRV_SEL_I2C }
 AccelQvar Click driver selector. More...
 
enum  accelqvar_return_value_t { ACCELQVAR_OK = 0, ACCELQVAR_ERROR = -1 }
 AccelQvar Click return value data. More...
 

Functions

void accelqvar_cfg_setup (accelqvar_cfg_t *cfg)
 AccelQvar configuration object setup function. More...
 
void accelqvar_drv_interface_sel (accelqvar_cfg_t *cfg, accelqvar_drv_t drv_sel)
 AccelQvar driver interface setup function. More...
 
err_t accelqvar_init (accelqvar_t *ctx, accelqvar_cfg_t *cfg)
 AccelQvar initialization function. More...
 
err_t accelqvar_default_cfg (accelqvar_t *ctx)
 AccelQvar default configuration function. More...
 
err_t accelqvar_generic_write (accelqvar_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 AccelQvar data writing function. More...
 
err_t accelqvar_generic_read (accelqvar_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 AccelQvar data reading function. More...
 
err_t accelqvar_get_device_id (accelqvar_t *ctx, uint8_t *device_id)
 AccelQvar get device ID function. More...
 
err_t accelqvar_sw_reset (accelqvar_t *ctx)
 AccelQvar software reset function. More...
 
err_t accelqvar_set_odr (accelqvar_t *ctx, uint8_t odr)
 AccelQvar ODR selection function. More...
 
err_t accelqvar_set_fsr (accelqvar_t *ctx, uint8_t fsr)
 AccelQvar set full scale function. More...
 
err_t accelqvar_get_axes_data (accelqvar_t *ctx, accelqvar_axes_t *axes)
 AccelQvar get the accel sensor axes function. More...
 
err_t accelqvar_spi_wake_up (accelqvar_t *ctx)
 AccelQvar SPI wake up function. More...
 
err_t accelqvar_en_qvar (accelqvar_t *ctx)
 AccelQvar enable QVAR function. More...
 
err_t accelqvar_get_qvar_data (accelqvar_t *ctx, float *qvar)
 AccelQvar get QVAR data function. More...
 
uint8_t accelqvar_get_int1 (accelqvar_t *ctx)
 AccelQvar get interrupt 1 function. More...
 
uint8_t accelqvar_get_int2 (accelqvar_t *ctx)
 AccelQvar get interrupt 2 function. More...
 

Detailed Description

This file contains API for AccelQvar Click Driver.

Typedef Documentation

◆ accelqvar_master_io_t

typedef err_t( * accelqvar_master_io_t) (struct accelqvar_s *, uint8_t, uint8_t *, uint8_t)

Driver serial interface.

◆ accelqvar_t

typedef struct accelqvar_s accelqvar_t

AccelQvar Click context object.

Context object definition of AccelQvar Click driver.

Enumeration Type Documentation

◆ accelqvar_drv_t

AccelQvar Click driver selector.

Selects target driver interface of AccelQvar Click driver.

Enumerator
ACCELQVAR_DRV_SEL_SPI 

SPI driver descriptor.

ACCELQVAR_DRV_SEL_I2C 

I2C driver descriptor.

◆ accelqvar_return_value_t

AccelQvar Click return value data.

Predefined enum values for driver return values.

Enumerator
ACCELQVAR_OK 
ACCELQVAR_ERROR