ChibiOS/EX 1.3.0
adxl317.h File Reference

ADXL317 MEMS interface module header. More...

#include "ex_accelerometer.h"

Go to the source code of this file.

Data Structures

struct  adxl317_acc_lp_t
 ADXL317 LP filter configuration. More...
struct  adxl317_acc_hp_t
 ADXL317 HP filter configuration. More...
struct  ADXL317Config
 ADXL317 configuration structure. More...
struct  ADXL317VMT
 ADXL317 virtual methods table. More...
struct  ADXL317Driver
 ADXL317 3-axis accelerometer class. More...

Macros

#define adxl317AccelerometerGetAxesNumber(devp)
 Return the number of axes of the BaseAccelerometer.
#define adxl317AccelerometerReadRaw(devp, axes)
 Retrieves raw data from the BaseAccelerometer.
#define adxl317AccelerometerReadCooked(devp, axes)
 Retrieves cooked data from the BaseAccelerometer.
Version identification
#define EX_ADXL317_VERSION   "1.0.0"
 ADXL317 driver version string.
#define EX_ADXL317_MAJOR   1
 ADXL317 driver version major number.
#define EX_ADXL317_MINOR   0
 ADXL317 driver version minor number.
#define EX_ADXL317_PATCH   0
 ADXL317 driver version patch number.
#define ADXL317_ACC_NUMBER_OF_AXES   3U
 ADXL317 accelerometer subsystem characteristics.
#define ADXL317_ACC_SENS   2.0f
#define ADXL317_ACC_BIAS   0.0f
ADXL317 register addresses
#define ADXL317_AD_DEVID_0   0x00
#define ADXL317_AD_DEVID_1   0x01
#define ADXL317_AD_USER_REG_KEY   0x80
#define ADXL317_AD_I2C_CFGO   0x81
#define ADXL317_AD_I2C_CFG1   0x82
#define ADXL317_AD_CLK_RATE   0x83
#define ADXL317_AD_X_ST   0x84
#define ADXL317_AD_X_FILT   0x85
#define ADXL317_AD_Y_ST   0x86
#define ADXL317_AD_Y_FILT   0x87
#define ADXL317_AD_Z_ST   0x88
#define ADXL317_AD_Z_FILT   0x89
#define ADXL317_AD_X_DATA_LO   0x8A
#define ADXL317_AD_X_DATA_HI   0x8B
#define ADXL317_AD_Y_DATA_LO   0x8C
#define ADXL317_AD_Y_DATA_HI   0x8D
#define ADXL317_AD_Z_DATA_LO   0x8E
#define ADXL317_AD_Z_DATA_HI   0x8F
ADXL317 Device Identifier
#define ADXL317_DEVID_0   0x22
ADXL317 Device User Reg Key for Register Write Enable
#define ADXL317_USER_REG_KEY_0   0xBC
#define ADXL317_USER_REG_KEY_1   0x43
ADXL317 Default filter

LP (CIC and IIR cascade) with cut off at 4kHz HP disabled

#define ADXL317_DEFAULT_FILTER   0x40
ADXL317_I2S_CFG0 register bits definitions
#define ADXL317_I2S_CFG0_MASK   0xF3
#define ADXL317_I2S_CFG0_TDMMODE_0   (1 << 0)
#define ADXL317_I2S_CFG0_TDMMODE_1   (1 << 1)
#define ADXL317_I2S_CFG0_TDMSS   (1 << 4)
#define ADXL317_I2S_CFG0_ALT   (1 << 5)
#define ADXL317_I2S_CFG0_EARLY   (1 << 6)
#define ADXL317_I2S_CFG0_INV   (1 << 7)
ADXL317_I2S_CFG1 register bits definitions
#define ADXL317_I2S_CFG1_MASK   0x07
#define ADXL317_I2S_CFG1_TX0EN   (1 << 0)
#define ADXL317_I2S_CFG1_TX1EN   (1 << 1)
#define ADXL317_I2S_CFG1_TXBCLKINV   (1 << 3)
ADXL317_CLOCK_RATE register bits definitions
#define ADXL317_CLOCK_RATE_MASK   0x07
#define ADXL317_CLOCK_RATE_A2B_CLK_RATE_0   (1 << 0)
#define ADXL317_CLOCK_RATE_A2B_CLK_RATE_1   (1 << 1)
#define ADXL317_CLOCK_RATE_A2B_CLK_RATE_2   (1 << 3)
Configuration options
#define ADXL317_USE_I2C   TRUE
 ADXL317 I2C interface switch.
