Go to the documentation of this file.
28 #ifndef PRESSURE2307BA_H
29 #define PRESSURE2307BA_H
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
52 #include "drv_spi_master.h"
75 #define PRESSURE2307BA_REG_SERIAL_NUMBER_MSB 0x02
76 #define PRESSURE2307BA_REG_SERIAL_NUMBER_LSB 0x03
77 #define PRESSURE2307BA_REG_COEF_C1 0x04
78 #define PRESSURE2307BA_REG_COEF_C2 0x05
79 #define PRESSURE2307BA_REG_COEF_C3 0x06
80 #define PRESSURE2307BA_REG_COEF_C4 0x07
81 #define PRESSURE2307BA_REG_COEF_C5 0x08
82 #define PRESSURE2307BA_REG_COEF_C6 0x09
83 #define PRESSURE2307BA_REG_COEF_C7 0x0A
84 #define PRESSURE2307BA_REG_COEF_C8 0x0B
85 #define PRESSURE2307BA_REG_COEF_C5_C4_MSB 0x0C
86 #define PRESSURE2307BA_REG_COEF_C8_C6_MSB 0x0D
87 #define PRESSURE2307BA_REG_PROM_ID_CRC 0x0F
105 #define PRESSURE2307BA_CMD_RESET 0x10
106 #define PRESSURE2307BA_CMD_WRITE_CONFIG_PRESS 0x20
107 #define PRESSURE2307BA_CMD_WRITE_CONFIG_TEMP 0x22
108 #define PRESSURE2307BA_CMD_READ_CONFIG_PRESS 0x28
109 #define PRESSURE2307BA_CMD_READ_CONFIG_TEMP 0x2A
110 #define PRESSURE2307BA_CMD_READ_MEMORY 0xE0
111 #define PRESSURE2307BA_CMD_START_CONVERSION 0x40
112 #define PRESSURE2307BA_CMD_START_CONVERSION_PRESS 0x44
113 #define PRESSURE2307BA_CMD_START_CONVERSION_TEMP 0x48
114 #define PRESSURE2307BA_CMD_READ_ADC_REG 0x50
115 #define PRESSURE2307BA_CMD_READ_ADC_REG_PRESS 0x54
116 #define PRESSURE2307BA_CMD_READ_ADC_REG_TEMP 0x58
117 #define PRESSURE2307BA_CMD_WRITE_OPERATION_REG 0x14
118 #define PRESSURE2307BA_CMD_READ_OPERATION_REG 0x16
119 #define PRESSURE2307BA_CMD_WRITE_INTERRUPT_MASK 0x18
120 #define PRESSURE2307BA_CMD_READ_INTERRUPT_MASK 0x1A
121 #define PRESSURE2307BA_CMD_WRITE_INTERRUPT_REG 0x1C
122 #define PRESSURE2307BA_CMD_READ_INTERRUPT_REG 0x1E
123 #define PRESSURE2307BA_CMD_WRITE_LIMIT_REG_TEMP_L 0x30
124 #define PRESSURE2307BA_CMD_WRITE_LIMIT_REG_TEMP_H 0x32
125 #define PRESSURE2307BA_CMD_WRITE_LIMIT_REG_PRESS_L 0x34
126 #define PRESSURE2307BA_CMD_WRITE_LIMIT_REG_PRESS_H 0x36
127 #define PRESSURE2307BA_CMD_READ_LIMIT_REG_TEMP_L 0x38
128 #define PRESSURE2307BA_CMD_READ_LIMIT_REG_TEMP_H 0x3A
129 #define PRESSURE2307BA_CMD_READ_LIMIT_REG_PRESS_L 0x3C
130 #define PRESSURE2307BA_CMD_READ_LIMIT_REG_PRESS_H 0x3E
148 #define PRESSURE2307BA_SNSR_CFG_SEL_PRESS 0x00
149 #define PRESSURE2307BA_SNSR_CFG_SEL_TEMP 0x01
150 #define PRESSURE2307BA_SNSR_CFG_SEL_BIT_MASK 0x01
151 #define PRESSURE2307BA_SNSR_CFG_RATIO_OFF 0x00
152 #define PRESSURE2307BA_SNSR_CFG_RATIO_1 0x01
153 #define PRESSURE2307BA_SNSR_CFG_RATIO_2 0x02
154 #define PRESSURE2307BA_SNSR_CFG_RATIO_4 0x03
155 #define PRESSURE2307BA_SNSR_CFG_RATIO_8 0x04
156 #define PRESSURE2307BA_SNSR_CFG_RATIO_16 0x05
157 #define PRESSURE2307BA_SNSR_CFG_RATIO_32 0x06
158 #define PRESSURE2307BA_SNSR_CFG_RATIO_BIT_MASK 0x07
159 #define PRESSURE2307BA_SNSR_CFG_FILTER_OFF 0x00
160 #define PRESSURE2307BA_SNSR_CFG_FILTER_2 0x01
161 #define PRESSURE2307BA_SNSR_CFG_FILTER_4 0x02
162 #define PRESSURE2307BA_SNSR_CFG_FILTER_8 0x03
163 #define PRESSURE2307BA_SNSR_CFG_FILTER_16 0x04
164 #define PRESSURE2307BA_SNSR_CFG_FILTER_32 0x05
165 #define PRESSURE2307BA_SNSR_CFG_FILTER_BIT_MASK 0x07
166 #define PRESSURE2307BA_SNSR_CFG_RES_24_BIT 0x00
167 #define PRESSURE2307BA_SNSR_CFG_RES_16_BIT 0x01
168 #define PRESSURE2307BA_SNSR_CFG_RES_8_BIT 0x02
169 #define PRESSURE2307BA_SNSR_CFG_RES_BIT_MASK 0x03
170 #define PRESSURE2307BA_SNSR_CFG_OSR_0 0x00
171 #define PRESSURE2307BA_SNSR_CFG_OSR_1 0x01
172 #define PRESSURE2307BA_SNSR_CFG_OSR_2 0x02
173 #define PRESSURE2307BA_SNSR_CFG_OSR_3 0x03
174 #define PRESSURE2307BA_SNSR_CFG_OSR_4 0x04
175 #define PRESSURE2307BA_SNSR_CFG_OSR_5 0x05
176 #define PRESSURE2307BA_SNSR_CFG_OSR_6 0x06
177 #define PRESSURE2307BA_SNSR_CFG_OSR_BIT_MASK 0x07
183 #define PRESSURE2307BA_CNV_ADC_SEL_PRESS 0x00
184 #define PRESSURE2307BA_CNV_ADC_SEL_TEMP 0x01
185 #define PRESSURE2307BA_CNV_ADC_BIT_MASK 0x01
186 #define PRESSURE2307BA_CNV_ADC_REG_BIT_MASK 0x04
192 #define PRESSURE2307BA_OP_REG_FIFO_INT_TH_OFF 0x00
193 #define PRESSURE2307BA_OP_REG_FIFO_INT_TH_BIT_MASK 0x1F
194 #define PRESSURE2307BA_OP_REG_FIFO_MODE_OFF 0x00
195 #define PRESSURE2307BA_OP_REG_FIFO_MODE_BIT_MASK 0x03
196 #define PRESSURE2307BA_OP_REG_DELAY_OFF 0x00
197 #define PRESSURE2307BA_OP_REG_DELAY_5_MS 0x01
198 #define PRESSURE2307BA_OP_REG_DELAY_10_MS 0x02
199 #define PRESSURE2307BA_OP_REG_DELAY_20_MS 0x03
200 #define PRESSURE2307BA_OP_REG_DELAY_50_MS 0x04
201 #define PRESSURE2307BA_OP_REG_DELAY_100_MS 0x05
202 #define PRESSURE2307BA_OP_REG_DELAY_200_MS 0x06
203 #define PRESSURE2307BA_OP_REG_DELAY_500_MS 0x07
204 #define PRESSURE2307BA_OP_REG_DELAY_1_SEC 0x08
205 #define PRESSURE2307BA_OP_REG_DELAY_2_SEC 0x09
206 #define PRESSURE2307BA_OP_REG_DELAY_5_SEC 0x0A
207 #define PRESSURE2307BA_OP_REG_DELAY_10_SEC 0x0B
208 #define PRESSURE2307BA_OP_REG_DELAY_20_SEC 0x0C
209 #define PRESSURE2307BA_OP_REG_DELAY_60_SEC 0x0D
210 #define PRESSURE2307BA_OP_REG_DELAY_BIT_MASK 0x0F
216 #define PRESSURE2307BA_LIM_REG_SEL_TEMP 0x00
217 #define PRESSURE2307BA_LIM_REG_SEL_PRESS 0x01
218 #define PRESSURE2307BA_LIM_REG_SEL_BIT_MASK 0x01
219 #define PRESSURE2307BA_LIM_REG_LIM_LOW 0x00
220 #define PRESSURE2307BA_LIM_REG_LIM_HIGH 0x01
221 #define PRESSURE2307BA_LIM_REG_LIM_BIT_MASK 0x01
227 #define PRESSURE2307BA_COEF_DT -3.037801253E-14
228 #define PRESSURE2307BA_COEF_ET -1.079036179E-10
229 #define PRESSURE2307BA_COEF_FT 7.558105437E-18
230 #define PRESSURE2307BA_COEF_GT -1.988019651E-25
231 #define PRESSURE2307BA_COEF_EP 9.65965184878317E-10
232 #define PRESSURE2307BA_COEF_GP -7.44063838851138E-19
233 #define PRESSURE2307BA_COEF_HP -6.86793865715534E-17
234 #define PRESSURE2307BA_COEF_IP -2.73594458439415E-18
235 #define PRESSURE2307BA_COEF_JP -1.93891892136926E-16
236 #define PRESSURE2307BA_COEF_KP 1.11467352484525E-26
237 #define PRESSURE2307BA_COEF_LP 1.83448924520177E-24
238 #define PRESSURE2307BA_COEF_MP 1.23642876257138E-25
239 #define PRESSURE2307BA_COEF_NP 6.19373870077221E-27
240 #define PRESSURE2307BA_COEF_OP 1.37287101917619E-23
241 #define PRESSURE2307BA_COEF_PP 8.11976718528928E-36
242 #define PRESSURE2307BA_COEF_QP -9.35126613904527E-34
243 #define PRESSURE2307BA_COEF_RP -1.73061923874059E-33
244 #define PRESSURE2307BA_COEF_SP 2.92999600253747E-33
245 #define PRESSURE2307BA_COEF_TP -3.65988281559036E-31
252 #define PRESSURE2307BA_DEVICE_ADDRESS_GND 0x77
253 #define PRESSURE2307BA_DEVICE_ADDRESS_VCC 0x76
263 #define PRESSURE2307BA_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
264 #define PRESSURE2307BA_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
282 #define PRESSURE2307BA_MAP_MIKROBUS( cfg, mikrobus ) \
283 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
284 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
285 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
286 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
287 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
288 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
289 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
826 #endif // PRESSURE2307BA_H
err_t pressure2307ba_read_lim_reg(pressure2307ba_t *ctx, uint8_t sel_adr, uint8_t sel_lim, uint16_t *lim_reg_data)
Pressure 23 07BA limit register data reading function.
err_t pressure2307ba_read_adc(pressure2307ba_t *ctx, uint8_t sel_data, uint32_t *adc_data)
Pressure 23 07BA ADC data reading function.
err_t pressure2307ba_start_conversion(pressure2307ba_t *ctx, uint8_t sel_cnv)
Pressure 23 07BA start the conversion function.
uint32_t prom_c8
Definition: pressure2307ba.h:339
uint8_t prom_product_id
Definition: pressure2307ba.h:329
uint32_t prom_serial_num
Definition: pressure2307ba.h:328
uint32_t i2c_speed
Definition: pressure2307ba.h:363
uint32_t prom_c4
Definition: pressure2307ba.h:335
uint32_t spi_speed
Definition: pressure2307ba.h:366
err_t pressure2307ba_get_calibration_data(pressure2307ba_t *ctx)
Pressure 23 07BA gets the calibration data function.
err_t pressure2307ba_read_int_reg(pressure2307ba_t *ctx, uint16_t *int_reg_data)
Pressure 23 07BA interrupt register data reading function.
err_t pressure2307ba_write_int_reg(pressure2307ba_t *ctx, uint16_t int_reg_data)
Pressure 23 07BA interrupt register data writing function.
uint8_t filter
Definition: pressure2307ba.h:382
This file contains SPI specific macros, functions, etc.
uint8_t ratio
Definition: pressure2307ba.h:381
err_t pressure2307ba_get_adc_data_press(pressure2307ba_t *ctx, uint32_t *pressure)
Pressure 23 07BA get the ADC pressure data function.
@ PRESSURE2307BA_ERROR
Definition: pressure2307ba.h:395
pin_name_t sda
Definition: pressure2307ba.h:356
err_t pressure2307ba_generic_write(pressure2307ba_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Pressure 23 07BA data writing function.
uint32_t prom_c5
Definition: pressure2307ba.h:336
Pressure 23 07BA Click sensor configuration object.
Definition: pressure2307ba.h:379
uint32_t prom_c6
Definition: pressure2307ba.h:337
err_t pressure2307ba_sw_reset(pressure2307ba_t *ctx)
Pressure 23 07BA software reset function.
err_t(* pressure2307ba_master_io_t)(struct pressure2307ba_s *, uint8_t, uint8_t *, uint8_t)
Definition: pressure2307ba.h:310
Pressure 23 07BA Click context object.
Definition: pressure2307ba.h:317
pin_name_t scl
Definition: pressure2307ba.h:355
void pressure2307ba_cfg_setup(pressure2307ba_cfg_t *cfg)
Pressure 23 07BA configuration object setup function.
@ PRESSURE2307BA_DRV_SEL_I2C
Definition: pressure2307ba.h:301
uint16_t prom_c2
Definition: pressure2307ba.h:333
digital_in_t int_pin
Definition: pressure2307ba.h:318
err_t pressure2307ba_get_measurement_data(pressure2307ba_t *ctx, float *pressure, float *temperature)
Pressure 23 07BA gets the measurement data function.
uint8_t prom_crc
Definition: pressure2307ba.h:330
void pressure2307ba_drv_int_sel(pressure2307ba_cfg_t *cfg, pressure2307ba_drv_t drv_sel)
Pressure 23 07BA driver interface setup function.
struct pressure2307ba_s pressure2307ba_t
Pressure 23 07BA Click context object.
i2c_master_t i2c
Definition: pressure2307ba.h:320
spi_master_chip_select_polarity_t cs_polarity
Definition: pressure2307ba.h:368
err_t pressure2307ba_generic_read(pressure2307ba_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Pressure 23 07BA data reading function.
err_t pressure2307ba_write_config(pressure2307ba_t *ctx, pressure2307ba_sensor_cfg_t config)
Pressure 23 07BA configuration data writing function.
pin_name_t mosi
Definition: pressure2307ba.h:358
uint8_t i2c_address
Definition: pressure2307ba.h:364
pin_name_t chip_select
Definition: pressure2307ba.h:324
@ PRESSURE2307BA_OK
Definition: pressure2307ba.h:394
spi_master_t spi
Definition: pressure2307ba.h:321
@ PRESSURE2307BA_DRV_SEL_SPI
Definition: pressure2307ba.h:300
pin_name_t sck
Definition: pressure2307ba.h:359
uint8_t sel
Definition: pressure2307ba.h:380
err_t pressure2307ba_init(pressure2307ba_t *ctx, pressure2307ba_cfg_t *cfg)
Pressure 23 07BA initialization function.
Pressure 23 07BA Click configuration object.
Definition: pressure2307ba.h:354
uint16_t prom_c1
Definition: pressure2307ba.h:332
uint8_t osr
Definition: pressure2307ba.h:384
err_t pressure2307ba_read_int_mask(pressure2307ba_t *ctx, uint16_t *int_mask_data)
Pressure 23 07BA interrupt mask data reading function.
pin_name_t cs
Definition: pressure2307ba.h:360
err_t pressure2307ba_read_op_reg(pressure2307ba_t *ctx, uint8_t *fifo_int_th, uint8_t *fifo_mode, uint8_t *delay)
Pressure 23 07BA operation register data reading function.
err_t pressure2307ba_read_config(pressure2307ba_t *ctx, uint8_t sel_cfg, pressure2307ba_sensor_cfg_t *config)
Pressure 23 07BA configuration data reading function.
err_t pressure2307ba_write_op_reg(pressure2307ba_t *ctx, uint8_t fifo_int_th, uint8_t fifo_mode, uint8_t delay)
Pressure 23 07BA operation register data writing function.
uint8_t slave_address
Definition: pressure2307ba.h:323
uint8_t resolution
Definition: pressure2307ba.h:383
spi_master_mode_t spi_mode
Definition: pressure2307ba.h:367
uint16_t prom_c3
Definition: pressure2307ba.h:334
err_t pressure2307ba_default_cfg(pressure2307ba_t *ctx)
Pressure 23 07BA default configuration function.
uint8_t pressure2307ba_get_interrupt(pressure2307ba_t *ctx)
Pressure 23 07BA gets the interrupt function.
err_t pressure2307ba_read_memory(pressure2307ba_t *ctx, uint8_t reg, uint16_t *prom)
Pressure 23 07BA read memory function.
pressure2307ba_return_value_t
Pressure 23 07BA Click return value data.
Definition: pressure2307ba.h:393
uint8_t osr_temp
Definition: pressure2307ba.h:342
err_t pressure2307ba_set_command(pressure2307ba_t *ctx, uint8_t cmd)
Pressure 23 07BA set the command function.
pressure2307ba_master_io_t read_f
Definition: pressure2307ba.h:345
uint16_t prom_c7
Definition: pressure2307ba.h:338
err_t pressure2307ba_get_adc_data_temp(pressure2307ba_t *ctx, uint32_t *temperature)
Pressure 23 07BA get the ADC temperature data function.
pressure2307ba_drv_t drv_sel
Definition: pressure2307ba.h:370
err_t pressure2307ba_write_int_mask(pressure2307ba_t *ctx, uint16_t int_mask_data)
Pressure 23 07BA interrupt mask data writing function.
pressure2307ba_drv_t drv_sel
Definition: pressure2307ba.h:325
pin_name_t int_pin
Definition: pressure2307ba.h:361
uint8_t osr_press
Definition: pressure2307ba.h:341
err_t pressure2307ba_write_lim_reg(pressure2307ba_t *ctx, uint8_t sel_adr, uint8_t sel_lim, uint16_t lim_reg_data)
Pressure 23 07BA limit register data writing function.
pin_name_t miso
Definition: pressure2307ba.h:357
pressure2307ba_master_io_t write_f
Definition: pressure2307ba.h:344
pressure2307ba_drv_t
Pressure 23 07BA Click driver selector.
Definition: pressure2307ba.h:299