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

This file contains API for Accel 31 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  accel31_s
 Accel 31 Click context object. More...
 
struct  accel31_cfg_t
 Accel 31 Click configuration object. More...
 
struct  accel31_axes_t
 Accel 31 Click axes data structure. More...
 
struct  accel31_data_t
 Accel 31 Click data structure. More...
 

Macros

#define ACCEL31_REG_CHIP_ID   0x00
 Accel 31 register map. More...
 
#define ACCEL31_REG_HEALTH_STATUS   0x02
 
#define ACCEL31_REG_CMD_SUSPEND   0x04
 
#define ACCEL31_REG_CONFIG_STATUS   0x10
 
#define ACCEL31_REG_SENSOR_STATUS   0x11
 
#define ACCEL31_REG_INT_STATUS_INT1_0   0x12
 
#define ACCEL31_REG_INT_STATUS_INT1_1   0x13
 
#define ACCEL31_REG_INT_STATUS_INT2_0   0x14
 
#define ACCEL31_REG_INT_STATUS_INT2_1   0x15
 
#define ACCEL31_REG_INT_STATUS_I3C_0   0x16
 
#define ACCEL31_REG_INT_STATUS_I3C_1   0x17
 
#define ACCEL31_REG_ACC_DATA_0   0x18
 
#define ACCEL31_REG_ACC_DATA_1   0x19
 
#define ACCEL31_REG_ACC_DATA_2   0x1A
 
#define ACCEL31_REG_ACC_DATA_3   0x1B
 
#define ACCEL31_REG_ACC_DATA_4   0x1C
 
#define ACCEL31_REG_ACC_DATA_5   0x1D
 
#define ACCEL31_REG_TEMP_DATA   0x1E
 
#define ACCEL31_REG_SENSOR_TIME_0   0x1F
 
#define ACCEL31_REG_SENSOR_TIME_1   0x20
 
#define ACCEL31_REG_SENSOR_TIME_2   0x21
 
#define ACCEL31_REG_FIFO_LEVEL_0   0x22
 
#define ACCEL31_REG_FIFO_LEVEL_1   0x23
 
#define ACCEL31_REG_FIFO_DATA_OUT   0x24
 
#define ACCEL31_REG_AUX_DATA_0   0x2B
 
#define ACCEL31_REG_AUX_DATA_1   0x2C
 
#define ACCEL31_REG_ACC_CONF_0   0x30
 
#define ACCEL31_REG_ACC_CONF_1   0x31
 
#define ACCEL31_REG_ACC_CONF_2   0x32
 
#define ACCEL31_REG_TEMP_CONF   0x33
 
#define ACCEL31_REG_INT1_CONF   0x34
 
#define ACCEL31_REG_INT2_CONF   0x35
 
#define ACCEL31_REG_INT_MAP_0   0x36
 
#define ACCEL31_REG_INT_MAP_1   0x37
 
#define ACCEL31_REG_INT_MAP_2   0x38
 
#define ACCEL31_REG_INT_MAP_3   0x39
 
#define ACCEL31_REG_IF_CONF_0   0x3A
 
#define ACCEL31_REG_IF_CONF_1   0x3B
 
#define ACCEL31_REG_FIFO_CTRL   0x40
 
#define ACCEL31_REG_FIFO_CONF_0   0x41
 
#define ACCEL31_REG_FIFO_CONF_1   0x42
 
#define ACCEL31_REG_FIFO_WM_0   0x43
 
#define ACCEL31_REG_FIFO_WM_1   0x44
 
#define ACCEL31_REG_FEAT_ENG_CONF   0x50
 
#define ACCEL31_REG_FEAT_ENG_STATUS   0x51
 
#define ACCEL31_REG_FEAT_ENG_GP_FLAGS   0x52
 
#define ACCEL31_REG_FEAT_ENG_GPR_CONF   0x53
 
#define ACCEL31_REG_FEAT_ENG_GPR_CTRL   0x54
 
#define ACCEL31_REG_FEAT_ENG_GPR_0   0x55
 
#define ACCEL31_REG_FEAT_ENG_GPR_1   0x56
 
#define ACCEL31_REG_FEAT_ENG_GPR_2   0x57
 
#define ACCEL31_REG_FEATURE_DATA_ADDR   0x5E
 
#define ACCEL31_REG_FEATURE_DATA_TX   0x5F
 
#define ACCEL31_REG_ACC_OFFSET_0   0x70
 
#define ACCEL31_REG_ACC_OFFSET_1   0x71
 
#define ACCEL31_REG_ACC_OFFSET_2   0x72
 
#define ACCEL31_REG_ACC_OFFSET_3   0x73
 
#define ACCEL31_REG_ACC_OFFSET_4   0x74
 
#define ACCEL31_REG_ACC_OFFSET_5   0x75
 
