PX4 Firmware
PX4 Autopilot Software http://px4.io
|
Driver for the LPS25H barometer connected via I2C or SPI. More...
#include "lps25h.h"
Go to the source code of this file.
Classes | |
class | LPS25H |
struct | lps25h::lps25h_bus_option |
Namespaces | |
lps25h | |
Local functions in support of the shell command. | |
Macros | |
#define | LPS25H_CONVERSION_INTERVAL (1000000 / 25) /* microseconds */ |
#define | ADDR_REF_P_XL 0x08 |
#define | ADDR_REF_P_L 0x09 |
#define | ADDR_REF_P_H 0x0A |
#define | ADDR_WHO_AM_I 0x0F |
#define | ADDR_RES_CONF 0x10 |
#define | ADDR_CTRL_REG1 0x20 |
#define | ADDR_CTRL_REG2 0x21 |
#define | ADDR_CTRL_REG3 0x22 |
#define | ADDR_CTRL_REG4 0x23 |
#define | ADDR_INT_CFG 0x24 |
#define | ADDR_INT_SOURCE 0x25 |
#define | ADDR_STATUS_REG 0x27 |
#define | ADDR_P_OUT_XL 0x28 |
#define | ADDR_P_OUT_L 0x29 |
#define | ADDR_P_OUT_H 0x2A |
#define | ADDR_TEMP_OUT_L 0x2B |
#define | ADDR_TEMP_OUT_H 0x2C |
#define | ADDR_FIFO_CTRL 0x2E |
#define | ADDR_FIFO_STATUS 0x2F |
#define | ADDR_THS_P_L 0x30 |
#define | ADDR_THS_P_H 0x31 |
#define | ADDR_RPDS_L 0x39 |
#define | ADDR_RPDS_H 0x3A |
#define | RES_CONF_AVGT_8 0x00 |
#define | RES_CONF_AVGT_32 0x01 |
#define | RES_CONF_AVGT_128 0x02 |
#define | RES_CONF_AVGT_512 0x03 |
#define | RES_CONF_AVGP_8 0x00 |
#define | RES_CONF_AVGP_32 0x04 |
#define | RES_CONF_AVGP_128 0x08 |
#define | RES_CONF_AVGP_512 0x0C |
#define | CTRL_REG1_SIM (1 << 0) |
#define | CTRL_REG1_RESET_AZ (1 << 1) |
#define | CTRL_REG1_BDU (1 << 2) |
#define | CTRL_REG1_DIFF_EN (1 << 3) |
#define | CTRL_REG1_PD (1 << 7) |
#define | CTRL_REG1_ODR_SINGLE (0 << 4) |
#define | CTRL_REG1_ODR_1HZ (1 << 4) |
#define | CTRL_REG1_ODR_7HZ (2 << 4) |
#define | CTRL_REG1_ODR_12HZ5 (3 << 4) |
#define | CTRL_REG1_ODR_25HZ (4 << 4) |
#define | CTRL_REG2_ONE_SHOT (1 << 0) |
#define | CTRL_REG2_AUTO_ZERO (1 << 1) |
#define | CTRL_REG2_SWRESET (1 << 2) |
#define | CTRL_REG2_FIFO_MEAN_DEC (1 << 4) |
#define | CTRL_REG2_WTM_EN (1 << 5) |
#define | CTRL_REG2_FIFO_EN (1 << 6) |
#define | CTRL_REG2_BOOT (1 << 7) |
#define | CTRL_REG3_INT1_S_DATA 0x0 |
#define | CTRL_REG3_INT1_S_P_HIGH 0x1 |
#define | CTRL_REG3_INT1_S_P_LOW 0x2 |
#define | CTRL_REG3_INT1_S_P_LIM 0x3 |
#define | CTRL_REG3_PP_OD (1 << 6) |
#define | CTRL_REG3_INT_H_L (1 << 7) |
#define | CTRL_REG4_P1_DRDY (1 << 0) |
#define | CTRL_REG4_P1_OVERRUN (1 << 1) |
#define | CTRL_REG4_P1_WTM (1 << 2) |
#define | CTRL_REG4_P1_EMPTY (1 << 3) |
#define | INTERRUPT_CFG_PH_E (1 << 0) |
#define | INTERRUPT_CFG_PL_E (1 << 1) |
#define | INTERRUPT_CFG_LIR (1 << 2) |
#define | INT_SOURCE_PH (1 << 0) |
#define | INT_SOURCE_PL (1 << 1) |
#define | INT_SOURCE_IA (1 << 2) |
#define | STATUS_REG_T_DA (1 << 0) |
#define | STATUS_REG_P_DA (1 << 1) |
#define | STATUS_REG_T_OR (1 << 4) |
#define | STATUS_REG_P_OR (1 << 5) |
#define | FIFO_CTRL_WTM_FMEAN_2 0x01 |
#define | FIFO_CTRL_WTM_FMEAN_4 0x03 |
#define | FIFO_CTRL_WTM_FMEAN_8 0x07 |
#define | FIFO_CTRL_WTM_FMEAN_16 0x0F |
#define | FIFO_CTRL_WTM_FMEAN_32 0x1F |
#define | FIFO_CTRL_F_MODE_BYPASS (0x0 << 5) |
#define | FIFO_CTRL_F_MODE_FIFO (0x1 << 5) |
#define | FIFO_CTRL_F_MODE_STREAM (0x2 << 5) |
#define | FIFO_CTRL_F_MODE_SFIFO (0x3 << 5) |
#define | FIFO_CTRL_F_MODE_BSTRM (0x4 << 5) |
#define | FIFO_CTRL_F_MODE_FMEAN (0x6 << 5) |
#define | FIFO_CTRL_F_MODE_BFIFO (0x7 << 5) |
#define | FIFO_STATUS_EMPTY (1 << 5) |
#define | FIFO_STATUS_FULL (1 << 6) |
#define | FIFO_STATUS_WTM (1 << 7) |
#define | NUM_BUS_OPTIONS (sizeof(bus_options)/sizeof(bus_options[0])) |
Enumerations | |
enum | LPS25H_BUS { LPS25H_BUS_ALL = 0, LPS25H_BUS_I2C_INTERNAL, LPS25H_BUS_I2C_EXTERNAL, LPS25H_BUS_SPI } |
Functions | |
__EXPORT int | lps25h_main (int argc, char *argv[]) |
void | lps25h::start (enum LPS25H_BUS busid) |
Start the driver. More... | |
bool | lps25h::start_bus (struct lps25h_bus_option &bus) |
start driver for a specific bus option More... | |
struct lps25h_bus_option & | lps25h::find_bus (enum LPS25H_BUS busid) |
find a bus structure for a busid More... | |
void | lps25h::test (enum LPS25H_BUS busid) |
Perform some basic functional tests on the driver; make sure we can collect data from the sensor in polled and automatic modes. More... | |
void | lps25h::reset (enum LPS25H_BUS busid) |
Reset the driver. More... | |
void | lps25h::info () |
Print a little info about the driver. More... | |
void | lps25h::usage () |
Prints info about the driver argument usage. More... | |
Variables | |
struct lps25h::lps25h_bus_option | lps25h::bus_options [] |
Driver for the LPS25H barometer connected via I2C or SPI.
Definition in file lps25h.cpp.
#define ADDR_CTRL_REG1 0x20 |
Definition at line 54 of file lps25h.cpp.
Referenced by LSM303D::accel_set_samplerate(), LSM303D::reset(), LPS25H::reset(), LIS3MDL::set_default_register_values(), and LIS3MDL::set_excitement().
#define ADDR_CTRL_REG2 0x21 |
Definition at line 55 of file lps25h.cpp.
Referenced by LSM303D::accel_set_onchip_lowpass_filter_bandwidth(), LSM303D::accel_set_range(), LPS25H::measure(), LPS25H::reset(), LIS3MDL::set_default_register_values(), and LIS3MDL::set_range().
#define ADDR_CTRL_REG3 0x22 |
Definition at line 56 of file lps25h.cpp.
Referenced by LIS3MDL::measure(), LSM303D::reset(), and LIS3MDL::set_default_register_values().
#define ADDR_CTRL_REG4 0x23 |
Definition at line 57 of file lps25h.cpp.
Referenced by LSM303D::reset(), and LIS3MDL::set_default_register_values().
#define ADDR_FIFO_CTRL 0x2E |
Definition at line 68 of file lps25h.cpp.
#define ADDR_FIFO_STATUS 0x2F |
Definition at line 69 of file lps25h.cpp.
#define ADDR_INT_CFG 0x24 |
Definition at line 58 of file lps25h.cpp.
#define ADDR_INT_SOURCE 0x25 |
Definition at line 59 of file lps25h.cpp.
#define ADDR_P_OUT_H 0x2A |
Definition at line 64 of file lps25h.cpp.
#define ADDR_P_OUT_L 0x29 |
Definition at line 63 of file lps25h.cpp.
#define ADDR_P_OUT_XL 0x28 |
Definition at line 62 of file lps25h.cpp.
#define ADDR_REF_P_H 0x0A |
Definition at line 51 of file lps25h.cpp.
#define ADDR_REF_P_L 0x09 |
Definition at line 50 of file lps25h.cpp.
#define ADDR_REF_P_XL 0x08 |
Definition at line 49 of file lps25h.cpp.
#define ADDR_RES_CONF 0x10 |
Definition at line 53 of file lps25h.cpp.
#define ADDR_RPDS_H 0x3A |
Definition at line 74 of file lps25h.cpp.
#define ADDR_RPDS_L 0x39 |
Definition at line 73 of file lps25h.cpp.
#define ADDR_STATUS_REG 0x27 |
Definition at line 61 of file lps25h.cpp.
Referenced by LPS25H::collect().
#define ADDR_TEMP_OUT_H 0x2C |
Definition at line 66 of file lps25h.cpp.
#define ADDR_TEMP_OUT_L 0x2B |
Definition at line 65 of file lps25h.cpp.
#define ADDR_THS_P_H 0x31 |
Definition at line 71 of file lps25h.cpp.
#define ADDR_THS_P_L 0x30 |
Definition at line 70 of file lps25h.cpp.
#define ADDR_WHO_AM_I 0x0F |
Definition at line 52 of file lps25h.cpp.
Referenced by LPS25H_I2C::probe(), and LSM303D::probe().
#define CTRL_REG1_BDU (1 << 2) |
Definition at line 88 of file lps25h.cpp.
#define CTRL_REG1_DIFF_EN (1 << 3) |
Definition at line 89 of file lps25h.cpp.
#define CTRL_REG1_ODR_12HZ5 (3 << 4) |
Definition at line 94 of file lps25h.cpp.
#define CTRL_REG1_ODR_1HZ (1 << 4) |
Definition at line 92 of file lps25h.cpp.
#define CTRL_REG1_ODR_25HZ (4 << 4) |
Definition at line 95 of file lps25h.cpp.
#define CTRL_REG1_ODR_7HZ (2 << 4) |
Definition at line 93 of file lps25h.cpp.
#define CTRL_REG1_ODR_SINGLE (0 << 4) |
Definition at line 91 of file lps25h.cpp.
#define CTRL_REG1_PD (1 << 7) |
Definition at line 90 of file lps25h.cpp.
Referenced by LPS25H::reset().
#define CTRL_REG1_RESET_AZ (1 << 1) |
Definition at line 87 of file lps25h.cpp.
#define CTRL_REG1_SIM (1 << 0) |
Definition at line 86 of file lps25h.cpp.
#define CTRL_REG2_AUTO_ZERO (1 << 1) |
Definition at line 98 of file lps25h.cpp.
#define CTRL_REG2_BOOT (1 << 7) |
Definition at line 103 of file lps25h.cpp.
Referenced by LPS25H::reset().
#define CTRL_REG2_FIFO_EN (1 << 6) |
Definition at line 102 of file lps25h.cpp.
#define CTRL_REG2_FIFO_MEAN_DEC (1 << 4) |
Definition at line 100 of file lps25h.cpp.
#define CTRL_REG2_ONE_SHOT (1 << 0) |
Definition at line 97 of file lps25h.cpp.
Referenced by LPS25H::measure().
#define CTRL_REG2_SWRESET (1 << 2) |
Definition at line 99 of file lps25h.cpp.
Referenced by LPS25H::reset().
#define CTRL_REG2_WTM_EN (1 << 5) |
Definition at line 101 of file lps25h.cpp.
#define CTRL_REG3_INT1_S_DATA 0x0 |
Definition at line 105 of file lps25h.cpp.
#define CTRL_REG3_INT1_S_P_HIGH 0x1 |
Definition at line 106 of file lps25h.cpp.
#define CTRL_REG3_INT1_S_P_LIM 0x3 |
Definition at line 108 of file lps25h.cpp.
#define CTRL_REG3_INT1_S_P_LOW 0x2 |
Definition at line 107 of file lps25h.cpp.
#define CTRL_REG3_INT_H_L (1 << 7) |
Definition at line 110 of file lps25h.cpp.
#define CTRL_REG3_PP_OD (1 << 6) |
Definition at line 109 of file lps25h.cpp.
#define CTRL_REG4_P1_DRDY (1 << 0) |
Definition at line 112 of file lps25h.cpp.
#define CTRL_REG4_P1_EMPTY (1 << 3) |
Definition at line 115 of file lps25h.cpp.
#define CTRL_REG4_P1_OVERRUN (1 << 1) |
Definition at line 113 of file lps25h.cpp.
#define CTRL_REG4_P1_WTM (1 << 2) |
Definition at line 114 of file lps25h.cpp.
#define FIFO_CTRL_F_MODE_BFIFO (0x7 << 5) |
Definition at line 141 of file lps25h.cpp.
#define FIFO_CTRL_F_MODE_BSTRM (0x4 << 5) |
Definition at line 139 of file lps25h.cpp.
#define FIFO_CTRL_F_MODE_BYPASS (0x0 << 5) |
Definition at line 135 of file lps25h.cpp.
#define FIFO_CTRL_F_MODE_FIFO (0x1 << 5) |
Definition at line 136 of file lps25h.cpp.
#define FIFO_CTRL_F_MODE_FMEAN (0x6 << 5) |
Definition at line 140 of file lps25h.cpp.
#define FIFO_CTRL_F_MODE_SFIFO (0x3 << 5) |
Definition at line 138 of file lps25h.cpp.
#define FIFO_CTRL_F_MODE_STREAM (0x2 << 5) |
Definition at line 137 of file lps25h.cpp.
#define FIFO_CTRL_WTM_FMEAN_16 0x0F |
Definition at line 133 of file lps25h.cpp.
#define FIFO_CTRL_WTM_FMEAN_2 0x01 |
Definition at line 130 of file lps25h.cpp.
#define FIFO_CTRL_WTM_FMEAN_32 0x1F |
Definition at line 134 of file lps25h.cpp.
#define FIFO_CTRL_WTM_FMEAN_4 0x03 |
Definition at line 131 of file lps25h.cpp.
#define FIFO_CTRL_WTM_FMEAN_8 0x07 |
Definition at line 132 of file lps25h.cpp.
#define FIFO_STATUS_EMPTY (1 << 5) |
Definition at line 143 of file lps25h.cpp.
#define FIFO_STATUS_FULL (1 << 6) |
Definition at line 144 of file lps25h.cpp.
#define FIFO_STATUS_WTM (1 << 7) |
Definition at line 145 of file lps25h.cpp.
#define INT_SOURCE_IA (1 << 2) |
Definition at line 123 of file lps25h.cpp.
#define INT_SOURCE_PH (1 << 0) |
Definition at line 121 of file lps25h.cpp.
#define INT_SOURCE_PL (1 << 1) |
Definition at line 122 of file lps25h.cpp.
#define INTERRUPT_CFG_LIR (1 << 2) |
Definition at line 119 of file lps25h.cpp.
#define INTERRUPT_CFG_PH_E (1 << 0) |
Definition at line 117 of file lps25h.cpp.
#define INTERRUPT_CFG_PL_E (1 << 1) |
Definition at line 118 of file lps25h.cpp.
#define LPS25H_CONVERSION_INTERVAL (1000000 / 25) /* microseconds */ |
Definition at line 47 of file lps25h.cpp.
Referenced by LPS25H::ioctl(), LPS25H::read(), and LPS25H::Run().
#define NUM_BUS_OPTIONS (sizeof(bus_options)/sizeof(bus_options[0])) |
Definition at line 686 of file lps25h.cpp.
Referenced by lps25h::find_bus(), lps25h::info(), and lps25h::start().
#define RES_CONF_AVGP_128 0x08 |
Definition at line 83 of file lps25h.cpp.
#define RES_CONF_AVGP_32 0x04 |
Definition at line 82 of file lps25h.cpp.
#define RES_CONF_AVGP_512 0x0C |
Definition at line 84 of file lps25h.cpp.
#define RES_CONF_AVGP_8 0x00 |
Definition at line 81 of file lps25h.cpp.
#define RES_CONF_AVGT_128 0x02 |
Definition at line 79 of file lps25h.cpp.
#define RES_CONF_AVGT_32 0x01 |
Definition at line 78 of file lps25h.cpp.
#define RES_CONF_AVGT_512 0x03 |
Definition at line 80 of file lps25h.cpp.
#define RES_CONF_AVGT_8 0x00 |
Definition at line 77 of file lps25h.cpp.
#define STATUS_REG_P_DA (1 << 1) |
Definition at line 126 of file lps25h.cpp.
#define STATUS_REG_P_OR (1 << 5) |
Definition at line 128 of file lps25h.cpp.
#define STATUS_REG_T_DA (1 << 0) |
Definition at line 125 of file lps25h.cpp.
#define STATUS_REG_T_OR (1 << 4) |
Definition at line 127 of file lps25h.cpp.
enum LPS25H_BUS |
Enumerator | |
---|---|
LPS25H_BUS_ALL | |
LPS25H_BUS_I2C_INTERNAL | |
LPS25H_BUS_I2C_EXTERNAL | |
LPS25H_BUS_SPI |
Definition at line 147 of file lps25h.cpp.
int lps25h_main | ( | int | argc, |
char * | argv[] | ||
) |
Definition at line 901 of file lps25h.cpp.
References errx, lps25h::info(), LPS25H_BUS_ALL, LPS25H_BUS_I2C_EXTERNAL, LPS25H_BUS_I2C_INTERNAL, LPS25H_BUS_SPI, lps25h::reset(), lps25h::start(), lps25h::test(), and lps25h::usage().