accel28 2.1.0.0
accel28.h File Reference

This file contains API for Accel 28 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  accel28_s
 Accel 28 Click context object. More...
 
struct  accel28_cfg_t
 Accel 28 Click configuration object. More...
 
struct  accel28_data_t
 Accel 28 Click data object. More...
 

Macros

#define ACCEL28_REG_TEMP_L   0x0B
 Accel 28 description register.
 
#define ACCEL28_REG_TEMP_H   0x0C
 
#define ACCEL28_REG_WHO_AM_I   0x0F
 
#define ACCEL28_REG_ACT_THS   0x1E
 
#define ACCEL28_REG_ACT_DUS   0x1F
 
#define ACCEL28_REG_CTRL1   0x20
 
#define ACCEL28_REG_CTRL2   0x21
 
#define ACCEL28_REG_CTRL3   0x22
 
#define ACCEL28_REG_CTRL4   0x23
 
#define ACCEL28_REG_CTRL5   0x24
 
#define ACCEL28_REG_CTRL6   0x25
 
#define ACCEL28_REG_CTRL7   0x26
 
#define ACCEL28_REG_STATUS   0x27
 
#define ACCEL28_REG_OUT_X_L   0x28
 
#define ACCEL28_REG_OUT_X_H   0x29
 
#define ACCEL28_REG_OUT_Y_L   0x2A
 
#define ACCEL28_REG_OUT_Y_H   0x2B
 
#define ACCEL28_REG_OUT_Z_L   0x2C
 
#define ACCEL28_REG_OUT_Z_H   0x2D
 
#define ACCEL28_REG_FIFO_CTRL   0x2E
 
#define ACCEL28_REG_FIFO_SRC   0x2F
 
#define ACCEL28_REG_IG_CFG1   0x30
 
#define ACCEL28_REG_IG_SRC1   0x31
 
#define ACCEL28_REG_IG_THS_X1   0x32
 
#define ACCEL28_REG_IG_THS_Y1   0x33
 
#define ACCEL28_REG_IG_THS_Z1   0x34
 
#define ACCEL28_REG_IG_DUR1   0x35
 
#define ACCEL28_REG_IG_CFG2   0x36
 
#define ACCEL28_REG_IG_SRC2   0x37
 
#define ACCEL28_REG_IG_THS2   0x38
 
#define ACCEL28_REG_IG_DUR2   0x39
 
#define ACCEL28_REG_XL_REFERENCE   0x3A
 
#define ACCEL28_REG_XH_REFERENCE   0x3B
 
#define ACCEL28_REG_YL_REFERENCE   0x3C
 
#define ACCEL28_REG_YH_REFERENCE   0x3D
 
#define ACCEL28_REG_ZL_REFERENCE   0x3E
 
#define ACCEL28_REG_ZH_REFERENCE   0x3F
 
#define ACCEL28_WHO_AM_I_VALUE   0x41
 Accel 28 description setting.
 
#define ACCEL28_CTRL1_X_AXIS_ENABLE   0x01
 Accel 28 CTRL1 register setting.
 
#define ACCEL28_CTRL1_Y_AXIS_ENABLE   0x02
 
#define ACCEL28_CTRL1_Z_AXIS_ENABLE   0x04
 
#define ACCEL28_CTRL1_BLOCK_DATA_UPATE_EN   0x08
 
#define ACCEL28_CTRL1_ODR_POWER_DOWN   0x00
 
#define ACCEL28_CTRL1_ODR_10HZ   0x10
 
#define ACCEL28_CTRL1_ODR_50HZ   0x20
 
#define ACCEL28_CTRL1_ODR_100HZ   0x30
 
#define ACCEL28_CTRL1_ODR_200HZ   0x40
 
#define ACCEL28_CTRL1_ODR_400HZ   0x50
 
#define ACCEL28_CTRL1_ODR_800HZ   0x60
 
#define ACCEL28_CTRL1_ODR_NA   0x70
 
#define ACCEL28_CTRL1_HR_MODE   0x80
 
#define ACCEL28_CTRL2_HP_ENABLE_INT2   0x01
 Accel 28 CTRL2 register setting.
 
#define ACCEL28_CTRL2_HP_ENABLE_INT1   0x02
 
#define ACCEL28_CTRL2_FDS_ENABLE   0x04
 
