ChibiOS  19.1.4
lis302dl.h File Reference

LIS302DL MEMS interface module header. More...

Go to the source code of this file.

Data Structures

struct  LIS302DLConfig
 LIS302DL configuration structure. More...
 
struct  LIS302DLVMT
 LIS302DL accelerometer virtual methods table. More...
 
struct  LIS302DLDriver
 LIS302DL 3-axis accelerometer class. More...
 

Macros

#define lis302dlAccelerometerGetAxesNumber(devp)   accelerometerGetAxesNumber(&((devp)->acc_if))
 Return the number of axes of the BaseAccelerometer. More...
 
#define lis302dlAccelerometerReadRaw(devp, axes)   accelerometerReadRaw(&((devp)->acc_if), axes)
 Retrieves raw data from the BaseAccelerometer. More...
 
#define lis302dlAccelerometerReadCooked(devp, axes)   accelerometerReadCooked(&((devp)->acc_if), axes)
 Retrieves cooked data from the BaseAccelerometer. More...
 
#define lis302dlAccelerometerSetBias(devp, bp)   accelerometerSetBias(&((devp)->acc_if), bp)
 Set bias values for the BaseAccelerometer. More...
 
#define lis302dlAccelerometerResetBias(devp)   accelerometerResetBias(&((devp)->acc_if))
 Reset bias values for the BaseAccelerometer. More...
 
#define lis302dlAccelerometerSetSensitivity(devp, sp)   accelerometerSetSensitivity(&((devp)->acc_if), sp)
 Set sensitivity values for the BaseAccelerometer. More...
 
#define lis302dlAccelerometerResetSensitivity(devp)   accelerometerResetSensitivity(&((devp)->acc_if))
 Reset sensitivity values for the BaseAccelerometer. More...
 
#define lis302dlAccelerometerSetFullScale(devp, fs)   (devp)->vmt->acc_set_full_scale(devp, fs)
 Changes the LIS302DLDriver accelerometer fullscale value. More...
 
Version identification
#define EX_LIS302DL_VERSION   "1.1.1"
 LIS302DL driver version string. More...
 
#define EX_LIS302DL_MAJOR   1
 LIS302DL driver version major number. More...
 
#define EX_LIS302DL_MINOR   1
 LIS302DL driver version minor number. More...
 
#define EX_LIS302DL_PATCH   1
 LIS302DL driver version patch number. More...
 
#define LIS302DL_ACC_NUMBER_OF_AXES   3U
 LIS302DL accelerometer subsystem characteristics. More...
 
LIS302DL communication interfaces related bit masks
#define LIS302DL_DI_MASK   0xFF
 
#define LIS302DL_DI(n)   (1 << n)
 
#define LIS302DL_AD_MASK   0x3F
 
#define LIS302DL_AD(n)   (1 << n)
 
#define LIS302DL_MS   (1 << 6)
 
#define LIS302DL_RW   (1 << 7)
 
LIS302DL register addresses
#define LIS302DL_AD_WHO_AM_I   0x0F
 
#define LIS302DL_AD_CTRL_REG1   0x20
 
#define LIS302DL_AD_CTRL_REG2   0x21
 
#define LIS302DL_AD_CTRL_REG3   0x22
 
#define LIS302DL_AD_HP_FILER_RESET   0x23
 
#define LIS302DL_AD_STATUS_REG   0x27
 
#define LIS302DL_AD_OUT_X   0x29
 
#define LIS302DL_AD_OUT_Y   0x2B
 
#define LIS302DL_AD_OUT_Z   0x2D
 
#define LIS302DL_AD_FF_WU_CFG_1   0x30
 
#define LIS302DL_AD_FF_WU_SRC_1   0x31
 
#define LIS302DL_AD_FF_WU_THS_1   0x32
 
#define LIS302DL_AD_FF_WU_DURATION_1   0x33
 
#define LIS302DL_AD_FF_WU_CFG_2   0x34
 
#define LIS302DL_AD_FF_WU_SRC_2   0x35
 
#define LIS302DL_AD_FF_WU_THS_2   0x36
 
#define LIS302DL_AD_FF_WU_DURATION_2   0x37
 
#define LIS302DL_AD_CLICK_CFG   0x38
 
#define LIS302DL_AD_CLICK_SRC   0x39
 
