accel11 2.0.0.0
accel11.h File Reference

This file contains API for Accel 11 Click driver. More...

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

Go to the source code of this file.

Data Structures

struct  accel11_s
 Click ctx object definition. More...
 
struct  accel11_cfg_t
 Click configuration structure definition. More...
 

Macros

#define ACCEL11_MAP_MIKROBUS(cfg, mikrobus)
 
#define ACCEL11_MASTER_I2C   0
 
#define ACCEL11_MASTER_SPI   1
 
#define ACCEL11_RETVAL   uint8_t
 
#define ACCEL11_OK   0x00
 
#define ACCEL11_INIT_ERROR   0xFF
 
#define ACCEL11_CHIP_ID   0x16
 
#define ACCEL11_REG_CHIP_ID   0x00
 
#define ACCEL11_REG_ERROR   0x02
 
#define ACCEL11_REG_STATUS   0x03
 
#define ACCEL11_REG_AUX_X_LSB   0x0A
 
#define ACCEL11_REG_AUX_X_MSB   0x0B
 
#define ACCEL11_REG_AUX_Y_LSB   0x0C
 
#define ACCEL11_REG_AUX_Y_MSB   0x0D
 
#define ACCEL11_REG_AUX_Z_LSB   0x0E
 
#define ACCEL11_REG_AUX_Z_MSB   0x0F
 
#define ACCEL11_REG_AUX_R_LSB   0x10
 
#define ACCEL11_REG_AUX_R_MSB   0x11
 
#define ACCEL11_REG_ACCEL_X_LSB   0x12
 
#define ACCEL11_REG_ACCEL_X_MSB   0x13
 
#define ACCEL11_REG_ACCEL_Y_LSB   0x14
 
#define ACCEL11_REG_ACCEL_Y_MSB   0x15
 
#define ACCEL11_REG_ACCEL_Z_LSB   0x16
 
#define ACCEL11_REG_ACCEL_Z_MSB   0x17
 
#define ACCEL11_REG_SENSOR_TIME_0   0x18
 
#define ACCEL11_REG_SENSOR_TIME_1   0x19
 
#define ACCEL11_REG_SENSOR_TIME_2   0x1A
 
#define ACCEL11_REG_EVENT   0x1B
 
#define ACCEL11_REG_STATUS_INT_0   0x1C
 
#define ACCEL11_REG_STATUS_INT_1   0x1D
 
#define ACCEL11_REG_STEP_COUNTER_0   0x1E
 
#define ACCEL11_REG_STEP_COUNTER_1   0x1F
 
#define ACCEL11_REG_STEP_COUNTER_2   0x20
 
#define ACCEL11_REG_STEP_COUNTER_3   0x21
 
#define ACCEL11_REG_TEMPERATURE   0x22
 
#define ACCEL11_REG_FIFO_LENGTH_LSB   0x24
 
#define ACCEL11_REG_FIFO_LENGTH_MSB   0x25
 
#define ACCEL11_REG_FIFO_DATA   0x26
 
#define ACCEL11_REG_ACTIVITY_TYPE   0x27
 
#define ACCEL11_REG_INTERNAL_STATUS   0x2A
 
#define ACCEL11_REG_ACCEL_CONFIG   0x40
 
#define ACCEL11_REG_ACCEL_RANGE   0x41
 
#define ACCEL11_REG_AUX_CONFIG   0x44
 
#define ACCEL11_REG_FIFO_DOWNS   0x45
 
#define ACCEL11_REG_FIFO_WTM_LSB   0x46
 
#define ACCEL11_REG_FIFO_WTM_MSB   0x47
 
#define ACCEL11_REG_FIFO_CONFIG_0   0x48
 
#define ACCEL11_REG_FIFO_CONFIG_1   0x49
 
#define ACCEL11_AUX_DEV_ID   0x4B
 
#define ACCEL11_REG_AUX_IF_CONFIG   0x4C
 
#define ACCEL11_REG_AUX_RD_ADDRESS   0x4D
 
#define ACCEL11_REG_AUX_WR_ADDRESS   0x4E
 
#define ACCEL11_REG_AUX_WR_DATA   0x4F
 
#define ACCEL11_REG_INT1_IO_CTRL   0x53
 
#define ACCEL11_REG_INT2_IO_CTRL   0x54
 
