ChibiOS/EX 1.3.0
adxl355.h File Reference

ADXL355 MEMS interface module header. More...

#include "ex_accelerometer.h"

Go to the source code of this file.

Data Structures

struct  ADXL355Config
 ADXL355 configuration structure. More...
struct  ADXL355VMT
 ADXL355 virtual methods table. More...
struct  ADXL355Driver
 ADXL355 3-axis accelerometer class. More...

Macros

#define adxl355AccelerometerGetAxesNumber(devp)
 Return the number of axes of the BaseAccelerometer.
#define adxl355AccelerometerReadRaw(devp, axes)
 Retrieves raw data from the BaseAccelerometer.
#define adxl355AccelerometerReadCooked(devp, axes)
 Retrieves cooked data from the BaseAccelerometer.
#define adxl355AccelerometerSetBias(devp, bp)
 Set bias values for the BaseAccelerometer.
#define adxl355AccelerometerResetBias(devp)
 Reset bias values for the BaseAccelerometer.
#define adxl355AccelerometerSetSensitivity(devp, sp)
 Set sensitivity values for the BaseAccelerometer.
#define adxl355AccelerometerResetSensitivity(devp)
 Reset sensitivity values for the BaseAccelerometer.
#define adxl355AccelerometerSetFullScale(devp, fs)
 Changes the ADXL355Driver accelerometer fullscale value.
Version identification
#define EX_ADXL355_VERSION   "1.1.0"
 ADXL355 driver version string.
#define EX_ADXL355_MAJOR   1
 ADXL355 driver version major number.
#define EX_ADXL355_MINOR   1
 ADXL355 driver version minor number.
#define EX_ADXL355_PATCH   0
 ADXL355 driver version patch number.
#define ADXL355_ACC_NUMBER_OF_AXES   3U
 ADXL355 accelerometer subsystem characteristics.
