adac2 2.1.0.0
adac2.h File Reference

This file contains API for ADAC 2 Click Driver. More...

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

Go to the source code of this file.

Data Structures

struct  adac2_t
 ADAC 2 Click context object. More...
 
struct  adac2_cfg_t
 ADAC 2 Click configuration object. More...
 

Macros

#define ADAC2_REG_GEN_PROD   0x00
 ADAC 2 register map.
 
#define ADAC2_REG_GEN_REV   0x01
 
#define ADAC2_REG_GEN_CNFG   0x02
 
#define ADAC2_REG_GEN_CHNL_CTRL   0x03
 
#define ADAC2_REG_GEN_GPIO_CTRL   0x04
 
#define ADAC2_REG_GEN_GPI_INT   0x05
 
#define ADAC2_REG_GEN_GPI_DATA   0x06
 
#define ADAC2_REG_GEN_INT   0x07
 
#define ADAC2_REG_GEN_INTEN   0x08
 
#define ADAC2_REG_GEN_PWR_CTRL   0x09
 
#define ADAC2_REG_DCHNL_CMD   0x20
 
#define ADAC2_REG_DCHNL_STA   0x21
 
#define ADAC2_REG_DCHNL_CTRL1   0x22
 
#define ADAC2_REG_DCHNL_CTRL2   0x23
 
#define ADAC2_REG_DCHNL_DATA   0x24
 
#define ADAC2_REG_DCHNL_N_SEL   0x25
 
#define ADAC2_REG_DCHNL_N_SOC   0x26
 
#define ADAC2_REG_DCHNL_N_SGC   0x27
 
#define ADAC2_REG_AO_DATA_WR   0x40
 
#define ADAC2_REG_AO_OFFSET_CORR_WR   0x41
 
#define ADAC2_REG_AO_GAIN_CORR_WR   0x42
 
#define ADAC2_REG_AO_CNFG_WR   0x43
 
#define ADAC2_REG_AO_DATA_RD   0x44
 
#define ADAC2_REG_AO_OFFSET_CORR_RD   0x45
 
#define ADAC2_REG_AO_GAIN_CORR_RD   0x46
 
#define ADAC2_REG_AO_STA_RD   0x47
 
#define ADAC2_PRODUCT_ID   0x2D
 ADAC 2 description setting.
 
#define ADAC2_GEN_CNFG_CRC_EN_DISABLE   0x000000ul
 ADAC 2 GEN_CNFG register settings.
 
#define ADAC2_GEN_CNFG_CRC_EN_ENABLE   0x800000ul
 
#define ADAC2_GEN_CNFG_CRC_EN_MASK   0x800000ul
 
#define ADAC2_GEN_CNFG_DACREF_SEL_INT   0x000000ul
 
#define ADAC2_GEN_CNFG_DACREF_SEL_EXT   0x400000ul
 
#define ADAC2_GEN_CNFG_DACREF_SEL_MASK   0x400000ul
 
#define ADAC2_GEN_CNFG_ADCREF_SEL_INT   0x000000ul
 
#define ADAC2_GEN_CNFG_ADCREF_SEL_EXT   0x200000ul
 
#define ADAC2_GEN_CNFG_ADCREF_SEL_MASK   0x200000ul
 
#define ADAC2_GEN_CNFG_LINE_CNFG_OPEN   0x000000ul
 
#define ADAC2_GEN_CNFG_LINE_CNFG_CLOSED   0x100000ul
 
#define ADAC2_GEN_CNFG_LINE_CNFG_MASK   0x100000ul
 
#define ADAC2_GEN_CNFG_AO_CNFG_HIGH_Z   0x000000ul
 
#define ADAC2_GEN_CNFG_AO_CNFG_25V   0x010000ul
 
#define ADAC2_GEN_CNFG_AO_CNFG_12p5V   0x020000ul
 
#define ADAC2_GEN_CNFG_AO_CNFG_25mA   0x060000ul
 
#define ADAC2_GEN_CNFG_AO_CNFG_12p5mA   0x080000ul
 
#define ADAC2_GEN_CNFG_AO_CNFG_MASK   0x0F0000ul
 
#define ADAC2_GEN_CNFG_AI1_2_CNFG_BOTH_PD   0x000000ul
 
#define ADAC2_GEN_CNFG_AI1_2_CNFG_AI1_SE   0x002000ul
 
#define ADAC2_GEN_CNFG_AI1_2_CNFG_AI2_SE   0x004000ul
 