#define ACCEL31_REG_ACC_SELF_TEST   0x76
 
#define ACCEL31_REG_CMD   0x7E
 
#define ACCEL31_CHIP_ID   0xC4
 Accel 31 CHIP_ID register setting. More...
 
#define ACCEL31_CMD_SUSPEND_MODE_NORMAL   0x00
 Accel 31 CMD_SUSPEND register setting. More...
 
#define ACCEL31_CMD_SUSPEND_MODE_SUSPEND   0x01
 
#define ACCEL31_CMD_SUSPEND_MODE_MASK   0x01
 
#define ACCEL31_SENSOR_STATUS_SENSOR_RDY   0x04
 Accel 31 SENSOR_STATUS register setting. More...
 
#define ACCEL31_SENSOR_STATUS_TEMP_RDY   0x02
 
#define ACCEL31_SENSOR_STATUS_ACC_RDY   0x01
 
#define ACCEL31_ACC_CONF_0_SENSOR_DISABLE   0x00
 Accel 31 ACC_CONF_0 register setting. More...
 
#define ACCEL31_ACC_CONF_0_SENSOR_ENABLE   0x0F
 
#define ACCEL31_ACC_CONF_0_SENSOR_WRONG_CFG   0x0E
 
#define ACCEL31_ACC_CONF_0_SENSOR_MASK   0x0F
 
#define ACCEL31_ACC_CONF_1_POWER_MODE_MASK   0x80
 Accel 31 ACC_CONF_1 register setting. More...
 
#define ACCEL31_ACC_CONF_1_ACC_BWP_MASK   0x70
 
#define ACCEL31_ACC_CONF_1_ACC_ODR_MASK   0x0F
 
#define ACCEL31_ACC_CONF_2_ACC_DRDY_MASK   0x80
 Accel 31 ACC_CONF_2 register setting. More...
 
#define ACCEL31_ACC_CONF_2_NOISE_MODE_MASK   0x10
 
#define ACCEL31_ACC_CONF_2_ACC_IIR_MASK   0x0C
 
#define ACCEL31_ACC_CONF_2_ACC_RANGE_MASK   0x03
 
#define ACCEL31_TEMP_CONF_EXT_SEL_MASK   0x10
 Accel 31 TEMP_CONF register setting. More...
 
#define ACCEL31_TEMP_CONF_MEAS_SRC_MASK   0x08
 
#define ACCEL31_TEMP_CONF_RATE_MASK   0x07
 
#define ACCEL31_INT2_CONF_LVL_MASK   0x08
 Accel 31 INT2_CONF register setting. More...
 
#define ACCEL31_INT2_CONF_OD_MASK   0x04
 
#define ACCEL31_INT2_CONF_MODE_OUT_DIS   0x00
 
#define ACCEL31_INT2_CONF_MODE_LATCH   0x01
 
#define ACCEL31_INT2_CONF_MODE_PULSE_SHORT   0x02
 
#define ACCEL31_INT2_CONF_MODE_PULSE_LONG   0x03
 
#define ACCEL31_INT2_CONF_MODE_MASK   0x03
 
#define ACCEL31_CMD_SOFT_RESET   0xB6
 Accel 31 CMD register setting. More...
 
#define ACCEL31_ACCEL_ODR_1_5625_HZ   0
 Accel 31 accel output data rate setting. More...
 
#define ACCEL31_ACCEL_ODR_3_125_HZ   1
 
#define ACCEL31_ACCEL_ODR_6_25_HZ   2
 
#define ACCEL31_ACCEL_ODR_12_5_HZ   3
 
#define ACCEL31_ACCEL_ODR_25_HZ   4
 
#define ACCEL31_ACCEL_ODR_50_HZ   5
 
#define ACCEL31_ACCEL_ODR_100_HZ   6
 
#define ACCEL31_ACCEL_ODR_200_HZ   7
 
#define ACCEL31_ACCEL_ODR_400_HZ   8
 
#define ACCEL31_ACCEL_ODR_800_HZ   9
 
#define ACCEL31_ACCEL_ODR_1600_HZ   10
 
#define ACCEL31_ACCEL_ODR_3200_HZ   11
 
#define ACCEL31_ACCEL_ODR_6400_HZ   12
 
#define ACCEL31_ACCEL_FS_2G   0
 Accel 31 accel full scale setting. More...
 
#define ACCEL31_ACCEL_FS_4G   1
 
#define ACCEL31_ACCEL_FS_8G   2
 
#define ACCEL31_ACCEL_FS_16G   3
 
#define ACCEL31_TEMP_ODR_1_5625_HZ   0
 Accel 31 temperature output data rate setting. More...
 
#define ACCEL31_TEMP_ODR_3_125_HZ   1
 
#define ACCEL31_TEMP_ODR_6_25_HZ   2
 
