ChibiOS/EX  1.1.2
lps25h.h File Reference

LPS25H MEMS interface module header. More...

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

Go to the source code of this file.

Data Structures

struct  LPS25HConfig
 LPS25H configuration structure. More...
 
struct  LPS25HVMT
 LPS25H virtual methods table. More...
 
struct  LPS25HDriver
 LPS25H 2-axis barometer/thermometer class. More...
 

Macros

#define lps25hBarometerGetAxesNumber(devp)   barometerGetAxesNumber(&((devp)->baro_if))
 Return the number of axes of the BaseBarometer. More...
 
#define lps25hBarometerReadRaw(devp, axes)   barometerReadRaw(&((devp)->baro_if), axes)
 Retrieves raw data from the BaseBarometer. More...
 
#define lps25hBarometerReadCooked(devp, axes)   barometerReadCooked(&((devp)->baro_if), axes)
 Retrieves cooked data from the BaseBarometer. More...
 
#define lps25hBarometerSetBias(devp, bp)   barometerSetBias(&((devp)->baro_if), bp)
 Set bias values for the BaseBarometer. More...
 
#define lps25hBarometerResetBias(devp)   barometerResetBias(&((devp)->baro_if))
 Reset bias values for the BaseBarometer. More...
 
#define lps25hBarometerSetSensitivity(devp, sp)   barometerSetSensitivity(&((devp)->baro_if), sp)
 Set sensitivity values for the BaseBarometer. More...
 
#define lps25hBarometerResetSensitivity(devp)   barometerResetSensitivity(&((devp)->baro_if))
 Reset sensitivity values for the BaseBarometer. More...
 
#define lps25hThermometerGetAxesNumber(devp)   thermometerGetAxesNumber(&((devp)->thermo_if))
 Return the number of axes of the BaseThermometer. More...
 
#define lps25hThermometerReadRaw(devp, axes)   thermometerReadRaw(&((devp)->thermo_if), axes)
 Retrieves raw data from the BaseThermometer. More...
 
#define lps25hThermometerReadCooked(devp, axes)   thermometerReadCooked(&((devp)->thermo_if), axes)
 Retrieves cooked data from the BaseThermometer. More...
 
#define lps25hThermometerSetBias(devp, bp)   thermometerSetBias(&((devp)->thermo_if), bp)
 Set bias values for the BaseThermometer. More...
 
#define lps25hThermometerResetBias(devp)   thermometerResetBias(&((devp)->thermo_if))
 Reset bias values for the BaseThermometer. More...
 
#define lps25hThermometerSetSensitivity(devp, sp)   thermometerSetSensitivity(&((devp)->thermo_if), sp)
 Set sensitivity values for the BaseThermometer. More...
 
#define lps25hThermometerResetSensitivity(devp)   thermometerResetSensitivity(&((devp)->thermo_if))
 Reset sensitivity values for the BaseThermometer. More...
 
Version identification
#define EX_LPS25H_VERSION   "1.1.2"
 LPS25H driver version string. More...
 
#define EX_LPS25H_MAJOR   1
 LPS25H driver version major number. More...
 
#define EX_LPS25H_MINOR   1
 LPS25H driver version minor number. More...
 
#define EX_LPS25H_PATCH   2
 LPS25H driver version patch number. More...
 
#define LPS25H_BARO_NUMBER_OF_AXES   1U
 LPS25H barometer subsystem characteristics. More...
 
#define LPS25H_THERMO_NUMBER_OF_AXES   1U
 LPS25H thermometer subsystem characteristics. More...
 
LPS25H communication interfaces related bit masks
#define LPS25H_DI_MASK   0xFF
 
#define LPS25H_DI(n)   (1 << n)
 
#define LPS25H_AD_MASK   0x3F
 
#define LPS25H_AD(n)   (1 << n)
 
#define LPS25H_MS   (1 << 6)
 
#define LPS25H_RW   (1 << 7)
 
#define LPS25H_SUB_MS   (1 << 7)
 
LPS25H register addresses
#define LPS25H_AD_REF_P_XL   0x08
 
#define LPS25H_AD_REF_P_L   0x09
 
#define LPS25H_AD_REF_P_H   0x0A
 
#define LPS25H_AD_WHO_AM_I   0x0F
 
#define LPS25H_AD_RES_CONF   0x10
 
#define LPS25H_AD_CTRL_REG1   0x20
 
#define LPS25H_AD_CTRL_REG2   0x21
 
#define LPS25H_AD_CTRL_REG3   0x22
 
#define LPS25H_AD_CTRL_REG4   0x23
 
#define LPS25H_AD_INT_CFG   0x24
 
#define LPS25H_AD_INT_SRC   0x25
 
#define LPS25H_AD_STATUS_REG   0x27
 
#define LPS25H_AD_PRESS_OUT_XL   0x28
 
#define LPS25H_AD_PRESS_OUT_L   0x29
 
#define LPS25H_AD_PRESS_OUT_H   0x2A
 
#define LPS25H_AD_TEMP_OUT_L   0x2B
 
