ChibiOS  0.0.0
lps22hb.h File Reference

LPS22HB MEMS interface module header. More...

#include "hal_barometer.h"
#include "hal_thermometer.h"

Go to the source code of this file.

Data Structures

struct  LPS22HBConfig
 LPS22HB configuration structure. More...
 
struct  LPS22HBVMT
 LPS22HB virtual methods table. More...
 
struct  LPS22HBDriver
 LPS22HB 2-axis barometer/thermometer class. More...
 

Macros

#define lps22hbBarometerGetAxesNumber(devp)   barometerGetAxesNumber(&((devp)->baro_if))
 Return the number of axes of the BaseBarometer. More...
 
#define lps22hbBarometerReadRaw(devp, axes)   barometerReadRaw(&((devp)->baro_if), axes)
 Retrieves raw data from the BaseBarometer. More...
 
#define lps22hbBarometerReadCooked(devp, axes)   barometerReadCooked(&((devp)->baro_if), axes)
 Retrieves cooked data from the BaseBarometer. More...
 
#define lps22hbBarometerSetBias(devp, bp)   barometerSetBias(&((devp)->baro_if), bp)
 Set bias values for the BaseBarometer. More...
 
#define lps22hbBarometerResetBias(devp)   barometerResetBias(&((devp)->baro_if))
 Reset bias values for the BaseBarometer. More...
 
#define lps22hbBarometerSetSensitivity(devp, sp)   barometerSetSensitivity(&((devp)->baro_if), sp)
 Set sensitivity values for the BaseBarometer. More...
 
#define lps22hbBarometerResetSensitivity(devp)   barometerResetSensitivity(&((devp)->baro_if))
 Reset sensitivity values for the BaseBarometer. More...
 
#define lps22hbThermometerGetAxesNumber(devp)   thermometerGetAxesNumber(&((devp)->thermo_if))
 Return the number of axes of the BaseThermometer. More...
 
#define lps22hbThermometerReadRaw(devp, axes)   thermometerReadRaw(&((devp)->thermo_if), axes)
 Retrieves raw data from the BaseThermometer. More...
 
#define lps22hbThermometerReadCooked(devp, axes)   thermometerReadCooked(&((devp)->thermo_if), axes)
 Retrieves cooked data from the BaseThermometer. More...
 
#define lps22hbThermometerSetBias(devp, bp)   thermometerSetBias(&((devp)->thermo_if), bp)
 Set bias values for the BaseThermometer. More...
 
#define lps22hbThermometerResetBias(devp)   thermometerResetBias(&((devp)->thermo_if))
 Reset bias values for the BaseThermometer. More...
 
#define lps22hbThermometerSetSensitivity(devp, sp)   thermometerSetSensitivity(&((devp)->thermo_if), sp)
 Set sensitivity values for the BaseThermometer. More...
 
#define lps22hbThermometerResetSensitivity(devp)   thermometerResetSensitivity(&((devp)->thermo_if))
 Reset sensitivity values for the BaseThermometer. More...
 
Version identification
#define EX_LPS22HB_VERSION   "1.0.0"
 LPS22HB driver version string. More...
 
#define EX_LPS22HB_MAJOR   1
 LPS22HB driver version major number. More...
 
#define EX_LPS22HB_MINOR   0
 LPS22HB driver version minor number. More...
 
#define EX_LPS22HB_PATCH   0
 LPS22HB driver version patch number. More...
 
#define LPS22HB_BARO_NUMBER_OF_AXES   1U
 LPS22HB barometer subsystem characteristics. More...
 
#define LPS22HB_THERMO_NUMBER_OF_AXES   1U
 LPS22HB thermometer subsystem characteristics. More...
 
LPS22HB communication interfaces related bit masks
#define LPS22HB_DI_MASK   0xFF
 
#define LPS22HB_DI(n)   (1 << n)
 
#define LPS22HB_AD_MASK   0x3F
 
#define LPS22HB_AD(n)   (1 << n)
 
#define LPS22HB_MS   (1 << 6)
 
#define LPS22HB_RW   (1 << 7)
 
#define LPS22HB_SUB_MS   (1 << 7)
 
LPS22HB register addresses
#define LPS22HB_AD_INT_CFG   0x0B
 
#define LPS22HB_AD_THS_P_L   0x0C
 
#define LPS22HB_AD_THS_P_H   0x0D
 
#define LPS22HB_AD_WHO_AM_I   0x0F
 
#define LPS22HB_AD_CTRL_REG1   0x10
 
#define LPS22HB_AD_CTRL_REG2   0x11
 
#define LPS22HB_AD_CTRL_REG3   0x12
 
#define LPS22HB_AD_FIFO_CTRL   0x14
 
#define LPS22HB_AD_REF_P_XL   0x15
 
#define LPS22HB_AD_REF_P_L   0x16
 
#define LPS22HB_AD_REF_P_H   0x17
 
#define LPS22HB_AD_RPDS_L   0x18
 
#define LPS22HB_AD_RPDS_H   0x19
 
#define LPS22HB_AD_RES_CONF   0x1A
 
#define LPS22HB_AD_INT_SRC   0x25
 
#define LPS22HB_AD_FIFO_SRC   0x26
 
#define LPS22HB_AD_STATUS_REG   0x27
 
#define LPS22HB_AD_PRESS_OUT_XL   0x28
 
