ChibiOS 21.11.4
lps25h.h File Reference

LPS25H MEMS interface module header. More...

#include "ex_barometer.h"
#include "ex_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)
 Return the number of axes of the BaseBarometer.
#define lps25hBarometerReadRaw(devp, axes)
 Retrieves raw data from the BaseBarometer.
#define lps25hBarometerReadCooked(devp, axes)
 Retrieves cooked data from the BaseBarometer.
#define lps25hBarometerSetBias(devp, bp)
 Set bias values for the BaseBarometer.
#define lps25hBarometerResetBias(devp)
 Reset bias values for the BaseBarometer.
#define lps25hBarometerSetSensitivity(devp, sp)
 Set sensitivity values for the BaseBarometer.
#define lps25hBarometerResetSensitivity(devp)
 Reset sensitivity values for the BaseBarometer.
#define lps25hThermometerGetAxesNumber(devp)
 Return the number of axes of the BaseThermometer.
#define lps25hThermometerReadRaw(devp, axes)
 Retrieves raw data from the BaseThermometer.
#define lps25hThermometerReadCooked(devp, axes)
 Retrieves cooked data from the BaseThermometer.
#define lps25hThermometerSetBias(devp, bp)
 Set bias values for the BaseThermometer.
#define lps25hThermometerResetBias(devp)
 Reset bias values for the BaseThermometer.
#define lps25hThermometerSetSensitivity(devp, sp)
 Set sensitivity values for the BaseThermometer.
#define lps25hThermometerResetSensitivity(devp)
 Reset sensitivity values for the BaseThermometer.
Version identification
#define EX_LPS25H_VERSION   "1.1.3"
 LPS25H driver version string.
#define EX_LPS25H_MAJOR   1
 LPS25H driver version major number.
#define EX_LPS25H_MINOR   1
 LPS25H driver version minor number.
#define EX_LPS25H_PATCH   3
 LPS25H driver version patch number.
#define LPS25H_BARO_NUMBER_OF_AXES   1U
 LPS25H barometer subsystem characteristics.
#define LPS25H_BARO_SENS   0.00024414f
#define LPS25H_BARO_BIAS   0.0f
#define LPS25H_THERMO_NUMBER_OF_AXES   1U
 LPS25H thermometer subsystem characteristics.
#define LPS25H_THERMO_SENS   0.00208333f
#define LPS25H_THERMO_BIAS   -42.5f
LPS25H communication interfaces related bit masks
#define LPS25H_DI_MASK   0xFF
#define LPS25H_DI(n)
#define LPS25H_AD_MASK   0x3F
#define LPS25H_AD(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.
#define LPS25H_SHARED_SPI   FALSE
 LPS25H shared SPI switch.
#define LPS25H_USE_I2C   TRUE
 LPS25H I2C interface switch.
#define LPS25H_SHARED_I2C   FALSE
 LPS25H shared I2C switch.
#define LPS25H_USE_ADVANCED   FALSE
 LPS25H advanced configurations switch.

Functions

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

LPS25H data structures and types.

#define _lps25h_methods_alone
 LPS25H specific methods.
#define _lps25h_methods
 LPS25H specific methods with inherited ones.
#define _lps25h_data
 LPS25HDriver specific data.
enum  lps25h_sad_t { LPS25H_SAD_GND = 0x5C , LPS25H_SAD_VCC = 0x5D }
 LPS25H slave address. More...
enum  lps25h_odr_t {
  LPS25H_ODR_ONE_SHOT = 0x00 , LPS25H_ODR_1HZ = 0x10 , LPS25H_ODR_7HZ = 0x20 , LPS25H_ODR_12P5HZ = 0x30 ,
  LPS25H_ODR_25HZ = 0x40
}
 LPS25H output data rate and bandwidth. More...
enum  lps25h_avgp_t { LPS25H_AVGP_8 = 0x00 , LPS25H_AVGP_32 = 0x01 , LPS25H_AVGP_128 = 0x02 , LPS25H_AVGP_512 = 0x03 }
 LPS25H pressure resolution. More...
enum  lps25h_avgt_t { LPS25H_AVGT_8 = 0x00 , LPS25H_AVGT_32 = 0x04 , LPS25H_AVGT_128 = 0x08 , LPS25H_AVGT_512 = 0x0C }
 LPS25H temperature resolution. More...
enum  lps25h_bdu_t { LPS25H_BDU_CONTINUOUS = 0x00 , LPS25H_BDU_BLOCKED = 0x40 }
 LPS25H block data update. More...
enum  lps25h_state_t { LPS25H_UNINIT = 0 , LPS25H_STOP = 1 , LPS25H_READY = 2 }
 Driver state machine possible states. More...
typedef struct LPS25HDriver LPS25HDriver
 Structure representing a LPS25H driver.

Detailed Description

LPS25H MEMS interface module header.

Definition in file lps25h.h.