#define LIS302DL_AD_CLICK_THSY_X   0x3B
 
#define LIS302DL_AD_CLICK_THSZ   0x3C
 
#define LIS302DL_AD_CLICK_TIME_LIMIT   0x3D
 
#define LIS302DL_AD_CLICK_LATENCY   0x3E
 
#define LIS302DL_AD_CLICK_WINDOW   0x3F
 
LIS302DL_CTRL_REG1 register bits definitions
#define LIS302DL_CTRL_REG1_MASK   0xFF
 
#define LIS302DL_CTRL_REG1_XEN   (1 << 0)
 
#define LIS302DL_CTRL_REG1_YEN   (1 << 1)
 
#define LIS302DL_CTRL_REG1_ZEN   (1 << 2)
 
#define LIS302DL_CTRL_REG1_STM   (1 << 3)
 
#define LIS302DL_CTRL_REG1_STP   (1 << 4)
 
#define LIS302DL_CTRL_REG1_FS_MASK   0x20
 
#define LIS302DL_CTRL_REG1_FS   (1 << 5)
 
#define LIS302DL_CTRL_REG1_PD   (1 << 6)
 
#define LIS302DL_CTRL_REG1_DR   (1 << 7)
 
LIS302DL_CTRL_REG2 register bits definitions
#define LIS302DL_CTRL_REG2_MASK   0xDF
 
#define LIS302DL_CTRL_REG2_HPCF1   (1 << 0)
 
#define LIS302DL_CTRL_REG2_HPCF2   (1 << 1)
 
#define LIS302DL_CTRL_REG2_HPFFWU1   (1 << 2)
 
#define LIS302DL_CTRL_REG2_HPFFWU2   (1 << 3)
 
#define LIS302DL_CTRL_REG2_FDS   (1 << 4)
 
#define LIS302DL_CTRL_REG2_BOOT   (1 << 6)
 
#define LIS302DL_CTRL_REG2_SIM   (1 << 7)
 
LIS302DL_CTRL_REG3 register bits definitions
#define LIS302DL_CTRL_REG3_MASK   0xFF
 
#define LIS302DL_CTRL_REG3_I1CFG0   (1 << 0)
 
#define LIS302DL_CTRL_REG3_I1CFG1   (1 << 1)
 
#define LIS302DL_CTRL_REG3_I1CFG2   (1 << 2)
 
#define LIS302DL_CTRL_REG3_I2CFG0   (1 << 3)
 
#define LIS302DL_CTRL_REG3_I2CFG1   (1 << 4)
 
#define LIS302DL_CTRL_REG3_I2CFG2   (1 << 5)
 
#define LIS302DL_CTRL_REG3_PP_OD   (1 << 6)
 
#define LIS302DL_CTRL_REG3_IHL   (1 << 7)
 
Configuration options
#define LIS302DL_USE_SPI   TRUE
 LIS302DL SPI interface switch. More...
 
#define LIS302DL_SHARED_SPI   FALSE
 LIS302DL shared SPI switch. More...
 
#define LIS302DL_USE_I2C   FALSE
 LIS302DL I2C interface switch. More...
 
#define LIS302DL_SHARED_I2C   FALSE
 LIS302DL shared I2C switch. More...
 
#define LIS302DL_USE_ADVANCED   FALSE
 LIS302DL advanced configurations switch. More...
 

Functions

void lis302dlObjectInit (LIS302DLDriver *devp)
 Initializes an instance. More...
 
void lis302dlStart (LIS302DLDriver *devp, const LIS302DLConfig *config)
 Configures and activates LIS302DL Complex Driver peripheral. More...
 
void lis302dlStop (LIS302DLDriver *devp)
 Deactivates the LIS302DL Complex Driver peripheral. More...
 

LIS302DL data structures and types

Todo:
Add support for LIS302DL over I2C.
#define _lis302dl_methods_alone
 LIS302DL specific methods. More...
 
#define _lis302dl_methods
 LIS302DL specific methods with inherited ones. More...
 
#define _lis302dl_data
 LIS302DLDriver specific data. More...
 
typedef struct LIS302DLDriver LIS302DLDriver
 Structure representing a LIS302DL driver. More...
 

Detailed Description

LIS302DL MEMS interface module header.

Definition in file lis302dl.h.