accel20 2.0.0.0
accel20.h File Reference

This file contains API for Accel 20 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  accel20_s
 Accel 20 Click context object. More...
 
struct  accel20_cfg_t
 Accel 20 Click configuration object. More...
 
struct  accel20_axis_t
 Accel 20 axis data structure. More...
 

Macros

#define ACCEL20_REG_MAN_ID   0x00
 Accel 20 description register.
 
#define ACCEL20_REG_PART_ID   0x01
 
#define ACCEL20_REG_XADP_L   0x02
 
#define ACCEL20_REG_XADP_H   0x03
 
#define ACCEL20_REG_YADP_L   0x04
 
#define ACCEL20_REG_YADP_H   0x05
 
#define ACCEL20_REG_ZADP_L   0x06
 
#define ACCEL20_REG_ZADP_H   0x07
 
#define ACCEL20_REG_XOUT_L   0x08
 
#define ACCEL20_REG_XOUT_H   0x09
 
#define ACCEL20_REG_YOUT_L   0x0A
 
#define ACCEL20_REG_YOUT_H   0x0B
 
#define ACCEL20_REG_ZOUT_L   0x0C
 
#define ACCEL20_REG_ZOUT_H   0x0D
 
#define ACCEL20_REG_COTR   0x12
 
#define ACCEL20_REG_WHO_AM_I   0x13
 
#define ACCEL20_REG_TSCP   0x14
 
#define ACCEL20_REG_TSPP   0x15
 
#define ACCEL20_REG_INS1   0x16
 
#define ACCEL20_REG_INS2   0x17
 
#define ACCEL20_REG_INS3   0x18
 
#define ACCEL20_REG_STATUS_REG   0x19
 
#define ACCEL20_REG_INT_REL   0x1A
 
#define ACCEL20_REG_CNTL1   0x1B
 
#define ACCEL20_REG_CNTL2   0x1C
 
#define ACCEL20_REG_CNTL3   0x1D
 
#define ACCEL20_REG_CNTL4   0x1E
 
#define ACCEL20_REG_CNTL5   0x1F
 
#define ACCEL20_REG_CNTL6   0x20
 
#define ACCEL20_REG_ODCNTL   0x21
 
#define ACCEL20_REG_INC1   0x22
 
#define ACCEL20_REG_INC2   0x23
 
#define ACCEL20_REG_INC3   0x24
 
#define ACCEL20_REG_INC4   0x25
 
#define ACCEL20_REG_INC5   0x26
 
#define ACCEL20_REG_INC6   0x27
 
#define ACCEL20_REG_TILT_TIMER   0x29
 
#define ACCEL20_REG_TDTRC   0x2A
 
#define ACCEL20_REG_TDTC   0x2B
 
#define ACCEL20_REG_TTH   0x2C
 
#define ACCEL20_REG_TTL   0x2D
 
#define ACCEL20_REG_FTD   0x2E
 
#define ACCEL20_REG_STD   0x2F
 
#define ACCEL20_REG_TLT   0x30
 
#define ACCEL20_REG_TWS   0x31
 
#define ACCEL20_REG_FFTH   0x32
 
#define ACCEL20_REG_FFC   0x33
 
#define ACCEL20_REG_FFCNTL   0x34
 
#define ACCEL20_REG_TILT_ANGLE_LL   0x37
 
#define ACCEL20_REG_TILT_ANGLE_HL   0x38
 
#define ACCEL20_REG_HYST_SET   0x39
 
#define ACCEL20_REG_LP_CNTL1   0x3A
 
#define ACCEL20_REG_LP_CNTL2   0x3B
 
#define ACCEL20_REG_WUFTH   0x49
 
#define ACCEL20_REG_BTSWUFTH   0x4A
 
#define ACCEL20_REG_BTSTH   0x4B
 
#define ACCEL20_REG_BTSC   0x4C
 
#define ACCEL20_REG_WUFC   0x4D
 
#define ACCEL20_REG_SELF_TEST   0x5D
 
#define ACCEL20_REG_BUF_CNTL1   0x5E
 
#define ACCEL20_REG_BUF_CNTL2   0x5F
 
#define ACCEL20_REG_BUF_STATUS_1   0x60
 
