38 #include "drv_digital_out.h" 39 #include "drv_digital_in.h" 40 #include "drv_i2c_master.h" 41 #include "drv_spi_master.h" 58 #define PRESSURE_REG_REF_P_XLB 0x8 // Reference pressure (LSB) 59 #define PRESSURE_REG_REF_P_LSB 0x9 // Reference pressure (middle) 60 #define PRESSURE_REG_REF_P_MSB 0xA // Reference pressure (MSB) 61 #define PRESSURE_REG_DEVICE_ID 0xF // Device identification 62 #define PRESSURE_REG_RES_CFG 0x10 // Pressure resolution 63 #define PRESSURE_REG_CTRL_REG1 0x20 // Control register 1 64 #define PRESSURE_REG_CTRL_REG2 0x21 // Control register 2 65 #define PRESSURE_REG_CTRL_REG3 0x22 // Control register 3 66 #define PRESSURE_REG_INT_CFG 0x23 // Interrupt configuration 67 #define PRESSURE_REG_INT_SOURCE 0x24 // Interrupt source 68 #define PRESSURE_REG_THSH_P_LSB 0x25 // Threshold pressure (LSB) 69 #define PRESSURE_REG_THSH_P_MSB 0x26 // Threshold pressure (MSB) 70 #define PRESSURE_REG_STATUS 0x27 // Status register 71 #define PRESSURE_REG_PRESS_OUT_XLB 0x28 // Pressure data (LSB) 72 #define PRESSURE_REG_PRESS_OUT_LSB 0x29 // Pressure data (middle) 73 #define PRESSURE_REG_PRESS_OUT_MSB 0x2A // Pressure data (MSB) 74 #define PRESSURE_REG_TEMP_OUT_LSB 0x2B // Temperature data (LSB) 75 #define PRESSURE_REG_TEMP_OUT_MSB 0x2C // Temperature data (MSB) 76 #define PRESSURE_REG_AMP_CTRL 0x30 // Analog front and control 83 #define PRESSURE_WHO_AM_I 0xBB 95 #define PRESSURE_SET_RES_AVG_1 0x0 96 #define PRESSURE_SET_RES_AVG_2 0x1 97 #define PRESSURE_SET_RES_AVG_4 0x2 98 #define PRESSURE_SET_RES_AVG_8 0x3 99 #define PRESSURE_SET_RES_AVG_16 0x4 100 #define PRESSURE_SET_RES_AVG_32 0x5 101 #define PRESSURE_SET_RES_AVG_64 0x6 102 #define PRESSURE_SET_RES_AVG_128 0x7 103 #define PRESSURE_SET_RES_AVG_256 0x8 104 #define PRESSURE_SET_RES_AVG_384 0x9 105 #define PRESSURE_SET_RES_AVG_512 0xA 112 #define PRESSURE_SET_PWR_UP_DEV 0x80 113 #define PRESSURE_SET_PWR_UP_INT 0x8 114 #define PRESSURE_SET_BLOCK_DATA_UPDATE 0x4 115 #define PRESSURE_SET_PWR_UP_DELTA_PRESS 0x2 116 #define PRESSURE_SET_SPI_3_WIRE 0x1 123 #define PRESSURE_SET_REBOOT_MEM_CONTENT 0x80 124 #define PRESSURE_SET_SW_RESET 0x4 125 #define PRESSURE_SET_AUTOZERO_EN 0x2 126 #define PRESSURE_SET_ONESHOT_EN 0x1 127 #define PRESSURE_SET_NORMAL_MODE 0x0 134 #define PRESSURE_SET_INT_ACT_LOW 0x80 135 #define PRESSURE_SET_INT_OPEN_DRAIN 0x40 136 #define PRESSURE_SET_INT_GND 0x0 137 #define PRESSURE_SET_INT_PRESS_HIGH 0x1 138 #define PRESSURE_SET_INT_PRESS_LOW 0x2 139 #define PRESSURE_SET_INT_P_LOW_OR_HIGH 0x3 140 #define PRESSURE_SET_INT_DATA_RDY 0x4 141 #define PRESSURE_SET_INT_TRI_STATE 0x7 155 #define PRESSURE_FLAG_MASK_P_DATA_OR 0x20 156 #define PRESSURE_FLAG_MASK_T_DATA_OR 0x10 157 #define PRESSURE_FLAG_MASK_P_DATA_RDY 0x2 158 #define PRESSURE_FLAG_MASK_T_DATA_RDY 0x1 165 #define PRESSURE_FLAG_MASK_INT_ACT 0x4 166 #define PRESSURE_FLAG_MASK_DIFF_P_LOW 0x2 167 #define PRESSURE_FLAG_MASK_DIFF_P_HIGH 0x1 176 #define PRESSURE_DATA_NUMBER_MIN 1 177 #define PRESSURE_DATA_NUMBER_MAX 49 186 #define PRESSURE_MAP_MIKROBUS( cfg, mikrobus ) \ 187 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \ 188 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \ 189 cfg.sdo = MIKROBUS( mikrobus, MIKROBUS_MISO ); \ 190 cfg.sdi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \ 191 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT ); \ 192 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \ 193 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ) 390 uint8_t *data_in, uint8_t n_data );
409 uint8_t *data_out, uint8_t n_data );
559 #endif // _PRESSURE_H_ void pressure_cfg_setup(pressure_cfg_t *cfg)
Configuration Object Setup function.
pressure_err_t
Click error code definition.
Definition: pressure.h:211
pressure_err_t pressure_generic_single_write(pressure_t *ctx, uint8_t reg_addr, uint8_t data_in)
Generic Single Write function.
digital_in_t int_pin
Definition: pressure.h:265
uint8_t pressure_read_id(pressure_t *ctx)
ID Read function.
Click configuration structure definition.
Definition: pressure.h:282
pressure_pwr_ctrl_t
Click power control definition.
Definition: pressure.h:249
void pressure_pwr_ctrl(pressure_t *ctx, pressure_pwr_ctrl_t state)
Device Power Control function.
pressure_err_t pressure_init(pressure_t *ctx, pressure_cfg_t *cfg)
Click Initialization function.
digital_out_t cs
Definition: pressure.h:262
void pressure_set_odr(pressure_t *ctx, pressure_odr_t odr)
Output Data Rate Set function.
Definition: pressure.h:225
spi_master_chip_select_polarity_t cs_polarity
Definition: pressure.h:300
void pressure_block_data_update(pressure_t *ctx, pressure_pwr_ctrl_t state)
Data Update Block function.
Definition: pressure.h:239
Definition: pressure.h:237
Definition: pressure.h:238
uint32_t spi_speed
Definition: pressure.h:298
uint8_t pressure_get_int_pin(pressure_t *ctx)
INT Pin Get function.
Definition: pressure.h:236
pressure_drv_select_t drv_sel
Definition: pressure.h:302
Definition: pressure.h:215
uint32_t i2c_speed
Definition: pressure.h:297
pin_name_t cs
Definition: pressure.h:285
void(* pressure_master_transfer_t)(struct pressure_s *, uint8_t, uint8_t *, uint8_t)
Click master transfer function definition.
Definition: pressure.h:206
pressure_drv_select_t
Click driver selector definition.
Definition: pressure.h:223
spi_master_t spi
Definition: pressure.h:269
Definition: pressure.h:226
void pressure_pwr_ctrl_interrupt(pressure_t *ctx, pressure_pwr_ctrl_t state)
Interrupt Power Control function.
Definition: pressure.h:213
pressure_master_transfer_t read
Definition: pressure.h:275
spi_master_mode_t spi_mode
Definition: pressure.h:299
float pressure_get_pressure(pressure_t *ctx)
Pressure Get function.
void pressure_reboot_memory(pressure_t *ctx)
Memory Reboot function.
struct pressure_s pressure_t
Click context object definition.
pin_name_t sck
Definition: pressure.h:286
bool i2c_addr
Definition: pressure.h:296
pressure_master_transfer_t write
Definition: pressure.h:274
Definition: pressure.h:240
i2c_master_t i2c
Definition: pressure.h:268
uint8_t pressure_get_status(pressure_t *ctx, uint8_t bit_mask)
Status Get function.
Definition: pressure.h:214
Definition: pressure.h:251
pin_name_t int_pin
Definition: pressure.h:293
pressure_err_t pressure_generic_multiple_read(pressure_t *ctx, uint8_t reg_addr, uint8_t *data_out, uint8_t n_data)
Generic Multiple Read function.
pin_name_t sda
Definition: pressure.h:290
pressure_odr_t
Click output data rate definition.
Definition: pressure.h:233
uint8_t slave_addr
Definition: pressure.h:272
Definition: pressure.h:241
void pressure_sw_reset(pressure_t *ctx)
Software Reset function.
Definition: pressure.h:242
Definition: pressure.h:216
void pressure_pwr_ctrl_delta_pressure(pressure_t *ctx, pressure_pwr_ctrl_t state)
Delta Pressure Power Control function.
Click context object definition.
Definition: pressure.h:259
pin_name_t chip_select
Definition: pressure.h:273
pin_name_t scl
Definition: pressure.h:289
void pressure_default_cfg(pressure_t *ctx)
Click Default Configuration function.
float pressure_get_temperature(pressure_t *ctx)
Temperature Get function.
pressure_err_t pressure_generic_multiple_write(pressure_t *ctx, uint8_t reg_addr, uint8_t *data_in, uint8_t n_data)
Generic Multiple Write function.
pin_name_t sdo
Definition: pressure.h:287
pin_name_t sdi
Definition: pressure.h:288
Definition: pressure.h:252
Definition: pressure.h:235