#define LPS25H_AD_TEMP_OUT_H   0x2C
 
#define LPS25H_AD_FIFO_CTRL   0x2E
 
#define LPS25H_AD_FIFO_SRC   0x2F
 
#define LPS25H_AD_THS_P_L   0x30
 
#define LPS25H_AD_THS_P_H   0x31
 
#define LPS25H_AD_RPDS_L   0x39
 
#define LPS25H_AD_RPDS_H   0x3A
 
LPS25H_CTRL_REG1 register bits definitions
#define LPS25H_CTRL_REG1_MASK   0xFF
 
#define LPS25H_CTRL_REG1_SIM   (1 << 0)
 
#define LPS25H_CTRL_REG1_RESET_AZ   (1 << 1)
 
#define LPS25H_CTRL_REG1_BDU   (1 << 2)
 
#define LPS25H_CTRL_REG1_DIFF_EN   (1 << 3)
 
#define LPS25H_CTRL_REG1_ODR0   (1 << 4)
 
#define LPS25H_CTRL_REG1_ODR1   (1 << 5)
 
#define LPS25H_CTRL_REG1_ODR2   (1 << 6)
 
#define LPS25H_CTRL_REG1_PD   (1 << 7)
 
LPS25H_CTRL_REG2 register bits definitions
#define LPS25H_CTRL_REG2_MASK   0xF3
 
#define LPS25H_CTRL_REG2_ONE_SHOT   (1 << 0)
 
#define LPS25H_CTRL_REG2_AUTO_ZERO   (1 << 1)
 
#define LPS25H_CTRL_REG2_SWRESET   (1 << 2)
 
#define LPS25H_CTRL_REG2_FIFO_MEAN_DEC   (1 << 4)
 
#define LPS25H_CTRL_REG2_WTM_EN   (1 << 5)
 
#define LPS25H_CTRL_REG2_FIFO_EN   (1 << 6)
 
#define LPS25H_CTRL_REG2_BOOT   (1 << 7)
 
LPS25H_CTRL_REG3 register bits definitions
#define LPS25H_CTRL_REG3_MASK   0xC3
 
#define LPS25H_CTRL_REG3_INT_S1   (1 << 0)
 
#define LPS25H_CTRL_REG3_INT_S2   (1 << 1)
 
#define LPS25H_CTRL_REG3_PP_OD   (1 << 6)
 
#define LPS25H_CTRL_REG3_INT_H_L   (1 << 7)
 
LPS25H_CTRL_REG4 register bits definitions
#define LPS25H_CTRL_REG4_MASK   0x0F
 
#define LPS25H_CTRL_REG4_P1_DRDY   (1 << 0)
 
#define LPS25H_CTRL_REG4_P1_OVERRUN   (1 << 1)
 
#define LPS25H_CTRL_REG4_P1_WTM   (1 << 2)
 
#define LPS25H_CTRL_REG4_P1_EMPTY   (1 << 3)
 
LPS25H_INT1_CFG register bits definitions
#define LPS25H_INT1_CFG_MASK   0x07
 
#define LPS25H_INT1_CFG_PH_E   (1 << 0)
 
#define LPS25H_INT1_CFG_PL_E   (1 << 1)
 
#define LPS25H_INT1_CFG_LIR   (1 << 2)
 
LPS25H_INT1_SRC register bits definitions
#define LPS25H_INT1_SRC_MASK   0x07
 
#define LPS25H_INT1_SRC_PH   (1 << 0)
 
#define LPS25H_INT1_SRC_PL   (1 << 1)
 
#define LPS25H_INT1_SRC_IA   (1 << 2)
 
Configuration options
#define LPS25H_USE_SPI   FALSE
 LPS25H SPI interface switch. More...
 
#define LPS25H_SHARED_SPI   FALSE
 LPS25H shared SPI switch. More...
 
#define LPS25H_USE_I2C   TRUE
 LPS25H I2C interface switch. More...
 
#define LPS25H_SHARED_I2C   FALSE
 LPS25H shared I2C switch. More...
 
#define LPS25H_USE_ADVANCED   FALSE
 LPS25H advanced configurations switch. More...
 

Functions

void lps25hObjectInit (LPS25HDriver *devp)
 Initializes an instance. More...
 
void lps25hStart (LPS25HDriver *devp, const LPS25HConfig *config)
 Configures and activates LPS25H Complex Driver peripheral. More...
 
void lps25hStop (LPS25HDriver *devp)
 Deactivates the LPS25H Complex Driver peripheral. More...
 

LPS25H data structures and types.

Todo:
Add support for LPS25H over SPI.
#define _lps25h_methods_alone
 LPS25H specific methods. More...
 
#define _lps25h_methods
 LPS25H specific methods with inherited ones. More...
 
#define _lps25h_data
 LPS25HDriver specific data. More...
 
typedef struct LPS25HDriver LPS25HDriver
 Structure representing a LPS25H driver. More...
 

Detailed Description

LPS25H MEMS interface module header.

Definition in file lps25h.h.