#define ACCEL20_REG_BUF_STATUS_2   0x61
 
#define ACCEL20_REG_BUF_CLEAR   0x62
 
#define ACCEL20_REG_BUF_READ   0x63
 
#define ACCEL20_REG_ADP_CNTL1   0x64
 
#define ACCEL20_REG_ADP_CNTL2   0x65
 
#define ACCEL20_REG_ADP_CNTL3   0x66
 
#define ACCEL20_REG_ADP_CNTL4   0x67
 
#define ACCEL20_REG_ADP_CNTL5   0x68
 
#define ACCEL20_REG_ADP_CNTL6   0x69
 
#define ACCEL20_REG_ADP_CNTL7   0x6A
 
#define ACCEL20_REG_ADP_CNTL8   0x6B
 
#define ACCEL20_REG_ADP_CNTL9   0x6C
 
#define ACCEL20_REG_ADP_CNTL10   0x6D
 
#define ACCEL20_REG_ADP_CNTL11   0x6E
 
#define ACCEL20_REG_ADP_CNTL12   0x6F
 
#define ACCEL20_REG_ADP_CNTL13   0x70
 
#define ACCEL20_REG_ADP_CNTL14   0x71
 
#define ACCEL20_REG_ADP_CNTL15   0x72
 
#define ACCEL20_REG_ADP_CNTL16   0x73
 
#define ACCEL20_REG_ADP_CNTL17   0x74
 
#define ACCEL20_REG_ADP_CNTL18   0x75
 
#define ACCEL20_REG_ADP_CNTL19   0x76
 
#define ACCEL20_REG_INTERNAL   0x7F
 
#define ACCEL20_INTERNAL_SOFT_RESET   0x00
 Accel 20 description setting.
 
#define ACCEL20_SOFT_RESET_PWR_CYC   0x00
 
#define ACCEL20_SOFT_RESET_REBOOT   0x80
 
#define ACCEL20_CNTL1_RANGE_8g   0x00
 
#define ACCEL20_CNTL1_RANGE_16g   0x01
 
#define ACCEL20_CNTL1_RANGE_32g   0x02
 
#define ACCEL20_CNTL1_RANGE_64g   0x03
 
#define ACCEL20_RANGE_BIT_MASK   0xE7
 
#define ACCEL20_ODCNTL_ODR_0_781_Hz   0x00
 
#define ACCEL20_ODCNTL_ODR_1_563_Hz   0x01
 
#define ACCEL20_ODCNTL_ODR_3_125_Hz   0x02
 
#define ACCEL20_ODCNTL_ODR_6_25_Hz   0x03
 
#define ACCEL20_ODCNTL_ODR_12_5_Hz   0x04
 
#define ACCEL20_ODCNTL_ODR_25_Hz   0x05
 
#define ACCEL20_ODCNTL_ODR_50_Hz   0x06
 
#define ACCEL20_ODCNTL_ODR_100_Hz   0x07
 
#define ACCEL20_ODCNTL_ODR_200_Hz   0x08
 
#define ACCEL20_ODCNTL_ODR_400_Hz   0x09
 
#define ACCEL20_ODCNTL_ODR_800_Hz   0x0A
 
#define ACCEL20_ODCNTL_ODR_1600_Hz   0x0B
 
#define ACCEL20_ODCNTL_ODR_3200_Hz   0x0C
 
#define ACCEL20_ODCNTL_ODR_6400_Hz   0x0D
 
#define ACCEL20_ODCNTL_ODR_12800_Hz   0x0E
 
#define ACCEL20_ODCNTL_ODR_25600_Hz   0x0F
 
#define ACCEL20_ODR_BIT_MASK   0x0F
 
#define ACCEL20_CNTL1_OP_MODE_STB   0x00
 
#define ACCEL20_CNTL1_OP_MODE_L_PWR   0x02
 
#define ACCEL20_CNTL1_OP_MODE_HP   0x03
 
#define ACCEL20_OP_MODE_BIT_MASK   0xC0
 
#define ACCEL20_ENABLE_INT_1   0x30
 
#define ACCEL20_ENABLE_DATA_READY   0x10
 
#define ACCEL20_DATA_READY_BIT_MASK   0x10
 