#define ACCEL11_REG_INT_LATCH   0x55
 
#define ACCEL11_REG_INT1_MAP   0x56
 
#define ACCEL11_REG_INT2_MAP   0x57
 
#define ACCEL11_REG_INT_MAP_DATA   0x58
 
#define ACCEL11_REG_INT_CTRL   0x59
 
#define ACCEL11_REG_FEATURES_IN   0x5E
 
#define ACCEL11_REG_INTERNAL_ERROR   0x5F
 
#define ACCEL11_REG_NVM_CONF   0x6A
 
#define ACCEL11_REG_SPI_IF_CONF   0x6B
 
#define ACCEL11_REG_ACCEL_SELF_TEST   0x6D
 
#define ACCEL11_REG_NV_CONF   0x70
 
#define ACCEL11_REG_OFFSET_X_AXIS   0x71
 
#define ACCEL11_REG_OFFSET_Y_AXIS   0x72
 
#define ACCEL11_REG_OFFSET_Z_AXIS   0x73
 
#define ACCEL11_REG_POWER_CONFIG   0x7C
 
#define ACCEL11_REG_POWER_CTRL   0x7D
 
#define ACCEL11_REG_COMMAND   0x7E
 
#define ACCEL11_ERR_AUX   0x80
 
#define ACCEL11_ERR_FIFO   0x80
 
#define ACCEL11_ERR_ACCEL   0x04
 
#define ACCEL11_ERR_CMD   0x02
 
#define ACCEL11_ERR_FATAL   0x01
 
#define ACCEL11_STATUS_DRDY_ACCEL   0x80
 
#define ACCEL11_STATUS_DRDY_AUX   0x20
 
#define ACCEL11_STATUS_RDY_CMD   0x10
 
#define ACCEL11_STATUS_AUX_MAN_OP   0x04
 
#define ACCEL11_EVENT_POWER_UP   0x00
 
#define ACCEL11_EVENT_SOFTWARE_RESET   0x01
 
#define ACCEL11_INTS0_ERR_INT_OUT   0x80
 
#define ACCEL11_INTS0_NO_MOTION_OUT   0x40
 
#define ACCEL11_INTS0_WAKEUP_OUT   0x20
 
#define ACCEL11_INTS0_WRIST_TILT_OUT   0x08
 
#define ACCEL11_INTS0_ACTIVITY_TYPE_OUT   0x04
 
#define ACCEL11_INTS0_STEP_COUNTER_OUT   0x02
 
#define ACCEL11_INTS1_ACCEL_DRDY_INT   0x80
 
#define ACCEL11_INTS1_AUX_DRDY_INT   0x20
 
#define ACCEL11_INTS1_FWM_INT   0x02
 
#define ACCEL11_INTS1_FFULL_INT   0x01
 
#define ACCEL11_ATYPE_USER_NOT_MOVING   0x00
 
#define ACCEL11_ATYPE_USER_WALKING   0x01
 
#define ACCEL11_ATYPE_USER_RUNNING   0x02
 
#define ACCEL11_INTERS_ODR_HIGH_ERR   0x80
 
#define ACCEL11_INTERS_ODR_50HZ_ERR   0x40
 
#define ACCEL11_INTERS_AXES_REMAP_ERR   0x20
 
#define ACCEL11_INTERS_NOT_INIT   0x00
 
#define ACCEL11_INTERS_INIT_OK   0x01
 
#define ACCEL11_INTERS_INIT_ERROR   0x02
 
#define ACCEL11_INTERS_INVALID_DRIVER   0x03
 
#define ACCEL11_INTERS_SENSOR_STOPPED   0x04
 
#define ACCEL11_ACFG_AVERAGING_MODE   0x00
 
#define ACCEL11_ACFG_CONTINUOUS_MODE   0x80
 
#define ACCEL11_ACFG_BWP_NO_AVERAGING   0x00
 
#define ACCEL11_ACFG_BWP_AVERAGING_2_SAMPLES   0x10
 
#define ACCEL11_ACFG_BWP_AVERAGING_4_SAMPLES   0x20
 
#define ACCEL11_ACFG_BWP_AVERAGING_8_SAMPLES   0x30
 
#define ACCEL11_ACFG_BWP_AVERAGING_16_SAMPLES   0x40
 