#define ADXL355_ACC_2G   2.048f
#define ADXL355_ACC_4G   4.096f
#define ADXL355_ACC_8G   8.0192f
#define ADXL355_ACC_SENS_2G   0.003906f
#define ADXL355_ACC_SENS_4G   0.007813f
#define ADXL355_ACC_SENS_8G   0.015625f
#define ADXL355_ACC_BIAS   0.0f
ADXL355 communication interfaces related bit masks
#define ADXL355_DI_MASK   0xFF
#define ADXL355_DI(n)
#define ADXL355_AD_MASK   0xFE
#define ADXL355_RW   (1 << 0)
#define ADXL355_AD(n)
ADXL355 register addresses
#define ADXL355_AD_DEVID_AD   0x00
#define ADXL355_AD_DEVID_MST   0x01
#define ADXL355_AD_PARTID   0x02
#define ADXL355_AD_REVID   0x03
#define ADXL355_AD_STATUS   0x04
#define ADXL355_AD_FIFO_ENTRIES   0x05
#define ADXL355_AD_TEMP2   0x06
#define ADXL355_AD_TEMP1   0x07
#define ADXL355_AD_XDATA3   0x08
#define ADXL355_AD_XDATA2   0x09
#define ADXL355_AD_XDATA1   0x0A
#define ADXL355_AD_YDATA3   0x0B
#define ADXL355_AD_YDATA2   0x0C
#define ADXL355_AD_YDATA1   0x0D
#define ADXL355_AD_ZDATA3   0x0E
#define ADXL355_AD_ZDATA2   0x0F
#define ADXL355_AD_ZDATA1   0x10
#define ADXL355_AD_FIFO_DATA   0x11
#define ADXL355_AD_OFFSET_X_H   0x1E
#define ADXL355_AD_OFFSET_X_L   0x1F
#define ADXL355_AD_OFFSET_Y_H   0x20
#define ADXL355_AD_OFFSET_Y_L   0x21
#define ADXL355_AD_OFFSET_Z_H   0x22
#define ADXL355_AD_OFFSET_Z_L   0x23
#define ADXL355_AD_ACT_EN   0x24
#define ADXL355_AD_ACT_THRES_L   0x25
#define ADXL355_AD_ACT_THRES_H   0x26
#define ADXL355_AD_ACT_COUNTER   0x27
#define ADXL355_AD_FILTER   0x28
#define ADXL355_AD_FIFO_SAMPLES   0x29
#define ADXL355_AD_INT_MAP   0x2A
#define ADXL355_AD_SYNC   0x2B
#define ADXL355_AD_RANGE   0x2C
#define ADXL355_AD_POWER_CTL   0x2D
#define ADXL355_AD_SELF_TEST   0x2E
#define ADXL355_AD_RESET   0x2F
ADXL355 Device Identifier
#define ADXL355_DEVID_MST   0x1D
ADXL355_FILTER register bits definitions
#define ADXL355_FILTER_MASK   0x7F
#define ADXL355_FILTER_ORD_LPF_0   (1 << 0)
#define ADXL355_FILTER_ORD_LPF_1   (1 << 1)
#define ADXL355_FILTER_ORD_LPF_2   (1 << 2)
#define ADXL355_FILTER_ORD_LPF_3   (1 << 3)
#define ADXL355_FILTER_HPF_CORNER_0   (1 << 4)
#define ADXL355_FILTER_HPF_CORNER_1   (1 << 5)
#define ADXL355_FILTER_HPF_CORNER_2   (1 << 6)
ADXL355_FIFO_SAMPLES register bits definitions
#define ADXL355_FIFO_SAMPLES_MASK   0x7F
#define ADXL355_FIFO_SAMPLES_BIT_0   (1 << 0)
#define ADXL355_FIFO_SAMPLES_BIT_1   (1 << 1)
#define ADXL355_FIFO_SAMPLES_BIT_2   (1 << 2)
#define ADXL355_FIFO_SAMPLES_BIT_3   (1 << 3)
#define ADXL355_FIFO_SAMPLES_BIT_4   (1 << 4)
#define ADXL355_FIFO_SAMPLES_BIT_5   (1 << 5)
#define ADXL355_FIFO_SAMPLES_BIT_6   (1 << 6)
ADXL355_INT_MAP register bits definitions
#define ADXL355_INT_MAP_MASK   0xFF
#define ADXL355_INT_MAP_RDY_EN1   (1 << 0)
#define ADXL355_INT_MAP_FULL_EN1   (1 << 1)
#define ADXL355_INT_MAP_OVR_EN1   (1 << 2)
#define ADXL355_INT_MAP_ACT_EN1   (1 << 3)
#define ADXL355_INT_MAP_RDY_EN2   (1 << 4)
#define ADXL355_INT_MAP_FULL_EN2   (1 << 5)
#define ADXL355_INT_MAP_OVR_EN2   (1 << 6)
#define ADXL355_INT_MAP_ACT_EN2   (1 << 7)
ADXL355_SYNC register bits definitions
#define ADXL355_SYNC_MASK   0x07
#define ADXL355_SYNC_EXT_SYNC_0   (1 << 0)
#define ADXL355_SYNC_EXT_SYNC_1   (1 << 1)
#define ADXL355_SYNC_EXT_CLK   (1 << 2)
ADXL355_RANGE register bits definitions
#define ADXL355_RANGE_MASK   0xC3
#define ADXL355_RANGE_RANGE_MASK   0x03
#define ADXL355_RANGE_RANGE_1   (1 << 1)
#define ADXL355_RANGE_RANGE_0   (1 << 0)
#define ADXL355_RANGE_RANGE_1   (1 << 1)
#define ADXL355_RANGE_INT_POL   (1 << 6)
#define ADXL355_RANGE_I2C_HS   (1 << 7)
ADXL355_POWER_CTL register bits definitions
#define ADXL355_POWER_CTL_MASK   0x07
#define ADXL355_POWER_CTL_STANDBY   (1 << 0)
#define ADXL355_POWER_CTL_TEMP_OFF   (1 << 1)
#define ADXL355_POWER_CTL_DRDY_OFF   (1 << 2)
ADXL355_SELT_TEST register bits definitions
#define ADXL355_SELF_TEST_MASK   0x03
#define ADXL355_SELF_TEST_ST1   (1 << 0)
#define ADXL355_SELF_TEST_ST2   (1 << 1)
Configuration options
#define ADXL355_USE_SPI   TRUE
 ADXL355 SPI interface switch.
