barometer7  2.0.0.0
barometer7.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef BAROMETER7_H
29 #define BAROMETER7_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_spi_master.h"
38 #include "spi_specifics.h"
39 
60 #define BAROMETER7_CMD_TRIGGER_TEST_MODE 0x0C
61 #define BAROMETER7_CMD_RESET_BIT_MASK 0x10
62 #define BAROMETER7_CMD_ACQUIRE_PRESSURE 0x20
63 #define BAROMETER7_CMD_ACQUIRE_TEMPERATURE 0x40
64 #define BAROMETER7_CMD_TRIGGER_DIAGNOSIS 0x80
65 #define BAROMETER7_CMD_ACQUIRE_IDENTIFIER 0xE0
66  // barometer7_cmd
68 
87 #define BAROMETER7_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
88 #define BAROMETER7_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
89  // barometer7_set
91 
106 #define BAROMETER7_MAP_MIKROBUS( cfg, mikrobus ) \
107  cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
108  cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
109  cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
110  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS )
111  // barometer7_map // barometer7
114 
119 typedef struct
120 {
121  // Modules
122  spi_master_t spi;
124  pin_name_t chip_select;
126  uint8_t diagnosis;
127  uint8_t parity;
129 } barometer7_t;
130 
135 typedef struct
136 {
137  // Communication gpio pins
138  pin_name_t miso;
139  pin_name_t mosi;
140  pin_name_t sck;
141  pin_name_t cs;
143  // static variable
144  uint32_t spi_speed;
145  spi_master_mode_t spi_mode;
146  spi_master_chip_select_polarity_t cs_polarity;
149 
154 typedef struct
155 {
156  uint8_t supplier;
157  uint8_t silicon_version;
158  uint8_t metal_version;
159  uint8_t asic_name;
162 
167 typedef enum
168 {
172 
174 
179 typedef enum
180 {
186  BAROMETER7_NO_ERROR = 0x0A
187 
189 
206 
222 
237 
253 err_t barometer7_generic_transfer ( barometer7_t *ctx, uint8_t cmd, uint16_t *data_out );
254 
271 err_t barometer7_set_command ( barometer7_t *ctx, uint8_t cmd, uint16_t *data_out );
272 
292 err_t barometer7_set_reset ( barometer7_t *ctx, uint8_t cmd, uint16_t *data_out );
293 
308 err_t barometer7_get_press_data ( barometer7_t *ctx, uint16_t *press_data );
309 
324 err_t barometer7_get_temp_data ( barometer7_t *ctx, uint16_t *temp_data );
325 
340 err_t barometer7_get_trigger_diagnosis_data ( barometer7_t *ctx, uint16_t *td_data );
341 
356 err_t barometer7_trigger_test_mode ( barometer7_t *ctx, uint16_t *tdm_data );
357 
372 err_t barometer7_get_id_data ( barometer7_t *ctx, uint16_t *id_data );
373 
389 
405 err_t barometer7_get_pressure ( barometer7_t *ctx, float *pressure );
406 
422 err_t barometer7_get_temperature ( barometer7_t *ctx, float *temperature );
423 
424 
425 
426 #ifdef __cplusplus
427 }
428 #endif
429 #endif // BAROMETER7_H
430  // barometer7
432 
433 // ------------------------------------------------------------------------ END
barometer7_t::diagnosis
uint8_t diagnosis
Definition: barometer7.h:126
BAROMETER7_PRESSURE_OUT_OF_RANGE_LOW
@ BAROMETER7_PRESSURE_OUT_OF_RANGE_LOW
Definition: barometer7.h:185
barometer7_return_value_t
barometer7_return_value_t
Barometer 7 Click return value data.
Definition: barometer7.h:168
barometer7_cfg_t
Barometer 7 Click configuration object.
Definition: barometer7.h:136
barometer7_t
Barometer 7 Click context object.
Definition: barometer7.h:120
spi_specifics.h
This file contains SPI specific macros, functions, etc.
barometer7_get_press_data
err_t barometer7_get_press_data(barometer7_t *ctx, uint16_t *press_data)
Barometer 7 get pressure data function.
barometer7_t::spi
spi_master_t spi
Definition: barometer7.h:122
barometer7_init
err_t barometer7_init(barometer7_t *ctx, barometer7_cfg_t *cfg)
Barometer 7 initialization function.
barometer7_get_temp_data
err_t barometer7_get_temp_data(barometer7_t *ctx, uint16_t *temp_data)
Barometer 7 get temperature data function.
barometer7_cfg_t::cs
pin_name_t cs
Definition: barometer7.h:141
BAROMETER7_SENSOR_CELL_FAILURE
@ BAROMETER7_SENSOR_CELL_FAILURE
Definition: barometer7.h:183
BAROMETER7_ERROR
@ BAROMETER7_ERROR
Definition: barometer7.h:170
barometer7_t::parity
uint8_t parity
Definition: barometer7.h:127
barometer7_cfg_t::spi_mode
spi_master_mode_t spi_mode
Definition: barometer7.h:145
BAROMETER7_EEPROM_FEC_ERROR
@ BAROMETER7_EEPROM_FEC_ERROR
Definition: barometer7.h:181
barometer7_diagnosis_code_t
barometer7_diagnosis_code_t
Barometer 7 Click diagnosis code data.
Definition: barometer7.h:180
barometer7_cfg_t::mosi
pin_name_t mosi
Definition: barometer7.h:139
barometer7_identifier_t::supplier
uint8_t supplier
Definition: barometer7.h:156
barometer7_cfg_setup
void barometer7_cfg_setup(barometer7_cfg_t *cfg)
Barometer 7 configuration object setup function.
barometer7_get_id_data
err_t barometer7_get_id_data(barometer7_t *ctx, uint16_t *id_data)
Barometer 7 get ID data function.
barometer7_get_identifier
err_t barometer7_get_identifier(barometer7_t *ctx, barometer7_identifier_t *identifier)
Barometer 7 get identifier function.
barometer7_t::chip_select
pin_name_t chip_select
Definition: barometer7.h:124
barometer7_cfg_t::miso
pin_name_t miso
Definition: barometer7.h:138
barometer7_identifier_t::asic_name
uint8_t asic_name
Definition: barometer7.h:159
BAROMETER7_OK
@ BAROMETER7_OK
Definition: barometer7.h:169
BAROMETER7_NO_ERROR
@ BAROMETER7_NO_ERROR
Definition: barometer7.h:186
barometer7_trigger_test_mode
err_t barometer7_trigger_test_mode(barometer7_t *ctx, uint16_t *tdm_data)
Barometer 7 get trigger test mode data function.
barometer7_generic_transfer
err_t barometer7_generic_transfer(barometer7_t *ctx, uint8_t cmd, uint16_t *data_out)
Barometer 7 data transfer function.
barometer7_identifier_t
Barometer 7 Click response structure for identifier.
Definition: barometer7.h:155
barometer7_cfg_t::sck
pin_name_t sck
Definition: barometer7.h:140
barometer7_get_temperature
err_t barometer7_get_temperature(barometer7_t *ctx, float *temperature)
Barometer 7 get temperature function.
barometer7_default_cfg
err_t barometer7_default_cfg(barometer7_t *ctx)
Barometer 7 default configuration function.
barometer7_cfg_t::spi_speed
uint32_t spi_speed
Definition: barometer7.h:144
BAROMETER7_ACQUISITION_CHAIN_FAILURE
@ BAROMETER7_ACQUISITION_CHAIN_FAILURE
Definition: barometer7.h:182
barometer7_cfg_t::cs_polarity
spi_master_chip_select_polarity_t cs_polarity
Definition: barometer7.h:146
barometer7_set_reset
err_t barometer7_set_reset(barometer7_t *ctx, uint8_t cmd, uint16_t *data_out)
Barometer 7 set reset function.
barometer7_set_command
err_t barometer7_set_command(barometer7_t *ctx, uint8_t cmd, uint16_t *data_out)
Barometer 7 set command function.
BAROMETER7_PRESSURE_OUT_OF_RANGE_HIGH
@ BAROMETER7_PRESSURE_OUT_OF_RANGE_HIGH
Definition: barometer7.h:184
barometer7_identifier_t::silicon_version
uint8_t silicon_version
Definition: barometer7.h:157
barometer7_get_pressure
err_t barometer7_get_pressure(barometer7_t *ctx, float *pressure)
Barometer 7 get pressure function.
barometer7_identifier_t::metal_version
uint8_t metal_version
Definition: barometer7.h:158
barometer7_get_trigger_diagnosis_data
err_t barometer7_get_trigger_diagnosis_data(barometer7_t *ctx, uint16_t *td_data)
Barometer 7 get trigger diagnosis data function.
BAROMETER7_CMD_ERROR
@ BAROMETER7_CMD_ERROR
Definition: barometer7.h:171