#define LPS22HB_AD_PRESS_OUT_L   0x29
 
#define LPS22HB_AD_PRESS_OUT_H   0x2A
 
#define LPS22HB_AD_TEMP_OUT_L   0x2B
 
#define LPS22HB_AD_TEMP_OUT_H   0x2C
 
#define LPS22HB_AD_LPFP_RES   0x33
 
LPS22HB_INT_CFG register bits definitions
#define LPS22HB_INT_CFG_MASK   0xFF
 
#define LPS22HB_INT_CFG_PHE   (1 << 0)
 
#define LPS22HB_INT_CFG_PLE   (1 << 1)
 
#define LPS22HB_INT_CFG_LIR   (1 << 2)
 
#define LPS22HB_INT_CFG_DIFF_EN   (1 << 3)
 
#define LPS22HB_INT_CFG_RESET_AZ   (1 << 4)
 
#define LPS22HB_INT_CFG_AUTOZERO   (1 << 5)
 
#define LPS22HB_INT_CFG_RESET_ARP   (1 << 6)
 
#define LPS22HB_INT_CFG_AUTORIFP   (1 << 7)
 
LPS22HB_CTRL_REG1 register bits definitions
#define LPS22HB_CTRL_REG1_MASK   0x7F
 
#define LPS22HB_CTRL_REG1_SIM   (1 << 0)
 
#define LPS22HB_CTRL_REG1_BDU   (1 << 1)
 
#define LPS22HB_CTRL_REG1_LPFP_CFG   (1 << 2)
 
#define LPS22HB_CTRL_REG1_LPFP_EN   (1 << 3)
 
#define LPS22HB_CTRL_REG1_ODR0   (1 << 4)
 
#define LPS22HB_CTRL_REG1_ODR1   (1 << 5)
 
#define LPS22HB_CTRL_REG1_ODR2   (1 << 6)
 
LPS22HB_CTRL_REG2 register bits definitions
#define LPS22HB_CTRL_REG2_MASK   0xFD
 
#define LPS22HB_CTRL_REG2_ONE_SHOT   (1 << 0)
 
#define LPS22HB_CTRL_REG2_SWRESET   (1 << 2)
 
#define LPS22HB_CTRL_REG2_I2C_DIS   (1 << 3)
 
#define LPS22HB_CTRL_REG2_IF_ADD_INC   (1 << 4)
 
#define LPS22HB_CTRL_REG2_STOP_ON_FTH   (1 << 5)
 
#define LPS22HB_CTRL_REG2_FIFO_EN   (1 << 6)
 
#define LPS22HB_CTRL_REG2_BOOT   (1 << 7)
 
LPS22HB_CTRL_REG3 register bits definitions
#define LPS22HB_CTRL_REG3_MASK   0xFF
 
#define LPS22HB_CTRL_REG3_INT_S1   (1 << 0)
 
#define LPS22HB_CTRL_REG3_INT_S2   (1 << 1)
 
#define LPS22HB_CTRL_REG3_DRDY   (1 << 2)
 
#define LPS22HB_CTRL_REG3_F_OVR   (1 << 3)
 
#define LPS22HB_CTRL_REG3_F_FTH   (1 << 4)
 
#define LPS22HB_CTRL_REG3_F_FSS5   (1 << 5)
 
#define LPS22HB_CTRL_REG3_PP_OD   (1 << 6)
 
#define LPS22HB_CTRL_REG3_INT_H_L   (1 << 7)
 
LPS22HB_INT_SRC register bits definitions
#define LPS22HB_INT_SRC_MASK   0x87
 
#define LPS22HB_INT_SRC_PH   (1 << 0)
 
#define LPS22HB_INT_SRC_PL   (1 << 1)
 
#define LPS22HB_INT_SRC_IA   (1 << 2)
 
#define LPS22HB_INT_SRC_BOOT_STATUS   (1 << 8)
 
Configuration options
#define LPS22HB_USE_SPI   FALSE
 LPS22HB SPI interface switch. More...
 
#define LPS22HB_SHARED_SPI   FALSE
 LPS22HB shared SPI switch. More...
 
#define LPS22HB_USE_I2C   TRUE
 LPS22HB I2C interface switch. More...
 
#define LPS22HB_SHARED_I2C   FALSE
 LPS22HB shared I2C switch. More...
 
#define LPS22HB_USE_ADVANCED   FALSE
 LPS22HB accelerometer subsystem advanced configurations switch. More...
 

Functions

void lps22hbObjectInit (LPS22HBDriver *devp)
 Initializes an instance. More...
 
void lps22hbStart (LPS22HBDriver *devp, const LPS22HBConfig *config)
 Configures and activates LPS22HB Complex Driver peripheral. More...
 
void lps22hbStop (LPS22HBDriver *devp)
 Deactivates the LPS22HB Complex Driver peripheral. More...
 

LPS22HB data structures and types.

Todo:
Add support for LPS22HB over SPI.
#define _lps22hb_methods_alone
 LPS22HB specific methods. More...
 
#define _lps22hb_methods
 LPS22HB specific methods with inherited ones. More...
 
#define _lps22hb_data
 LPS22HBDriver specific data. More...
 
typedef struct LPS22HBDriver LPS22HBDriver
 Structure representing a LPS22HB driver. More...
 

Detailed Description

LPS22HB MEMS interface module header.

Definition in file lps22hb.h.