#define ACCEL20_INT1_DATA_READY   0x00
 
#define ACCEL20_CHIP_ID   0x46
 
#define ACCEL20_TRIGGER_DISABLE   0x00
 
#define ACCEL20_TRIGGER_ENABLE   0x01
 
#define ACCEL20_SET_DEV_ADDR_GND   0x1E
 Accel 20 device address setting.
 
#define ACCEL20_SET_DEV_ADDR_VCC   0x1F
 
#define ACCEL20_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
 
#define ACCEL20_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 
#define ACCEL20_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.
 

Typedefs

typedef err_t(* accel20_master_io_t) (struct accel20_s *, uint8_t, uint8_t *, uint8_t)
 Accel 20 Click driver interface.
 
typedef struct accel20_s accel20_t
 Accel 20 Click context object.
 

Enumerations

enum  accel20_drv_t { ACCEL20_DRV_SEL_SPI , ACCEL20_DRV_SEL_I2C }
 Accel 20 Click driver selector. More...
 
enum  accel20_return_value_t { ACCEL20_OK = 0 , ACCEL20_ERROR = -1 }
 Accel 20 Click return value data. More...
 

Functions

void accel20_cfg_setup (accel20_cfg_t *cfg)
 Accel 20 configuration object setup function.
 
void accel20_drv_interface_selection (accel20_cfg_t *cfg, accel20_drv_t drv_sel)
 Accel 20 driver interface setup function.
 
err_t accel20_init (accel20_t *ctx, accel20_cfg_t *cfg)
 Accel 20 initialization function.
 
err_t accel20_default_cfg (accel20_t *ctx)
 Accel 20 default configuration function.
 
err_t accel20_generic_write (accel20_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Accel 20 data writing function.
 
err_t accel20_generic_read (accel20_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Accel 20 data reading function.
 
err_t accel20_soft_reset (accel20_t *ctx)
 Accel 20 soft reset function.
 
err_t accel20_check_id (accel20_t *ctx)
 Accel 20 check ID function.
 
uint8_t accel20_data_ready (accel20_t *ctx)
 Accel 20 check data ready function.
 
err_t accel20_set_operating_mode (accel20_t *ctx, uint8_t op_mode)
 Accel 20 set operating mode function.
 
err_t accel20_enable_int_1_pin (accel20_t *ctx)
 Accel 20 enable INT 1 pin function.
 
err_t accel20_enable_int_2_pin (accel20_t *ctx)
 Accel 20 enable INT 2 pin function.
 
err_t accel20_set_accel_range (accel20_t *ctx, uint8_t range)
 Accel 20 set accel range function.
 
err_t accel20_set_output_data_rate (accel20_t *ctx, uint8_t odr)
 Accel 20 set output data rate function.
 
err_t accel20_get_axis_data (accel20_t *ctx, accel20_axis_t *axis)
 Accel 20 get accelerometer axis function.
 
err_t accel20_set_trigger (accel20_t *ctx, uint8_t en_trg)
 Accel 20 set trigger function.
 
uint8_t accel20_get_int_1 (accel20_t *ctx)
 Accel 20 get Interrupt 1 function.
 
uint8_t accel20_get_int_2 (accel20_t *ctx)
 Accel 20 get Interrupt 2 function.
 

Detailed Description

This file contains API for Accel 20 Click Driver.

Typedef Documentation

◆ accel20_master_io_t

typedef err_t(* accel20_master_io_t) (struct accel20_s *, uint8_t, uint8_t *, uint8_t)

Accel 20 Click driver interface.

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

◆ accel20_t

typedef struct accel20_s accel20_t

Accel 20 Click context object.

Context object definition of Accel 20 Click driver.

Enumeration Type Documentation

◆ accel20_drv_t

Accel 20 Click driver selector.

Selects target driver interface of Accel 20 Click driver.

Enumerator
ACCEL20_DRV_SEL_SPI 

SPI driver descriptor.

ACCEL20_DRV_SEL_I2C 

I2C driver descriptor.

◆ accel20_return_value_t

Accel 20 Click return value data.

Predefined enum values for driver return values.

Enumerator
ACCEL20_OK 
ACCEL20_ERROR