#define ACCEL11_ACFG_BWP_AVERAGING_32_SAMPLES   0x50
 
#define ACCEL11_ACFG_BWP_AVERAGING_64_SAMPLES   0x60
 
#define ACCEL11_ACFG_BWP_AVERAGING_128_SAMPLES   0x70
 
#define ACCEL11_RANGE_2g   0x00
 
#define ACCEL11_RANGE_4g   0x01
 
#define ACCEL11_RANGE_8g   0x02
 
#define ACCEL11_RANGE_16g   0x03
 
#define ACCEL11_CFG_ODR_0p78Hz   0x01
 
#define ACCEL11_CFG_ODR_1p5Hz   0x02
 
#define ACCEL11_CFG_ODR_3p1Hz   0x03
 
#define ACCEL11_CFG_ODR_6p25Hz   0x04
 
#define ACCEL11_CFG_ODR_12p5Hz   0x05
 
#define ACCEL11_CFG_ODR_25Hz   0x06
 
#define ACCEL11_CFG_ODR_50Hz   0x07
 
#define ACCEL11_CFG_ODR_100Hz   0x08
 
#define ACCEL11_CFG_ODR_200Hz   0x09
 
#define ACCEL11_CFG_ODR_400Hz   0x0A
 
#define ACCEL11_CFG_ODR_800Hz   0x0B
 
#define ACCEL11_CFG_ODR_1k6Hz   0x0C
 
#define ACCEL11_CFG_ODR_3k2Hz   0x0D
 
#define ACCEL11_CFG_ODR_6k4Hz   0x0E
 
#define ACCEL11_CFG_ODR_12k8Hz   0x0F
 
#define ACCEL11_FCFG0_FIFO_TIME_ENABLE   0x02
 
#define ACCEL11_FCFG0_FIFO_TIME_DISABLE   0x00
 
#define ACCEL11_FCFG0_FIFO_STOP_ON_FULL_ENABLE   0x01
 
#define ACCEL11_FCFG0_FIFO_STOP_ON_FULL_DISABLE   0x00
 
#define ACCEL11_FCGF1_FIFO_ACCEL_ENABLE   0x40
 
#define ACCEL11_FCGF1_FIFO_ACCEL_DISABLE   0x00
 
#define ACCEL11_FCGF1_FIFO_AUX_ENABLE   0x20
 
#define ACCEL11_FCGF1_FIFO_AUX_DISABLE   0x00
 
#define ACCEL11_FCGF1_FIFO_HEADER_ENABLE   0x10
 
#define ACCEL11_FCGF1_FIFO_HEADER_DISABLE   0x00
 
#define ACCEL11_FCGF1_FIFO_TAG_INT1_ENABLE   0x08
 
#define ACCEL11_FCGF1_FIFO_TAG_INT1_DISABLE   0x00
 
#define ACCEL11_FCGF1_FIFO_TAG_INT2_ENABLE   0x04
 
#define ACCEL11_FCGF1_FIFO_TAG_INT2_DISABLE   0x00
 
#define ACCEL11_IFCFG_DATA_MODE   0x00
 
#define ACCEL11_IFCFG_SETUP_MODE   0x80
 
#define ACCEL11_IFCFG_BURST_LENGTH_1   0x00
 
#define ACCEL11_IFCFG_BURST_LENGTH_2   0x01
 
#define ACCEL11_IFCFG_BURST_LENGTH_6   0x02
 
#define ACCEL11_IFCFG_BURST_LENGTH_8   0x03
 
#define ACCEL11_INTIO_INPUT_ENABLE   0x10
 
#define ACCEL11_INTIO_INPUT_DISABLE   0x00
 
#define ACCEL11_INTIO_OUTPUT_ENABLE   0x08
 
#define ACCEL11_INTIO_OUTPUT_DISABLE   0x00
 
#define ACCEL11_INTIO_PUSH_PULL   0x00
 
#define ACCEL11_INTIO_OPEN_DRAIN   0x04
 
#define ACCEL11_INTIO_LVL_ACTIVE_LOW   0x00
 
#define ACCEL11_INTIO_LVL_ACTIVE_HIGH   0x02
 
#define ACCEL11_INTIO_TRIGGER_LEVEL   0x00
 
#define ACCEL11_INTIO_TRIGGER_EDGE   0x01
 