#define ACCEL28_CTRL2_HPM_NORMAL_MODE   0x00
 
#define ACCEL28_CTRL2_HPM_REF_SIGNAL_FILTERING   0x08
 
#define ACCEL28_CTRL2_HPM_FREQ_DEV_50   0x00
 
#define ACCEL28_CTRL2_HPM_FREQ_DEV_100   0x20
 
#define ACCEL28_CTRL2_HPM_FREQ_DEV_9   0x40
 
#define ACCEL28_CTRL2_HPM_FREQ_DEV_400   0x60
 
#define ACCEL28_CTRL3_INT1_DRDY_EN   0x01
 Accel 28 CTRL3 register setting.
 
#define ACCEL28_CTRL3_INT1_FTH   0x02
 
#define ACCEL28_CTRL3_INT1_OVR   0x04
 
#define ACCEL28_CTRL3_INT1_IG1   0x08
 
#define ACCEL28_CTRL3_INT1_IG2   0x10
 
#define ACCEL28_CTRL3_INT1_INACT_EN   0x20
 
#define ACCEL28_CTRL3_STOP_FTH   0x40
 
#define ACCEL28_CTRL3_FIFO_EN   0x80
 
#define ACCEL28_CTRL4_SPI_MODE_3_WIRE   0x01
 Accel 28 CTRL4 register setting.
 
#define ACCEL28_CTRL4_SPI_MODE_4_WIRE   0x00
 
#define ACCEL28_CTRL4_I2C_DISABLED   0x02
 
#define ACCEL28_CTRL4_I2C_ENABLED   0x00
 
#define ACCEL28_CTRL4_ADD_INC_ENABLED   0x04
 
#define ACCEL28_CTRL4_BW_SCALE_ODR   0x00
 
#define ACCEL28_CTRL4_BW_SCALE_BW   0x08
 
#define ACCEL28_CTRL4_FS_2G   0x00
 
#define ACCEL28_CTRL4_FS_4G   0x20
 
#define ACCEL28_CTRL4_FS_8G   0x30
 
#define ACCEL28_CTRL4_FS_MASK   0x30
 
#define ACCEL28_CTRL4_BW_400HZ   0x00
 
#define ACCEL28_CTRL4_BW_200HZ   0x40
 
#define ACCEL28_CTRL4_BW_100HZ   0x80
 
#define ACCEL28_CTRL4_BW_50HZ   0xC0
 
#define ACCEL28_CTRL5_INT_PUSH_PULL   0x00
 Accel 28 CTRL5 register setting.
 
#define ACCEL28_CTRL5_INT_OPEN_DRAIN   0x01
 
#define ACCEL28_CTRL5_INT_ACTIVE_HIGH   0x00
 
#define ACCEL28_CTRL5_INT_ACTIVE_LOW   0x02
 
#define ACCEL28_CTRL5_NORMAL_MODE   0x00
 
#define ACCEL28_CTRL5_POSITIVE_SELF_TEST   0x04
 
#define ACCEL28_CTRL5_NEGATIVE_SELF_TEST   0x08
 
#define ACCEL28_CTRL5_DEC_UDATE_OFF   0x00
 
#define ACCEL28_CTRL5_DEC_UDATE_2_SAMPLES   0x10
 
#define ACCEL28_CTRL5_DEC_UDATE_4_SAMPLES   0x20
 
#define ACCEL28_CTRL5_DEC_UDATE_8_SAMPLES   0x30
 
#define ACCEL28_CTRL5_SW_RESET   0x40
 
#define ACCEL28_CTRL5_DEBUG_MODE   0x80
 
#define ACCEL28_CTRL6_INT2_DRDY   0x01
 Accel 28 CTRL6 register setting.
 
#define ACCEL28_CTRL6_INT2_FTH   0x02
 
#define ACCEL28_CTRL6_INT2_EMPTY   0x04
 
#define ACCEL28_CTRL6_INT2_IG1   0x08
 
#define ACCEL28_CTRL6_INT2_IG2   0x10
 
#define ACCEL28_CTRL6_INT2_BOOT   0x20
 
#define ACCEL28_CTRL6_BOOT   0x80
 
#define ACCEL28_STATUS_X_DATA_AVL   0x01
 Accel 28 STATUS register setting.
 
