pressure21 2.1.0.0
pressure21.h File Reference

This file contains API for Pressure 21 Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"
#include "drv_spi_master.h"
#include "spi_specifics.h"

Go to the source code of this file.

Data Structures

struct  pressure21_s
 Pressure 21 Click context object. More...
 
struct  pressure21_cfg_t
 Pressure 21 Click configuration object. More...
 

Macros

#define PRESSURE21_REG_CHIP_ID   0x01
 Pressure 21 register map.
 
#define PRESSURE21_REG_REV_ID   0x02
 
#define PRESSURE21_REG_CHIP_STATUS   0x11
 
#define PRESSURE21_REG_DRIVE_CONFIG   0x13
 
#define PRESSURE21_REG_INT_CONFIG   0x14
 
#define PRESSURE21_REG_INT_SOURCE   0x15
 
#define PRESSURE21_REG_FIFO_CONFIG   0x16
 
#define PRESSURE21_REG_FIFO_COUNT   0x17
 
#define PRESSURE21_REG_FIFO_SEL   0x18
 
#define PRESSURE21_REG_TEMP_DATA_XLSB   0x1D
 
#define PRESSURE21_REG_TEMP_DATA_LSB   0x1E
 
#define PRESSURE21_REG_TEMP_DATA_MSB   0x1F
 
#define PRESSURE21_REG_PRESS_DATA_XLSB   0x20
 
#define PRESSURE21_REG_PRESS_DATA_LSB   0x21
 
#define PRESSURE21_REG_PRESS_DATA_MSB   0x22
 
#define PRESSURE21_REG_INT_STATUS   0x27
 
#define PRESSURE21_REG_STATUS   0x28
 
#define PRESSURE21_REG_FIFO_DATA   0x29
 
#define PRESSURE21_REG_NVM_ADDR   0x2B
 
#define PRESSURE21_REG_NVM_DATA_LSB   0x2C
 
#define PRESSURE21_REG_NVM_DATA_MSB   0x2D
 
#define PRESSURE21_REG_DSP_CONFIG   0x30
 
#define PRESSURE21_REG_DSP_IIR   0x31
 
#define PRESSURE21_REG_OOR_THR_P_LSB   0x32
 
#define PRESSURE21_REG_OOR_THR_P_MSB   0x33
 
#define PRESSURE21_REG_OOR_RANGE   0x34
 
#define PRESSURE21_REG_OOR_CONFIG   0x35
 
#define PRESSURE21_REG_OSR_CONFIG   0x36
 
#define PRESSURE21_REG_ODR_CONFIG   0x37
 
#define PRESSURE21_REG_OSR_EFF   0x38
 
#define PRESSURE21_REG_CMD   0x7E
 
#define PRESSURE21_CHIP_ID   0x50
 Pressure 21 chip ID value.
 
#define PRESSURE21_PAD_INT_DRV_DEFAULT   0x30
 Pressure 21 INT config register settings.
 
#define PRESSURE21_INT_ENABLE   0x08
 
#define PRESSURE21_INT_DISABLE   0x00
 
#define PRESSURE21_INT_OPEN_DRAIN   0x04
 
#define PRESSURE21_INT_PUSH_PULL   0x00
 
#define PRESSURE21_INT_ACTIVE_HIGH   0x02
 
#define PRESSURE21_INT_ACTIVE_LOW   0x00
 
#define PRESSURE21_INT_LATCHED   0x01
 
#define PRESSURE21_INT_PULSED   0x00
 
#define PRESSURE21_OOR_P_EN   0x08
 Pressure 21 INT source register settings.
 
#define PRESSURE21_FIFO_THS_EN   0x04
 
#define PRESSURE21_FIFO_FULL_EN   0x02
 
#define PRESSURE21_DRDY_DATA_REG_EN   0x01
 
#define PRESSURE21_DISABLE_INT   0x00
 
#define PRESSURE21_INT_STAT_POR   0x10
 Pressure 21 INT status register settings.
 
#define PRESSURE21_INT_STAT_OOR_P   0x08
 
#define PRESSURE21_INT_STAT_FIFO_THS   0x04
 
#define PRESSURE21_INT_STAT_FIFO_FULL   0x02
 
#define PRESSURE21_INT_STAT_DRDY_DATA_REG   0x01
 
#define PRESSURE21_OOR_SEL_IIR_P   0x80
 Pressure 21 DSP config register settings.
 
#define PRESSURE21_FIFO_SEL_IIR_P   0x40
 
#define PRESSURE21_SHDW_SEL_IIR_P   0x20
 