#define ADAC2_GEN_CNFG_AI1_2_CNFG_BOTH_SE   0x006000ul
 
#define ADAC2_GEN_CNFG_AI1_2_CNFG_DIFF   0x008000ul
 
#define ADAC2_GEN_CNFG_AI1_2_CNFG_MASK   0x00E000ul
 
#define ADAC2_GEN_CNFG_AI3_CNFG_PD   0x000000ul
 
#define ADAC2_GEN_CNFG_AI3_CNFG_SE   0x001000ul
 
#define ADAC2_GEN_CNFG_AI3_CNFG_MASK   0x001000ul
 
#define ADAC2_GEN_CNFG_AI4_CNFG_PD   0x000000ul
 
#define ADAC2_GEN_CNFG_AI4_CNFG_SE   0x000800ul
 
#define ADAC2_GEN_CNFG_AI4_CNFG_MASK   0x000800ul
 
#define ADAC2_GEN_CNFG_AI5_6_CNFG_PD   0x000000ul
 
#define ADAC2_GEN_CNFG_AI5_6_CNFG_DIFF   0x000400ul
 
#define ADAC2_GEN_CNFG_AI5_6_CNFG_MASK   0x000700ul
 
#define ADAC2_GEN_CNFG_AI5_DF_GAIN_12p5V   0x000000ul
 
#define ADAC2_GEN_CNFG_AI5_DF_GAIN_0p5V   0x000040ul
 
#define ADAC2_GEN_CNFG_AI5_DF_GAIN_0p25V   0x000080ul
 
#define ADAC2_GEN_CNFG_AI5_DF_GAIN_0p125V   0x0000C0ul
 
#define ADAC2_GEN_CNFG_AI5_DF_GAIN_MASK   0x0000C0ul
 
#define ADAC2_GEN_CNFG_OVC_CTRL_AUTO   0x000000ul
 
#define ADAC2_GEN_CNFG_OVC_CTRL_HOST   0x000008ul
 
#define ADAC2_GEN_CNFG_OVC_CTRL_MASK   0x000008ul
 
#define ADAC2_ADC_DATA_RESOLUTION   0x7FFFFFul
 ADAC 2 voltage calculation values.
 
#define ADAC2_DAC_DATA_RESOLUTION   0x03FFFFul
 
#define ADAC2_DAC_MIN_VALUE   -131072l
 
#define ADAC2_DAC_MAX_VALUE   131071l
 
#define ADAC2_FULL_SCALE_RANGE_25V   25.0f
 
#define ADAC2_FULL_SCALE_RANGE_12p5V   12.5f
 
#define ADAC2_FULL_SCALE_RANGE_2p5V   2.5f
 
#define ADAC2_FULL_SCALE_RANGE_0p5V   0.5f
 
#define ADAC2_FULL_SCALE_RANGE_0p25V   0.25f
 
#define ADAC2_FULL_SCALE_RANGE_0p125V   0.125f
 
#define ADAC2_START_CONVERSION   0x30
 ADAC 2 DCHNL_CMD register settings.
 
#define ADAC2_STOP_CONVERSION   0x10
 
#define ADAC2_DATA_RATE_5_SPS   0x00
 
#define ADAC2_DATA_RATE_10_SPS   0x01
 
#define ADAC2_DATA_RATE_15_SPS   0x02
 
#define ADAC2_DATA_RATE_30_SPS   0x03
 
#define ADAC2_DATA_RATE_50_SPS   0x04
 
#define ADAC2_DATA_RATE_60_SPS   0x05
 
#define ADAC2_DATA_RATE_225_SPS   0x06
 
#define ADAC2_DATA_RATE_450_SPS   0x07
 
#define ADAC2_DATA_RATE_900_SPS   0x08
 
#define ADAC2_DATA_RATE_1800_SPS   0x09
 
#define ADAC2_DATA_RATE_3600_SPS   0x0A
 
#define ADAC2_DATA_RATE_7200_SPS   0x0B
 
#define ADAC2_DATA_RATE_14400_SPS   0x0C
 
#define ADAC2_DATA_RATE_28800_SPS   0x0D
 
#define ADAC2_DATA_RATE_57600_SPS   0x0E
 
#define ADAC2_DATA_RATE_115200_SPS   0x0F
 
#define ADAC2_PD_STATE_STANDBY   0x00
 ADAC 2 DCHNL_CTRL1 register settings.
 
#define ADAC2_PD_STATE_RESET   0x10
 
#define ADAC2_CONV_MODE_CONTINUOUS   0x00
 