#define ACCEL31_TEMP_ODR_12_5_HZ   3
 
#define ACCEL31_TEMP_ODR_25_HZ   4
 
#define ACCEL31_TEMP_ODR_50_HZ   5
 
#define ACCEL31_TEMP_ODR_100_HZ   6
 
#define ACCEL31_TEMP_ODR_200_HZ   7
 
#define ACCEL31_ACCEL_SENS_G_PER_LSB   0.000061
 Accel 31 sensitivity setting. More...
 
#define ACCEL31_TEMP_OFFSET   23
 
#define ACCEL31_DEVICE_ADDRESS   0x18
 Accel 31 device address setting. More...
 
#define ACCEL31_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection. More...
 
#define ACCEL31_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 
#define ACCEL31_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping. More...
 

Typedefs

typedef err_t(* accel31_master_io_t) (struct accel31_s *, uint8_t, uint8_t *, uint8_t)
 
typedef struct accel31_s accel31_t
 Accel 31 Click context object. More...
 

Enumerations

enum  accel31_drv_t { ACCEL31_DRV_SEL_SPI, ACCEL31_DRV_SEL_I2C }
 Accel 31 Click driver selector. More...
 
enum  accel31_return_value_t { ACCEL31_OK = 0, ACCEL31_ERROR = -1, ACCEL31_DATA_NOT_READY = -2 }
 Accel 31 Click return value data. More...
 

Functions

void accel31_cfg_setup (accel31_cfg_t *cfg)
 Accel 31 configuration object setup function. More...
 
void accel31_drv_interface_sel (accel31_cfg_t *cfg, accel31_drv_t drv_sel)
 Accel 31 driver interface setup function. More...
 
err_t accel31_init (accel31_t *ctx, accel31_cfg_t *cfg)
 Accel 31 initialization function. More...
 
err_t accel31_default_cfg (accel31_t *ctx)
 Accel 31 default configuration function. More...
 
err_t accel31_write_reg (accel31_t *ctx, uint8_t reg, uint8_t data_in)
 Accel 31 write reg function. More...
 
err_t accel31_write_regs (accel31_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Accel 31 write regs function. More...
 
err_t accel31_read_reg (accel31_t *ctx, uint8_t reg, uint8_t *data_out)
 Accel 31 read reg function. More...
 
err_t accel31_read_regs (accel31_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Accel 31 read regs function. More...
 
uint8_t accel31_get_int1_pin (accel31_t *ctx)
 Accel 31 get int1 pin function. More...
 
uint8_t accel31_get_int2_pin (accel31_t *ctx)
 Accel 31 get int2 pin function. More...
 
err_t accel31_check_communication (accel31_t *ctx)
 Accel 31 check communication function. More...
 
err_t accel31_sw_reset (accel31_t *ctx)
 Accel 31 sw reset function. More...
 
err_t accel31_set_accel_odr (accel31_t *ctx, uint8_t odr)
 Accel 31 set accel odr function. More...
 
err_t accel31_set_accel_fsr (accel31_t *ctx, uint8_t fsr)
 Accel 31 set accel fsr function. More...
 
err_t accel31_set_temp_odr (accel31_t *ctx, uint8_t odr)
 Accel 31 set temp odr function. More...
 
err_t accel31_get_accel_drdy (accel31_t *ctx, uint8_t *drdy)
 Accel 31 get accel drdy function. More...
 
err_t accel31_get_temp_drdy (accel31_t *ctx, uint8_t *drdy)
 Accel 31 get temp drdy function. More...
 
err_t accel31_get_accel (accel31_t *ctx, accel31_axes_t *accel)
 Accel 31 get accel function. More...
 
err_t accel31_get_temp (accel31_t *ctx, int8_t *temp)
 Accel 31 get temp function. More...
 
err_t accel31_get_data (accel31_t *ctx, accel31_data_t *data_out)
 Accel 31 get data function. More...
 

Detailed Description

This file contains API for Accel 31 Click Driver.

Typedef Documentation

◆ accel31_master_io_t

typedef err_t( * accel31_master_io_t) (struct accel31_s *, uint8_t, uint8_t *, uint8_t)

Driver serial interface.

◆ accel31_t

typedef struct accel31_s accel31_t

Accel 31 Click context object.

Context object definition of Accel 31 Click driver.

Enumeration Type Documentation

◆ accel31_drv_t

Accel 31 Click driver selector.

Selects target driver interface of Accel 31 Click driver.

Enumerator
ACCEL31_DRV_SEL_SPI 

SPI driver descriptor.

ACCEL31_DRV_SEL_I2C 

I2C driver descriptor.

◆ accel31_return_value_t

Accel 31 Click return value data.

Predefined enum values for driver return values.

Enumerator
ACCEL31_OK 
ACCEL31_ERROR 
ACCEL31_DATA_NOT_READY