#define ADXL355_SHARED_SPI   FALSE
 ADXL355 shared SPI switch.
#define ADXL355_USE_I2C   FALSE
 ADXL355 I2C interface switch.
#define ADXL355_SHARED_I2C   FALSE
 ADXL355 shared I2C switch.
#define ADXL355_USE_ADVANCED   FALSE
 ADXL355 advanced configurations switch.
#define ADXL355_COMM_BUFF_SIZE   32
 ADXL355 internal communication buffer sizes.

Functions

void adxl355SPIReadRegister (ADXL355Driver *devp, uint8_t reg, size_t n, uint8_t *b)
 Reads a generic register value using SPI.
void adxl355SPIWriteRegister (ADXL355Driver *devp, uint8_t reg, size_t n, uint8_t *b)
 Writes a value into a generic register using SPI.
void adxl355ObjectInit (ADXL355Driver *devp, uint8_t *txbp, uint8_t *rxbp)
 Initializes an instance.
void adxl355Start (ADXL355Driver *devp, const ADXL355Config *config)
 Configures and activates ADXL355 Complex Driver peripheral.
void adxl355Stop (ADXL355Driver *devp)
 Deactivates the ADXL355 Complex Driver peripheral.

ADXL355 data structures and types

#define _adxl355_methods_alone
 ADXL355 specific methods.
#define _adxl355_methods
 ADXL355 specific methods with inherited ones.
#define _adxl355_data
 ADXL355Driver specific data.
enum  adxl355_acc_fs_t { ADXL355_ACC_FS_2G = 0x01 , ADXL355_ACC_FS_4G = 0x02 , ADXL355_ACC_FS_8G = 0x03 }
 ADXL355 full scale. More...
enum  adxl355_acc_odr_t {
  ADXL355_ACC_ODR_4000HZ = 0x00 , ADXL355_ACC_ODR_2000HZ = 0x01 , ADXL355_ACC_ODR_1000HZ = 0x02 , ADXL355_ACC_ODR_500HZ = 0x03 ,
  ADXL355_ACC_ODR_250HZ = 0x04 , ADXL355_ACC_ODR_125HZ = 0x06 , ADXL355_ACC_ODR_62P5HZ = 0x06 , ADXL355_ACC_ODR_31P25HZ = 0x07 ,
  ADXL355_ACC_ODR_15P625HZ = 0x08 , ADXL355_ACC_ODR_7P913HZ = 0x09 , ADXL355_ACC_ODR_3P906HZ = 0x0A
}
 ADXL355 output data rate. More...
enum  adxl355_acc_hp_t {
  ADXL355_ACC_HP_DISABLED = 0x00 , ADXL355_ACC_HP_LEV_1 = 0x10 , ADXL355_ACC_HP_LEV_2 = 0x20 , ADXL355_ACC_HP_LEV_3 = 0x30 ,
  ADXL355_ACC_HP_LEV_4 = 0x40 , ADXL355_ACC_HP_LEV_5 = 0x50 , ADXL355_ACC_HP_LEV_6 = 0x60
}
 ADXL355 HP filter. More...
enum  adxl355_state_t { ADXL355_UNINIT = 0 , ADXL355_STOP = 1 , ADXL355_READY = 2 }
 Driver state machine possible states. More...
typedef struct ADXL355Driver ADXL355Driver
 Structure representing a ADXL355 driver.

Detailed Description

ADXL355 MEMS interface module header.

Definition in file adxl355.h.