#define PRESSURE21_FIFO_SEL_IIR_T   0x10
 
#define PRESSURE21_SHDW_SEL_IIR_T   0x08
 
#define PRESSURE21_IIR_FLUSH_FORCED_EN   0x04
 
#define PRESSURE21_DSP_CFG_RESERVED_BITS   0x03
 
#define PRESSURE21_SET_IIR_P_BYPASS   0x00
 Pressure 21 DSP IIR config register settings.
 
#define PRESSURE21_SET_IIR_P_FLT_COEF_1   0x08
 
#define PRESSURE21_SET_IIR_P_FLT_COEF_3   0x10
 
#define PRESSURE21_SET_IIR_P_FLT_COEF_7   0x18
 
#define PRESSURE21_SET_IIR_P_FLT_COEF_15   0x20
 
#define PRESSURE21_SET_IIR_P_FLT_COEF_31   0x28
 
#define PRESSURE21_SET_IIR_P_FLT_COEF_63   0x30
 
#define PRESSURE21_SET_IIR_P_FLT_COEF_127   0x38
 
#define PRESSURE21_SET_IIR_T_BYPASS   0x00
 
#define PRESSURE21_SET_IIR_T_FLT_COEF_1   0x01
 
#define PRESSURE21_SET_IIR_T_FLT_COEF_3   0x02
 
#define PRESSURE21_SET_IIR_T_FLT_COEF_7   0x03
 
#define PRESSURE21_SET_IIR_T_FLT_COEF_15   0x04
 
#define PRESSURE21_SET_IIR_T_FLT_COEF_31   0x05
 
#define PRESSURE21_SET_IIR_T_FLT_COEF_63   0x06
 
#define PRESSURE21_SET_IIR_T_FLT_COEF_127   0x07
 
#define PRESSURE21_PRESS_EN   0x40
 Pressure 21 OSR config register settings.
 
#define PRESSURE21_OSR_P_1X   0x00
 
#define PRESSURE21_OSR_P_2X   0x08
 
#define PRESSURE21_OSR_P_4X   0x10
 
#define PRESSURE21_OSR_P_8X   0x18
 
#define PRESSURE21_OSR_P_16X   0x20
 
#define PRESSURE21_OSR_P_32X   0x28
 
#define PRESSURE21_OSR_P_64X   0x30
 
#define PRESSURE21_OSR_P_128X   0x38
 
#define PRESSURE21_OSR_T_1X   0x00
 
#define PRESSURE21_OSR_T_2X   0x01
 
#define PRESSURE21_OSR_T_4X   0x02
 
#define PRESSURE21_OSR_T_8X   0x03
 
#define PRESSURE21_OSR_T_16X   0x04
 
#define PRESSURE21_OSR_T_32X   0x05
 
#define PRESSURE21_OSR_T_64X   0x06
 
#define PRESSURE21_OSR_T_128X   0x07
 
#define PRESSURE21_DEEP_DIS   0x80
 Pressure 21 ODR config register settings.
 
#define PRESSURE21_ODR_240_HZ   0x00
 
#define PRESSURE21_ODR_218p537_HZ   0x04
 
#define PRESSURE21_ODR_199p111_HZ   0x08
 
#define PRESSURE21_ODR_179p2_HZ   0x0C
 
#define PRESSURE21_ODR_160_HZ   0x10
 
#define PRESSURE21_ODR_149p333_HZ   0x14
 
#define PRESSURE21_ODR_140_HZ   0x18
 
#define PRESSURE21_ODR_129p855_HZ   0x1C
 
#define PRESSURE21_ODR_120_HZ   0x20
 
#define PRESSURE21_ODR_110p164_HZ   0x24
 
#define PRESSURE21_ODR_100p299_HZ   0x28
 
#define PRESSURE21_ODR_89p6_HZ   0x2C
 
#define PRESSURE21_ODR_80_HZ   0x30
 
#define PRESSURE21_ODR_70_HZ   0x34
 
#define PRESSURE21_ODR_60_HZ   0x38
 
#define PRESSURE21_ODR_50p056_HZ   0x3C
 
#define PRESSURE21_ODR_45p025_HZ   0x40
 
#define PRESSURE21_ODR_40_HZ   0x44
 
#define PRESSURE21_ODR_35_HZ   0x48
 
#define PRESSURE21_ODR_30_HZ   0x4C
 
#define PRESSURE21_ODR_25p005_HZ   0x50
 
#define PRESSURE21_ODR_20_HZ   0x54
 
