38 #include "drv_digital_out.h" 39 #include "drv_i2c_master.h" 40 #include "drv_spi_master.h" 53 #define PRESSURE9_MAP_MIKROBUS( cfg, mikrobus ) \ 54 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \ 55 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \ 56 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \ 57 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \ 58 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \ 59 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \ 66 #define PRESSURE9_MASTER_I2C 0 67 #define PRESSURE9_MASTER_SPI 1 74 #define PRESSURE9_RETVAL uint8_t 76 #define PRESSURE9_OK 0x00 77 #define PRESSURE9_INIT_ERROR 0xFF 84 #define PRESSURE9_REG_PRESSURE_DATA_B2 0x00 85 #define PRESSURE9_REG_PRESSURE_DATA_B1 0x01 86 #define PRESSURE9_REG_PRESSURE_DATA_B0 0x02 87 #define PRESSURE9_REG_TEMPERATRE_DATA_B2 0x03 88 #define PRESSURE9_REG_TEMPERATRE_DATA_B1 0x04 89 #define PRESSURE9_REG_TEMPERATRE_DATA_B0 0x05 90 #define PRESSURE9_REG_PRESSURE_CONFIG 0x06 91 #define PRESSURE9_REG_TEMPERATURE_CONFIG 0x07 92 #define PRESSURE9_REG_MEASUREMENT_CONFIG 0x08 93 #define PRESSURE9_REG_CONFIGURATION 0x09 94 #define PRESSURE9_REG_INT_STATUS 0x0A 95 #define PRESSURE9_REG_WATERMARK_CONFIG 0x0B 96 #define PRESSURE9_REG_FIFO_STATUS 0x0C 97 #define PRESSURE9_REG_RESET 0x0D 98 #define PRESSURE9_REG_PRODUCT_ID 0x1D 99 #define PRESSURE9_T_GAIN_COEFF 0x20 100 #define PRESSURE9_T_DVBE_COEFF 0x21 101 #define PRESSURE9_T_VBE_COEFF 0x22 102 #define PRESSURE9_COEFF_REG_1 0x26 103 #define PRESSURE9_COEFF_REG_2 0x27 104 #define PRESSURE9_COEFF_REG_3 0x28 105 #define PRESSURE9_COEFF_REG_4 0x29 106 #define PRESSURE9_COEFF_REG_5 0x2A 107 #define PRESSURE9_COEFF_REG_6 0x2B 108 #define PRESSURE9_COEFF_REG_7 0x2C 109 #define PRESSURE9_COEFF_REG_8 0x2D 110 #define PRESSURE9_COEFF_REG_9 0x2E 111 #define PRESSURE9_COEFF_REG_10 0x2F 112 #define PRESSURE9_COEFF_REG_11 0x30 113 #define PRESSURE9_COEFF_REG_12 0x31 114 #define PRESSURE9_COEFF_REG_13 0x32 115 #define PRESSURE9_COEFF_REG_14 0x33 116 #define PRESSURE9_COEFF_REG_15 0x34 117 #define PRESSURE9_COEFF_REG_16 0x35 118 #define PRESSURE9_COEFF_REG_17 0x36 119 #define PRESSURE9_COEFF_REG_18 0x37 126 #define PRESSURE9_PTCFG_RATE_1_SAMPLE_SEC 0x00 127 #define PRESSURE9_PTCFG_RATE_2_SAMPLES_SEC 0x10 128 #define PRESSURE9_PTCFG_RATE_4_SAMPLES_SEC 0x20 129 #define PRESSURE9_PTCFG_RATE_8_SAMPLES_SEC 0x30 130 #define PRESSURE9_PTCFG_RATE_16_SAMPLES_SEC 0x40 131 #define PRESSURE9_PTCFG_RATE_32_SAMPLES_SEC 0x50 132 #define PRESSURE9_PTCFG_RATE_64_SAMPLES_SEC 0x60 133 #define PRESSURE9_PTCFG_RATE_128_SAMPLES_SEC 0x70 134 #define PRESSURE9_PTCFG_RES_X1_256_SAMPLES 0x00 135 #define PRESSURE9_PTCFG_RES_X2_512_SAMPLES 0x01 136 #define PRESSURE9_PTCFG_RES_X4_1024_SAMPLES 0x02 137 #define PRESSURE9_PTCFG_RES_X8_2048_SAMPLES 0x03 138 #define PRESSURE9_PTCFG_RES_X16_4096_SAMPLES 0x04 139 #define PRESSURE9_PTCFG_RES_X32_8192_SAMPLES 0x05 140 #define PRESSURE9_PTCFG_RES_X64_16384_SAMPLES 0x06 141 #define PRESSURE9_PTCFG_RES_X128_32768_SAMPLES 0x07 147 #define PRESSURE9_MCFG_IDLE_STOP_BACKGROUND 0x00 148 #define PRESSURE9_MCFG_PRESSURE_MEASUREMENT 0x01 149 #define PRESSURE9_MCFG_TEMPERATURE_MEASUREMENT 0x02 150 #define PRESSURE9_MCFG_TEMP_AND_PRESS_ONE_SHOT 0x03 151 #define PRESSURE9_MCFG_PRESSURE_MEASUREMENT_CONT 0x05 152 #define PRESSURE9_MCFG_TEMPERATURE_MEASUREMENT_CONT 0x06 153 #define PRESSURE9_MCFG_TEMP_AND_PRESS_CONT 0x07 159 #define PRESSURE9_CFG_SINT_NO_INT_ENABLED 0x00 160 #define PRESSURE9_CFG_SINT_PRESS_INT_ENABLED 0x10 161 #define PRESSURE9_CFG_SINT_TEMP_INT_ENABLED 0x20 162 #define PRESSURE9_CFG_SINT_PRESS_AND_TEMP_INT_EN 0x30 163 #define PRESSURE9_CFG_SINT_FIFO_WM_INT_ENABLED 0x40 164 #define PRESSURE9_CFG_SINT_FIFO_FULL_INT_ENABLED 0x80 165 #define PRESSURE9_CFG_PINT_INT_ACTIVE_LOW 0x00 166 #define PRESSURE9_CFG_PINT_INT_ACTIVE_HIGH 0x08 167 #define PRESSURE9_CFG_FIFO_SF_STREAMING_MODE 0x00 168 #define PRESSURE9_CFG_FIFO_SF_FULL_MODE 0x04 169 #define PRESSURE9_CFG_FIFO_EN_ENABLED 0x02 170 #define PRESSURE9_CFG_FIFO_EN_DISABLED 0x00 171 #define PRESSURE9_CFG_SPI_MODE_4_WIRE 0x00 172 #define PRESSURE9_CFG_SPI_MODE_3_WIRE 0x01 178 #define PRESSURE9_RESET_CONFIGURATION_REG 0x08 179 #define PRESSURE9_FULL_SOFTWARE_RESET 0x09 180 #define PRESSURE9_FIFO_FLUSH 0x80 186 #define PRESSURE9_DEV_SLAVE_ADR_GND 0x76 187 #define PRESSURE9_DEV_SLAVE_ADR_VCC 0x77 188 #define PRESSURE9_PRODUCT_ID 0x1A 194 #define PRESSURE9_PRESSURE_COEFFICIENT_C00 0x00 195 #define PRESSURE9_PRESSURE_COEFFICIENT_C01 0x01 196 #define PRESSURE9_PRESSURE_COEFFICIENT_C02 0x02 197 #define PRESSURE9_PRESSURE_COEFFICIENT_C10 0x10 198 #define PRESSURE9_PRESSURE_COEFFICIENT_C20 0x20 199 #define PRESSURE9_PRESSURE_COEFFICIENT_C30 0x30 200 #define PRESSURE9_PRESSURE_COEFFICIENT_C11 0x11 201 #define PRESSURE9_PRESSURE_COEFFICIENT_C12 0x12 202 #define PRESSURE9_PRESSURE_COEFFICIENT_C21 0x21 203 #define PRESSURE9_TEMP_COEFFICIENT_T_GAIN 0x03 204 #define PRESSURE9_TEMP_COEFFICIENT_T_DVBE 0x04 205 #define PRESSURE9_TEMP_COEFFICIENT_T_VBE 0x05 206 #define PRESSURE9_COEFF_CAL_00 0x00 207 #define PRESSURE9_COEFF_CAL_10 0x10 208 #define PRESSURE9_COEFF_CAL_01 0x01 209 #define PRESSURE9_COEFF_CAL_02 0x02 210 #define PRESSURE9_COEFF_CAL_20 0x20 211 #define PRESSURE9_COEFF_CAL_30 0x30 212 #define PRESSURE9_COEFF_CAL_11 0x11 213 #define PRESSURE9_COEFF_CAL_12 0x12 214 #define PRESSURE9_COEFF_CAL_21 0x21 215 #define PRESSURE9_COEFF_T_GAIN 0x03 216 #define PRESSURE9_COEFF_T_DVBE 0x04 217 #define PRESSURE9_COEFF_T_VBE 0x05 456 #endif // _PRESSURE9_H_ int32_t cal_21
Definition: pressure9.h:250
i2c_master_t i2c
Definition: pressure9.h:282
struct pressure9_s pressure9_t
Click ctx object definition.
int32_t cal_01
Definition: pressure9.h:244
int32_t pressure9_get_pressure_raw(pressure9_t *ctx)
Get Pressure Raw data.
void pressure9_generic_read(pressure9_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic read function.
int32_t t_dvbe
Definition: pressure9.h:260
void(* pressure9_master_io_t)(struct pressure9_s *, uint8_t, uint8_t *, uint8_t)
Master Input/Output type.
Definition: pressure9.h:235
float kptat
Definition: pressure9.h:269
pin_name_t sck
Definition: pressure9.h:312
float vbe_cal_t_ref
Definition: pressure9.h:268
pressure9_select_t master_sel
Definition: pressure9.h:289
hal_i2c_speed_t i2c_speed
Definition: pressure9.h:317
void pressure9_update_calculation_coefficient(pressure9_t *ctx)
Update all calibration coefficients.
Click ctx object definition.
Definition: pressure9.h:278
void pressure9_default_cfg(pressure9_t *ctx)
Click Default Configuration function.
pin_name_t mosi
Definition: pressure9.h:311
float t_cal
Definition: pressure9.h:267
float dvbe_cal
Definition: pressure9.h:266
void pressure9_configuration(pressure9_t *ctx, uint8_t reg_adr, uint8_t data_in)
Writing data to the configuration registers.
pin_name_t sda
Definition: pressure9.h:309
int32_t cal_12
Definition: pressure9.h:249
hal_spi_speed_t spi_speed
Definition: pressure9.h:319
Click configuration structure definition.
Definition: pressure9.h:304
Pressure calibration coefficient.
Definition: pressure9.h:240
int32_t cal_30
Definition: pressure9.h:247
int32_t cal_11
Definition: pressure9.h:248
float pressure9_get_temperature_data(pressure9_t *ctx)
Get Temperature data in C.
int32_t cal_00
Definition: pressure9.h:242
hal_i2c_address_t slave_address
Definition: pressure9.h:286
uint8_t pressure9_select_t
Communication type.
Definition: pressure9.h:230
pressure9_temp_cal_coef_t temp_coef
Definition: pressure9.h:297
float adc_val
Definition: pressure9.h:264
hal_spi_mode_t spi_mode
Definition: pressure9.h:320
pin_name_t miso
Definition: pressure9.h:310
float vbe_cal
Definition: pressure9.h:265
#define PRESSURE9_RETVAL
Definition: pressure9.h:74
int32_t pressure9_get_coefficients(pressure9_t *ctx, uint8_t coeff)
Get calibration coefficients.
int32_t pressure9_get_temperature_raw(pressure9_t *ctx)
Get Temperature Raw data.
void pressure9_generic_write(pressure9_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic write function.
int32_t t_gain
Definition: pressure9.h:259
float dvbe
Definition: pressure9.h:263
pressure9_press_cal_coef_t press_coef
Definition: pressure9.h:293
Temperature calibration coefficient.
Definition: pressure9.h:257
spi_master_t spi
Definition: pressure9.h:283
pressure9_master_io_t read_f
Definition: pressure9.h:288
pin_name_t cs
Definition: pressure9.h:313
pressure9_master_io_t write_f
Definition: pressure9.h:287
PRESSURE9_RETVAL pressure9_init(pressure9_t *ctx, pressure9_cfg_t *cfg)
Initialization function.
pin_name_t scl
Definition: pressure9.h:308
float vbe
Definition: pressure9.h:262
void pressure9_cfg_setup(pressure9_cfg_t *cfg)
Config Object Initialization function.
hal_i2c_address_t i2c_address
Definition: pressure9.h:318
int32_t cal_20
Definition: pressure9.h:246
int32_t cal_02
Definition: pressure9.h:245
float pressure9_get_pressure_data(pressure9_t *ctx)
Get Pressure data in mBar.
int32_t t_vbe
Definition: pressure9.h:261
float bp
Definition: pressure9.h:271
int32_t cal_10
Definition: pressure9.h:243
pressure9_select_t sel
Definition: pressure9.h:322
float ap
Definition: pressure9.h:270