spiisolator 2.0.0.0
spiisolator.h File Reference

This file contains API for SPI ISLOATOR Click driver. More...

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

Go to the source code of this file.

Data Structures

struct  addr_cmd_t
 
struct  spiisolator_t
 Click ctx object definition. More...
 
struct  spiisolator_cfg_t
 Click configuration structure definition. More...
 

Macros

#define SPIISOLATOR_MAP_MIKROBUS(cfg, mikrobus)
 
#define SPIISOLATOR_RETVAL   uint8_t
 
#define SPIISOLATOR_OK   0x00
 
#define SPIISOLATOR_INIT_ERROR   0xFF
 
#define SPIISOLATOR_PRESSURE3_SPI_CMD_WRITE   0x7F
 
#define SPIISOLATOR_PRESSURE3_SPI_CMD_READ   0x80
 
#define SPIISOLATOR_PRESSURE3_REG_PSR_B2   0x00
 
#define SPIISOLATOR_PRESSURE3_REG_PSR_B1   0x01
 
#define SPIISOLATOR_PRESSURE3_REG_PSR_B0   0x02
 
#define SPIISOLATOR_PRESSURE3_REG_TMP_B2   0x03
 
#define SPIISOLATOR_PRESSURE3_REG_TMP_B1   0x04
 
#define SPIISOLATOR_PRESSURE3_REG_TMP_B0   0x05
 
#define SPIISOLATOR_PRESSURE3_REG_PRS_CFG   0x06
 
#define SPIISOLATOR_PRESSURE3_REG_TMP_CFG   0x07
 
#define SPIISOLATOR_PRESSURE3_REG_MEAS_CFG   0x08
 
#define SPIISOLATOR_PRESSURE3_REG_CFG_REG   0x09
 
#define SPIISOLATOR_PRESSURE3_REG_INT_STS   0x0A
 
#define SPIISOLATOR_PRESSURE3_REG_FIFO_STS   0x0B
 
#define SPIISOLATOR_PRESSURE3_REG_RESET   0x0C
 
#define SPIISOLATOR_PRESSURE3_REG_PRODUCT_ID   0x0D
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C0_MBS   0x10
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C0_LBS_C1_MBS   0x11
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C1_LBS   0x12
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C00_MBS   0x13
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C00_LSB   0x14
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C00_XLSB_C10_MSB   0x15
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C10_LSB   0x16
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C10_XLSB   0x17
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C01_MSB   0x18
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C01_LSB   0x19
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C11_MSB   0x1A
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C11_LSB   0x1B
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C20_MSB   0x1C
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C20_LSB   0x1D
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C21_MSB   0x1E
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C21_LSB   0x1F
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C30_MSB   0x20
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_C30_LSB   0x21
 