#define ADAC2_CONV_MODE_SINGLE_CYCLE   0x02
 
#define ADAC2_CONV_MODE_CONT_SINGLE_CYCLE   0x03
 
#define ADAC2_CH_NONE   0x00
 ADAC 2 channel selection values.
 
#define ADAC2_CH_AI1_SINGLE_ENDED   0x01
 
#define ADAC2_CH_AI2_SINGLE_ENDED   0x02
 
#define ADAC2_CH_AI1_AI2_DIFFERENTIAL   0x03
 
#define ADAC2_CH_AI3_SINGLE_ENDED   0x04
 
#define ADAC2_CH_AI4_SINGLE_ENDED   0x05
 
#define ADAC2_CH_AI3_AI4_DIFFERENTIAL   0x06
 
#define ADAC2_CH_AI5_AI6_DIFFERENTIAL_25V   0x09
 
#define ADAC2_CH_AI5_AI6_DIFFERENTIAL_2p5V   0x0C
 
#define ADAC2_CH_AUX1_SINGLE_ENDED   0x0D
 
#define ADAC2_CH_AUX2_SINGLE_ENDED   0x0E
 
#define ADAC2_CH_AUX1_AUX2_DIFFERENTIAL   0x0F
 
#define ADAC2_CH_MASK   0x000F00ul
 
#define ADAC2_GPIO_0_MASK   0x01
 ADAC 2 gpio selection values.
 
#define ADAC2_GPIO_1_MASK   0x02
 
#define ADAC2_GPIO_2_MASK   0x04
 
#define ADAC2_GPIO_3_MASK   0x08
 
#define ADAC2_GPIO_4_MASK   0x10
 
#define ADAC2_GPIO_5_MASK   0x20
 
#define ADAC2_GPIO_ALL_MASK   0x3F
 
#define ADAC2_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
 
#define ADAC2_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 
#define ADAC2_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.
 

Enumerations

enum  adac2_return_value_t { ADAC2_OK = 0 , ADAC2_ERROR = -1 }
 ADAC 2 Click return value data. More...
 

Functions

void adac2_cfg_setup (adac2_cfg_t *cfg)
 ADAC 2 configuration object setup function.
 
err_t adac2_init (adac2_t *ctx, adac2_cfg_t *cfg)
 ADAC 2 initialization function.
 
err_t adac2_default_cfg (adac2_t *ctx)
 ADAC 2 default configuration function.
 
err_t adac2_write_register (adac2_t *ctx, uint8_t reg, uint32_t data_in)
 ADAC 2 write register function.
 
err_t adac2_read_register (adac2_t *ctx, uint8_t reg, uint32_t *data_out)
 ADAC 2 read register function.
 
err_t adac2_enable_spi_crc (adac2_t *ctx)
 ADAC 2 enable spi crc function.
 
err_t adac2_disable_spi_crc (adac2_t *ctx)
 ADAC 2 disable spi crc function.
 
err_t adac2_check_communication (adac2_t *ctx)
 ADAC 2 check communication function.
 
void adac2_reset_device (adac2_t *ctx)
 ADAC 2 reset device function.
 
uint8_t adac2_get_rdy_pin (adac2_t *ctx)
 ADAC 2 get rdy pin function.
 
uint8_t adac2_get_int_pin (adac2_t *ctx)
 ADAC 2 get int pin function.
 
err_t adac2_start_conversion (adac2_t *ctx, uint8_t data_rate)
 ADAC 2 start conversion function.
 
err_t adac2_stop_conversion (adac2_t *ctx)
 ADAC 2 stop conversion function.
 
err_t adac2_set_conversion_mode (adac2_t *ctx, uint8_t mode)
 ADAC 2 set conversion mode function.
 
err_t adac2_set_active_ain_channel (adac2_t *ctx, uint8_t channel)
 ADAC 2 set active ain channel function.
 
err_t adac2_read_raw_adc (adac2_t *ctx, int32_t *raw_adc)
 ADAC 2 read raw adc function.
 
err_t adac2_read_voltage (adac2_t *ctx, float fsr, float *voltage)
 ADAC 2 read voltage function.
 
err_t adac2_write_dac (adac2_t *ctx, int32_t dac)
 ADAC 2 write dac function.
 

Detailed Description

This file contains API for ADAC 2 Click Driver.

Enumeration Type Documentation

◆ adac2_return_value_t

ADAC 2 Click return value data.

Predefined enum values for driver return values.

Enumerator
ADAC2_OK 
ADAC2_ERROR