#define ACCEL28_STATUS_Y_DATA_AVL   0x02
 
#define ACCEL28_STATUS_Z_DATA_AVL   0x04
 
#define ACCEL28_STATUS_ZYX_DATA_AVL   0x08
 
#define ACCEL28_STATUS_X_DATA_OVERRUN   0x10
 
#define ACCEL28_STATUS_Y_DATA_OVERRUN   0x20
 
#define ACCEL28_STATUS_Z_DATA_OVERRUN   0x40
 
#define ACCEL28_STATUS_ZYX_DATA_OVERRUN   0x80
 
#define ACCEL28_2G_DATA_CONV   0.061f
 Accel 28 conversion multiplier setting.
 
#define ACCEL28_4G_DATA_CONV   0.122f
 
#define ACCEL28_8G_DATA_CONV   0.244f
 
#define ACCEL28_PIN_STATE_HIGH   0x01
 Accel 28 pin state setting.
 
#define ACCEL28_PIN_STATE_LOW   0x00
 
#define ACCEL28_DEVICE_ADDRESS_0   0x1E
 Accel 28 device address setting.
 
#define ACCEL28_DEVICE_ADDRESS_1   0x1D
 
#define ACCEL28_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
 
#define ACCEL28_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 
#define ACCEL28_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.
 

Typedefs

typedef err_t(* accel28_master_io_t) (struct accel28_s *, uint8_t, uint8_t *, uint8_t)
 Accel 28 Click driver interface.
 
typedef struct accel28_s accel28_t
 Accel 28 Click context object.
 

Enumerations

enum  accel28_drv_t { ACCEL28_DRV_SEL_SPI , ACCEL28_DRV_SEL_I2C }
 Accel 28 Click driver selector. More...
 
enum  accel28_return_value_t { ACCEL28_OK = 0 , ACCEL28_ERROR = -1 }
 Accel 28 Click return value data. More...
 

Functions

void accel28_cfg_setup (accel28_cfg_t *cfg)
 Accel 28 configuration object setup function.
 
void accel28_drv_interface_selection (accel28_cfg_t *cfg, accel28_drv_t drv_sel)
 Accel 28 driver interface setup function.
 
err_t accel28_init (accel28_t *ctx, accel28_cfg_t *cfg)
 Accel 28 initialization function.
 
err_t accel28_default_cfg (accel28_t *ctx)
 Accel 28 default configuration function.
 
err_t accel28_generic_write (accel28_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Accel 28 data writing function.
 
err_t accel28_generic_read (accel28_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Accel 28 data reading function.
 
uint8_t accel28_get_int_state (accel28_t *ctx)
 Accel 28 interrupt reading function.
 
err_t accel28_get_raw_data (accel28_t *ctx, accel28_data_t *data_out)
 Accel 28 raw data reading function.
 
err_t accel28_get_data (accel28_t *ctx, accel28_data_t *data_out)
 Accel 28 data reading function.
 
err_t accel28_write_reg (accel28_t *ctx, uint8_t reg, uint8_t data_in)
 Accel 28 register data writing function.
 
err_t accel28_read_reg (accel28_t *ctx, uint8_t reg, uint8_t *data_out)
 Accel 28 register data reading function.
 
err_t accel28_sw_reset (accel28_t *ctx)
 Accel 28 SW reset function.
 

Detailed Description

This file contains API for Accel 28 Click Driver.

Typedef Documentation

◆ accel28_master_io_t

typedef err_t(* accel28_master_io_t) (struct accel28_s *, uint8_t, uint8_t *, uint8_t)

Accel 28 Click driver interface.

Definition of driver interface of Accel 28 Click driver. Driver serial interface.

◆ accel28_t

typedef struct accel28_s accel28_t

Accel 28 Click context object.

Context object definition of Accel 28 Click driver.

Enumeration Type Documentation

◆ accel28_drv_t

Accel 28 Click driver selector.

Selects target driver interface of Accel 28 Click driver.

Enumerator
ACCEL28_DRV_SEL_SPI 

SPI driver descriptor.

ACCEL28_DRV_SEL_I2C 

I2C driver descriptor.

◆ accel28_return_value_t

Accel 28 Click return value data.

Predefined enum values for driver return values.

Enumerator
ACCEL28_OK 
ACCEL28_ERROR