#define PRESSURE21_ODR_15_HZ   0x58
 
#define PRESSURE21_ODR_10_HZ   0x5C
 
#define PRESSURE21_ODR_5_HZ   0x60
 
#define PRESSURE21_ODR_4_HZ   0x64
 
#define PRESSURE21_ODR_3_HZ   0x68
 
#define PRESSURE21_ODR_2_HZ   0x6C
 
#define PRESSURE21_ODR_1_HZ   0x70
 
#define PRESSURE21_ODR_0p5_HZ   0x74
 
#define PRESSURE21_ODR_0p25_HZ   0x78
 
#define PRESSURE21_ODR_0p125_HZ   0x7C
 
#define PRESSURE21_PWR_MODE_STANDBY   0x00
 
#define PRESSURE21_PWR_MODE_NORMAL   0x01
 
#define PRESSURE21_PWR_MODE_FORCE   0x02
 
#define PRESSURE21_PWR_MODE_NON_STOP   0x03
 
#define PRESSURE21_PRESS_RESOLUTION   64.0
 Pressure 21 pressure and temperature calculation values.
 
#define PRESSURE21_TEMP_RESOLUTION   65536.0
 
#define PRESSURE21_PA_TO_MBAR   0.01
 
#define PRESSURE21_DEVICE_ADDRESS_0   0x46
 Pressure 21 device address setting.
 
#define PRESSURE21_DEVICE_ADDRESS_1   0x47
 
#define PRESSURE21_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
 
#define PRESSURE21_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 
#define PRESSURE21_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.
 

Typedefs

typedef err_t(* pressure21_master_io_t) (struct pressure21_s *, uint8_t, uint8_t *, uint8_t)
 Pressure 21 Click driver interface.
 
typedef struct pressure21_s pressure21_t
 Pressure 21 Click context object.
 

Enumerations

enum  pressure21_drv_t { PRESSURE21_DRV_SEL_SPI , PRESSURE21_DRV_SEL_I2C }
 Pressure 21 Click driver selector. More...
 
enum  pressure21_return_value_t { PRESSURE21_OK = 0 , PRESSURE21_ERROR = -1 }
 Pressure 21 Click return value data. More...
 

Functions

void pressure21_cfg_setup (pressure21_cfg_t *cfg)
 Pressure 21 configuration object setup function.
 
void pressure21_drv_interface_selection (pressure21_cfg_t *cfg, pressure21_drv_t drv_sel)
 Pressure 21 driver interface setup function.
 
err_t pressure21_init (pressure21_t *ctx, pressure21_cfg_t *cfg)
 Pressure 21 initialization function.
 
err_t pressure21_default_cfg (pressure21_t *ctx)
 Pressure 21 default configuration function.
 
err_t pressure21_generic_write (pressure21_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Pressure 21 data writing function.
 
err_t pressure21_generic_read (pressure21_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Pressure 21 data reading function.
 
err_t pressure21_write_register (pressure21_t *ctx, uint8_t reg, uint8_t data_in)
 Pressure 21 write register function.
 
err_t pressure21_read_register (pressure21_t *ctx, uint8_t reg, uint8_t *data_out)
 Pressure 21 read register function.
 
err_t pressure21_check_communication (pressure21_t *ctx)
 Pressure 21 check communication function.
 
uint8_t pressure21_get_int_pin (pressure21_t *ctx)
 Pressure 21 get int pin function.
 
err_t pressure21_get_sensor_data (pressure21_t *ctx, float *pressure, float *temperature)
 Pressure 21 get sensor data function.
 

Detailed Description

This file contains API for Pressure 21 Click Driver.

Typedef Documentation

◆ pressure21_master_io_t

typedef err_t(* pressure21_master_io_t) (struct pressure21_s *, uint8_t, uint8_t *, uint8_t)

Pressure 21 Click driver interface.

Definition of driver interface of Pressure 21 Click driver. Driver serial interface.

◆ pressure21_t

typedef struct pressure21_s pressure21_t

Pressure 21 Click context object.

Context object definition of Pressure 21 Click driver.

Enumeration Type Documentation

◆ pressure21_drv_t

Pressure 21 Click driver selector.

Selects target driver interface of Pressure 21 Click driver.

Enumerator
PRESSURE21_DRV_SEL_SPI 

SPI driver descriptor.

PRESSURE21_DRV_SEL_I2C 

I2C driver descriptor.

◆ pressure21_return_value_t

Pressure 21 Click return value data.

Predefined enum values for driver return values.

Enumerator
PRESSURE21_OK 
PRESSURE21_ERROR