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 "mikrosdk_version.h"
36 
37 #ifdef __GNUC__
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
40 #else
41 #include "delays.h"
42 #endif
43 #endif
44 
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_spi_master.h"
48 #include "spi_specifics.h"
49 
70 #define BAROMETER7_CMD_TRIGGER_TEST_MODE 0x0C
71 #define BAROMETER7_CMD_RESET_BIT_MASK 0x10
72 #define BAROMETER7_CMD_ACQUIRE_PRESSURE 0x20
73 #define BAROMETER7_CMD_ACQUIRE_TEMPERATURE 0x40
74 #define BAROMETER7_CMD_TRIGGER_DIAGNOSIS 0x80
75 #define BAROMETER7_CMD_ACQUIRE_IDENTIFIER 0xE0
76  // barometer7_cmd
78 
97 #define BAROMETER7_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
98 #define BAROMETER7_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
99  // barometer7_set
101 
116 #define BAROMETER7_MAP_MIKROBUS( cfg, mikrobus ) \
117  cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
118  cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
119  cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
120  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS )
121  // barometer7_map // barometer7
124 
129 typedef struct
130 {
131  // Modules
132  spi_master_t spi;
134  pin_name_t chip_select;
136  uint8_t diagnosis;
137  uint8_t parity;
139 } barometer7_t;
140 
145 typedef struct
146 {
147  // Communication gpio pins
148  pin_name_t miso;
149  pin_name_t mosi;
150  pin_name_t sck;
151  pin_name_t cs;
153  // static variable
154  uint32_t spi_speed;
155  spi_master_mode_t spi_mode;
156  spi_master_chip_select_polarity_t cs_polarity;
159 
164 typedef struct
165 {
166  uint8_t supplier;
167  uint8_t silicon_version;
168  uint8_t metal_version;
169  uint8_t asic_name;
172 
177 typedef enum
178 {
182 
184 
189 typedef enum
190 {
196  BAROMETER7_NO_ERROR = 0x0A
197 
199 
216 
232 
247 
263 err_t barometer7_generic_transfer ( barometer7_t *ctx, uint8_t cmd, uint16_t *data_out );
264 
281 err_t barometer7_set_command ( barometer7_t *ctx, uint8_t cmd, uint16_t *data_out );
282 
302 err_t barometer7_set_reset ( barometer7_t *ctx, uint8_t cmd, uint16_t *data_out );
303 
318 err_t barometer7_get_press_data ( barometer7_t *ctx, uint16_t *press_data );
319 
334 err_t barometer7_get_temp_data ( barometer7_t *ctx, uint16_t *temp_data );
335 
350 err_t barometer7_get_trigger_diagnosis_data ( barometer7_t *ctx, uint16_t *td_data );
351 
366 err_t barometer7_trigger_test_mode ( barometer7_t *ctx, uint16_t *tdm_data );
367 
382 err_t barometer7_get_id_data ( barometer7_t *ctx, uint16_t *id_data );
383 
399 
415 err_t barometer7_get_pressure ( barometer7_t *ctx, float *pressure );
416 
432 err_t barometer7_get_temperature ( barometer7_t *ctx, float *temperature );
433 
434 
435 
436 #ifdef __cplusplus
437 }
438 #endif
439 #endif // BAROMETER7_H
440  // barometer7
442 
443 // ------------------------------------------------------------------------ END
barometer7_t::diagnosis
uint8_t diagnosis
Definition: barometer7.h:136
BAROMETER7_PRESSURE_OUT_OF_RANGE_LOW
@ BAROMETER7_PRESSURE_OUT_OF_RANGE_LOW
Definition: barometer7.h:195
barometer7_return_value_t
barometer7_return_value_t
Barometer 7 Click return value data.
Definition: barometer7.h:178
barometer7_cfg_t
Barometer 7 Click configuration object.
Definition: barometer7.h:146
barometer7_t
Barometer 7 Click context object.
Definition: barometer7.h:130
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:132
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:151
BAROMETER7_SENSOR_CELL_FAILURE
@ BAROMETER7_SENSOR_CELL_FAILURE
Definition: barometer7.h:193
BAROMETER7_ERROR
@ BAROMETER7_ERROR
Definition: barometer7.h:180
barometer7_t::parity
uint8_t parity
Definition: barometer7.h:137
barometer7_cfg_t::spi_mode
spi_master_mode_t spi_mode
Definition: barometer7.h:155
BAROMETER7_EEPROM_FEC_ERROR
@ BAROMETER7_EEPROM_FEC_ERROR
Definition: barometer7.h:191
barometer7_diagnosis_code_t
barometer7_diagnosis_code_t
Barometer 7 Click diagnosis code data.
Definition: barometer7.h:190
barometer7_cfg_t::mosi
pin_name_t mosi
Definition: barometer7.h:149
barometer7_identifier_t::supplier
uint8_t supplier
Definition: barometer7.h:166
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:134
barometer7_cfg_t::miso
pin_name_t miso
Definition: barometer7.h:148
barometer7_identifier_t::asic_name
uint8_t asic_name
Definition: barometer7.h:169
BAROMETER7_OK
@ BAROMETER7_OK
Definition: barometer7.h:179
BAROMETER7_NO_ERROR
@ BAROMETER7_NO_ERROR
Definition: barometer7.h:196
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:165
barometer7_cfg_t::sck
pin_name_t sck
Definition: barometer7.h:150
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:154
BAROMETER7_ACQUISITION_CHAIN_FAILURE
@ BAROMETER7_ACQUISITION_CHAIN_FAILURE
Definition: barometer7.h:192
barometer7_cfg_t::cs_polarity
spi_master_chip_select_polarity_t cs_polarity
Definition: barometer7.h:156
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:194
barometer7_identifier_t::silicon_version
uint8_t silicon_version
Definition: barometer7.h:167
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:168
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:181