#define ACCEL11_INTLAT_NON_LATCHED   0x00
 
#define ACCEL11_INTLAT_LATCHED   0x01
 
#define ACCEL11_IMAPD_INT1_FFULL   0x01
 
#define ACCEL11_IMAPD_INT1_FWM   0x03
 
#define ACCEL11_IMAPD_INT1_DRDY   0x04
 
#define ACCEL11_IMAPD_INT2_FFULL   0x10
 
#define ACCEL11_IMAPD_INT2_FWM   0x20
 
#define ACCEL11_IMAPD_INT2_DRDY   0x40
 
#define ACCEL11_SPI_4_WIRE   0x00
 
#define ACCEL11_SPI_3_WIRE   0x01
 
#define ACCEL11_AUX_INTERFACE_OFF   0x00
 
#define ACCEL11_AUX_INTERFACE_MAG   0x10
 
#define ACCEL_NV_ACCEL_OFFSET_ENABLE   0x08
 
#define ACCEL_NV_ACCEL_OFFSET_DISABLE   0x00
 
#define ACCEL_NV_I2C_WATCHDOG_ENABLE   0x04
 
#define ACCEL_NV_I2C_WATCHDOG_DISABLE   0x00
 
#define ACCEL_NV_I2C_WDT_TIMEOUT_SHORT   0x00
 
#define ACCEL_NV_I2C_WDT_TIMEOUT_LONG   0x02
 
#define ACCEL_NV_I2C_INTERFACE_ENABLE   0x00
 
#define ACCEL_NV_I2C_INTERFACE_DISABLE   0x01
 
#define ACCEL11_PWRCFG_APS_ON   0x01
 
#define ACCEL11_PWRCFG_APS_OFF   0x00
 
#define ACCEL11_PWRCFG_FSW_ON   0x02
 
#define ACCEL11_PWRCFG_FSW_OFF   0x00
 
#define ACCEL11_PWRCTRL_ACCEL_ENABLE   0x04
 
#define ACCEL11_PWRCTRL_ACCEL_DISABLE   0x00
 
#define ACCEL11_CMD_NVM_PROG   0xA0
 
#define ACCEL11_CMD_FIFO_FLUSH   0xB0
 
#define ACCEL11_CMD_SW_RESET   0xB6
 
#define ACCEL11_ACCEL_X_AXIS   0x12
 
#define ACCEL11_ACCEL_Y_AXIS   0x14
 
#define ACCEL11_ACCEL_Z_AXIS   0x16
 
#define ACCEL11_SLAVE_ADDRESS_GND   0x18
 
#define ACCEL11_SLAVE_ADDRESS_VCC   0x19
 
#define ACCEL11_TEST_COMUNICATION_ERROR   0x01
 
#define ACCEL11_TEST_COMUNICATION_OK   0x00
 

Typedefs

typedef uint8_t accel11_select_t
 Communication type.
 
typedef void(* accel11_master_io_t) (struct accel11_s *, uint8_t, uint8_t *, uint8_t)
 Master Input/Output type.
 
typedef struct accel11_s accel11_t
 Click ctx object definition.
 

Functions

void accel11_cfg_setup (accel11_cfg_t *cfg)
 Config Object Initialization function.
 
ACCEL11_RETVAL accel11_init (accel11_t *ctx, accel11_cfg_t *cfg)
 Initialization function.
 
void accel11_default_cfg (accel11_t *ctx)
 Click Default Configuration function.
 
void accel11_generic_write (accel11_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic write function.
 
void accel11_generic_read (accel11_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic read function.
 
void accel11_write_byte (accel11_t *ctx, uint8_t addr, uint8_t data_in)
 Functions for write one byte in register.
 
uint8_t accel11_read_byte (accel11_t *ctx, uint8_t addr)
 Functions for read byte from register.
 
uint8_t accel11_test_comunication (accel11_t *ctx)
 Test comunication function.
 
void accel11_software_reset (accel11_t *ctx)
 Software reset function.
 
int16_t accel11_get_axis_data (accel11_t *ctx, uint8_t axis)
 Accel Axis data function.
 
void accel11_power_on_procedure (accel11_t *ctx)
 Function for power on chip.
 
int8_t accel11_get_temperature (accel11_t *ctx)
 Function get temperature.
 

Detailed Description

This file contains API for Accel 11 Click driver.