#define SPIISOLATOR_PRESSURE3_REG_COEF_SRCE   0x28
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_RATE_1_PER_SEC   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_RATE_2_PER_SEC   0x10
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_RATE_4_PER_SEC   0x20
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_RATE_8_PER_SEC   0x30
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_RATE_16_PER_SEC   0x40
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_RATE_32_PER_SEC   0x50
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_RATE_64_PER_SEC   0x60
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_RATE_128_PER_SEC   0x70
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_PRC_1_PER_SEC   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_PRC_2_PER_SEC   0x01
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_PRC_4_PER_SEC   0x02
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_PRC_8_PER_SEC   0x03
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_PRC_16_PER_SEC   0x04
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_PRC_32_PER_SEC   0x05
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_PRC_64_PER_SEC   0x06
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_PM_PRC_128_PER_SEC   0x07
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_EXT_INTERNAL_SENSOR   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_EXT_EXTERNAL_SENSOR   0x80
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_RATE_1_PER_SEC   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_RATE_2_PER_SEC   0x10
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_RATE_4_PER_SEC   0x20
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_RATE_8_PER_SEC   0x30
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_RATE_16_PER_SEC   0x40
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_RATE_32_PER_SEC   0x50
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_RATE_64_PER_SEC   0x60
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_RATE_128_PER_SEC   0x70
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_PRC_1_PER_SEC   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_PRC_2_PER_SEC   0x01
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_PRC_4_PER_SEC   0x02
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_PRC_8_PER_SEC   0x03
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_PRC_16_PER_SEC   0x04
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_PRC_32_PER_SEC   0x05
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_PRC_64_PER_SEC   0x06
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_PRC_128_PER_SEC   0x07
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_COEF_RDY_AVB   0x80
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_COEF_RDY_NO_AVB   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_SENSOR_RDY_CMP   0x40
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_SENSOR_RDY_NO_CMP   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_TMP_RDY   0x20
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_PRS_RDY   0x10
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_MEAS_CTRL_IDLE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_MEAS_CTRL_PRS   0x01
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_MEAS_CTRL_TMP   0x02
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_MEAS_CTRL_CNT_PRS   0x05
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_MEAS_CTRL_CNT_TMP   0x06
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_MEAS_CFG_MEAS_CTRL_CNT_PRS_TMP   0x07
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_INT_HL_LOW   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_INT_HL_HIGH   0x80
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_INT_FIFO_DISABLE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_INT_FIFO_ENABLE   0x40
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_INT_TMP_DISABLE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_INT_TMP_ENABLE   0x20
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_INT_PRS_DISABLE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_INT_PRS_ENABLE   0x10
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_T_SHIFT_NO_SHIFT   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_T_SHIFT_SHIFT   0x08
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_P_SHIFT_NO_SHIFT   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_P_SHIFT_SHIFT   0x04
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_FIFO_EN_DISABLE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_FIFO_EN_ENABLE   0x02
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_SPI_MODE_DISABLE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_CFG_REG_SPI_MODE_ENABLE   0x01
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_INT_STS_INT_FIFO_FULL_NO_ACTIVE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_INT_STS_INT_FIFO_FULL_ACTIVE   0x04
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_INT_STS_INT_TMP_NO_ACTIVE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_INT_STS_INT_TMP_ACTIVE   0x02
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_INT_STS_INT_PRS_NO_ACTIVE   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_INT_STS_INT_PRS_ACTIVE   0x01
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_FIFO_STS_FIFO_FULL_NO   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_FIFO_STS_FIFO_FULL_FULL   0x02
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_FIFO_STS_FIFO_EMPTY_NO   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_FIFO_STS_FIFO_EMPTY_EMPTY   0x01
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_RESET_SOFT_RST   0x09
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_COEF_SRCE_INTERNAL_SENSOR   0x00
 
#define SPIISOLATOR_PRESSURE3_BIT_MASK_TMP_COEF_SRCE_EXTERNAL_SENSOR   0x80
 

Functions

void spiisolator_cfg_setup (spiisolator_cfg_t *cfg)
 Config Object Initialization function.
 
SPIISOLATOR_RETVAL spiisolator_init (spiisolator_t *ctx, spiisolator_cfg_t *cfg)
 Initialization function.
 
void spiisolator_generic_transfer (spiisolator_t *ctx, uint8_t *wr_buf, uint16_t wr_len, uint8_t *rd_buf, uint16_t rd_len)
 Generic transfer function.
 
void spiisolator_write_cmd (spiisolator_t *ctx, uint8_t cmd, uint8_t tx_data)
 
void spiisolator_write_byte (spiisolator_t *ctx, uint8_t reg_address, uint8_t write_cmd, uint8_t write_data)
 Write the byte of data function.
 
uint8_t spiisolator_read_byte (spiisolator_t *ctx, uint8_t reg_address, uint8_t read_cmd)
 Read the byte of data function.
 
void spiisolator_write_data (spiisolator_t *ctx, uint8_t reg_address, uint8_t write_cmd, uint16_t write_data)
 Write 16-bit data function.
 
uint16_t spiisolator_read_data (spiisolator_t *ctx, uint8_t reg_address, uint8_t read_cmd)
 Read 16-bit data function.
 
void spiisolator_write_bytes (spiisolator_t *ctx, uint8_t reg_address, uint8_t write_cmd, uint8_t *write_data, uint16_t n_bytes)
 Sequential write function.
 
void spiisolator_read_bytes (spiisolator_t *ctx, uint8_t reg_address, uint8_t read_cmd, uint8_t *read_data, uint16_t n_bytes)
 Sequential read function.
 

Detailed Description

This file contains API for SPI ISLOATOR Click driver.