#define ADXL317_SHARED_I2C   FALSE
 ADXL317 shared I2C switch.
#define ADXL317_USE_ADVANCED   FALSE
 ADXL317 advanced configurations switch.
#define ADXL317_MAX_BUFF_SIZE   6
 ADXL317 internal maximum communication buffer sizes.

Functions

void adxl317ObjectInit (ADXL317Driver *devp, uint8_t *txbp, uint8_t *rxbp)
 Initializes an instance.
msg_t adxl317Start (ADXL317Driver *devp, const ADXL317Config *config)
 Configures and activates ADXL317 Complex Driver peripheral.
void adxl317Stop (ADXL317Driver *devp)
 Deactivates the ADXL317 Complex Driver peripheral.

ADXL317 data structures and types

#define _adxl317_methods_alone
 ADXL317 specific methods.
#define _adxl317_methods
 ADXL317 specific methods with inherited ones.
#define _adxl317_data
 ADXL317Driver specific data.
enum  adxl317_sad_t { ADXL317_SAD_GND = 0x53 , ADXL317_SAD_VCC = 0x1D }
 ADXL317 Slave Address. More...
enum  adxl317_state_t { ADXL317_UNINIT = 0 , ADXL317_STOP = 1 , ADXL317_READY = 2 }
 Driver state machine possible states. More...
enum  adxl317_acc_x_lp_t {
  ADXL317_ACC_X_LP_DISABLED = 0x00 , ADXL317_ACC_X_LP_500 = 0x4F , ADXL317_ACC_X_LP_1000 = 0x4A , ADXL317_ACC_X_LP_2000 = 0x45 ,
  ADXL317_ACC_X_LP_4000 = 0x40
}
 ADXL317 X LP filter. More...
enum  adxl317_acc_y_lp_t {
  ADXL317_ACC_Y_LP_DISABLED = 0x00 , ADXL317_ACC_Y_LP_500 = 0x4F , ADXL317_ACC_Y_LP_1000 = 0x4A , ADXL317_ACC_Y_LP_2000 = 0x45 ,
  ADXL317_ACC_Y_LP_4000 = 0x40
}
 ADXL317 Y LP filter. More...
enum  adxl317_acc_z_lp_t {
  ADXL317_ACC_Z_LP_DISABLED = 0x00 , ADXL317_ACC_Z_LP_500 = 0x4F , ADXL317_ACC_Z_LP_1000 = 0x4A , ADXL317_ACC_Z_LP_2000 = 0x45 ,
  ADXL317_ACC_Z_LP_4000 = 0x40
}
 ADXL317 Z LP filter. More...
enum  adxl317_acc_x_hp_t {
  ADXL317_ACC_X_HP_DISABLED = 0x00 , ADXL317_ACC_X_HP_29 = 0x80 , ADXL317_ACC_X_HP_7 = 0x90 , ADXL317_ACC_X_HP_1 = 0xA0 ,
  ADXL317_ACC_X_HP_0_5 = 0xB0
}
 ADXL317 X HP filter. More...
enum  adxl317_acc_y_hp_t {
  ADXL317_ACC_Y_HP_DISABLED = 0x00 , ADXL317_ACC_Y_HP_29 = 0x80 , ADXL317_ACC_Y_HP_7 = 0x90 , ADXL317_ACC_Y_HP_1 = 0xA0 ,
  ADXL317_ACC_Y_HP_0_5 = 0xB0
}
 ADXL317 Y HP filter. More...
enum  adxl317_acc_z_hp_t {
  ADXL317_ACC_Z_HP_DISABLED = 0x00 , ADXL317_ACC_Z_HP_29 = 0x80 , ADXL317_ACC_Z_HP_7 = 0x90 , ADXL317_ACC_Z_HP_1 = 0xA0 ,
  ADXL317_ACC_Z_HP_0_5 = 0xB0
}
 ADXL317 Z HP filter. More...
typedef struct ADXL317Driver ADXL317Driver
 Structure representing a ADXL317 driver.

Detailed Description

ADXL317 MEMS interface module header.

Definition in file adxl317.h.