no-OS
Loading...
Searching...
No Matches
ad552xr.h File Reference

Header file of AD552XR Driver. More...

#include <stdint.h>
#include <stdbool.h>
#include "no_os_gpio.h"
#include "no_os_spi.h"
Include dependency graph for ad552xr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ad552xr_device_spi_settings
 AD552XR device SPI settings. More...
 
struct  ad552xr_ldac_settings
 AD552XR device LDAC settings. More...
 
struct  ad552xr_transfer_data
 AD552XR transfer data structure. More...
 
struct  ad552xr_dev_info
 AD552XR active device info. More...
 
struct  ad552xr_dev
 AD552XR device descriptor. More...
 
struct  ad552xr_init_param
 Structure holding the initialization parameters for AD552XR. More...
 

Macros

#define AD552XR_R1B   (1ul << 16)
 
#define AD552XR_R2B   (2ul << 16)
 
#define AD552XR_LEN(x)
 
#define AD552XR_ADDR(x)
 
#define AD552XR_REG_CH_OFFSET(x)
 
#define AD552XR_READ_BIT   NO_OS_BIT(7)
 
#define AD552XR_ADDR_MASK   (~AD552XR_READ_BIT)
 
#define AD552XR_WRITE_BIT_LONG_INSTR   0x00
 
#define AD552XR_SCRATCH_PAD_TEST_VAL   0xAB
 
#define AD552XR_MULTIBYTE_REG_START   0x14
 
#define AD552XR_MULTIBYTE_REG_END   0x71
 
#define AD552XR_REG_INTERFACE_CONFIG_A   (AD552XR_R1B | 0x00)
 
#define AD552XR_REG_INTERFACE_CONFIG_B   (AD552XR_R1B | 0x01)
 
#define AD552XR_REG_DEVICE_CONFIG   (AD552XR_R1B | 0x02)
 
#define AD552XR_REG_CHIP_TYPE   (AD552XR_R1B | 0x03)
 
#define AD552XR_REG_PRODUCT_ID_L   (AD552XR_R1B | 0x04)
 
#define AD552XR_REG_PRODUCT_ID_H   (AD552XR_R1B | 0x05)
 
#define AD552XR_REG_CHIP_GRADE   (AD552XR_R1B | 0x06)
 
#define AD552XR_REG_SCRATCH_PAD   (AD552XR_R1B | 0x0A)
 
#define AD552XR_REG_SPI_REVISION   (AD552XR_R1B | 0x0B)
 
#define AD552XR_REG_VENDOR_L   (AD552XR_R1B | 0x0C)
 
#define AD552XR_REG_VENDOR_H   (AD552XR_R1B | 0x0D)
 
#define AD552XR_REG_STREAM_MODE   (AD552XR_R1B | 0x0E)
 
#define AD552XR_REG_TRANSFER_CONFIG   (AD552XR_R1B | 0x0F)
 
#define AD552XR_REG_INTERFACE_CONFIG_C   (AD552XR_R1B | 0x10)
 
#define AD552XR_REG_INTERFACE_STATUS_A   (AD552XR_R1B | 0x11)
 
#define AD552XR_REG_MULTI_INPUT_SEL   (AD552XR_R2B | 0x14)
 
#define AD552XR_REG_LDAC_SYNC_ASYNC   (AD552XR_R2B | 0x16)
 
#define AD552XR_REG_LDAC_HW_SW   (AD552XR_R2B | 0x18)
 
#define AD552XR_REG_LDAC_HW_SRC_CH(x)
 
#define AD552XR_REG_OUT_EN   (AD552XR_R2B | 0x3A)
 
#define AD552XR_REG_OUT_RANGE_CH(x)
 
#define AD552XR_REG_CAL_GAIN_CH(x)
 
#define AD552XR_REG_CAL_OFFSET_CH(x)
 
#define AD552XR_REG_FUNC_EN   (AD552XR_R2B | 0x9C)
 
#define AD552XR_REG_FUNC_MODE_SEL_CH(x)
 
#define AD552XR_REG_FUNC_DAC_INPUT_B_CH(x)
 
#define AD552XR_REG_FUNC_DITHER_PERIOD_CH(x)
 
#define AD552XR_REG_FUNC_DITHER_PHASE_CH(x)
 
#define AD552XR_REG_FUNC_RAMP_STEP_CH(x)
 
#define AD552XR_REG_FUNC_INT_EN(x)
 
#define AD552XR_REG_MUX_OUT_SEL   (AD552XR_R2B | 0x140)
 
#define AD552XR_REG_MULTI_SW_LDAC   (AD552XR_R2B | 0x142)
 
#define AD552XR_REG_MULTI_INPUT   (AD552XR_R2B | 0x144)
 
#define AD552XR_REG_SW_LDAC   (AD552XR_R2B | 0x146)
 
#define AD552XR_REG_DAC_INPUT_A_CH(x)
 
#define AD552XR_REG_FUNC_INT_STAT   (AD552XR_R2B | 0x168)
 
#define AD552XR_REG_DAC_DATA_READBACK_CH(x)
 
#define AD552XR_REG_TSENS_EN   (AD552XR_R2B | 0x18A)
 
#define AD552XR_REG_TSENS_ALERT_FLAG   (AD552XR_R2B | 0x18C)
 
#define AD552XR_REG_TSENS_SHTD_FLAG   (AD552XR_R2B | 0x18E)
 
#define AD552XR_REG_TSENS_ALERT_STAT   (AD552XR_R2B | 0x190)
 
#define AD552XR_REG_TSENS_SHTD_STAT   (AD552XR_R2B | 0x192)
 
#define AD552XR_REG_ALARMB_TSENS_EN   (AD552XR_R2B | 0x194)
 
#define AD552XR_REG_ALARMB_TSENS_SEL   (AD552XR_R2B | 0x196)
 
#define AD552XR_REG_TSENS_SHTD_EN_CH   (AD552XR_R2B | 0x198)
 
#define AD552XR_REG_DAC_DIS_DEGLITCH_CH   (AD552XR_R2B | 0x19A)
 
#define AD552XR_REG_DAC_INT_EN   (AD552XR_R2B | 0x19C)
 
#define AD552XR_REG_ALL_FUNC_INT_STAT   (AD552XR_R2B | 0x19E)
 
#define AD552XR_REG_FUNC_BUSY   (AD552XR_R2B | 0x1A0)
 
#define AD552XR_REG_REF_SEL   (AD552XR_R2B | 0x1A2)
 
#define AD552XR_REG_INIT_CRC_ERR_STAT   (AD552XR_R2B | 0x1A4)
 
#define AD552XR_INT_CONFIG_A_SW_RESET_MASK   (NO_OS_BIT(7) | NO_OS_BIT(0))
 
#define AD552XR_INT_CONFIG_A_ADDR_ASC_MASK   NO_OS_BIT(5)
 
#define AD552XR_INT_CONFIG_A_SDO_EN_MASK   NO_OS_BIT(4)
 
#define AD552XR_INT_CONFIG_B_SINGLE_INSTR_MASK   NO_OS_BIT(7)
 
#define AD552XR_DEVICE_CONFIG_OPERATING_MODE   NO_OS_GENMASK(1, 0)
 
#define AD552XR_CHIP_TYPE_MASK   NO_OS_GENMASK(3, 0)
 
#define AD552XR_CHIP_TYPE   0x4
 
#define AD552XR_PRODUCT_ID_H   0x41
 
#define AD552XR_PRODUCT_ID(x)
 
#define AD5529R_PID_16BIT_16CH_WLCSP   AD552XR_PRODUCT_ID(0x4A)
 
#define AD552XR_CHIP_GRADE_MASK   NO_OS_GENMASK(7, 4)
 
#define AD552XR_CHIP_GRADE   0x0
 
#define AD552XR_DEVICE_REV_MASK   NO_OS_GENMASK(3, 0)
 
#define AD552XR_DEVICE_REV   0x0
 
#define AD552XR_SPI_TYPE_MASK   NO_OS_GENMASK(7, 6)
 
#define AD552XR_SPI_TYPE   0x2
 
#define AD552XR_SPI_VER_MASK   NO_OS_GENMASK(5, 0)
 
#define AD552XR_SPI_VER   0x5
 
#define AD552XR_VENDOR_ID_L   0x56
 
#define AD552XR_VENDOR_ID_H   0x04
 
#define AD552XR_TRANSFER_CONFIG_MASK   NO_OS_BIT(2)
 
#define AD552XR_INT_CONFIG_C_STRICT_REGISTER_A_ACCESS_MASK   NO_OS_BIT(5)
 
#define AD552XR_NOT_READY_ERR_MASK   NO_OS_BIT(7)
 
#define AD552XR_CLK_COUNT_ERR_MASK   NO_OS_BIT(4)
 
#define AD552XR_CRC_ERR_MASK   NO_OS_BIT(3)
 
#define AD552XR_WRITE_TO_READ_ONLY_REG_ERR_MASK   NO_OS_BIT(2)
 
#define AD552XR_REG_PARTIAL_ACC_ERR_MASK   NO_OS_BIT(1)
 
#define AD552XR_ADDR_INV_ERR_MASK   NO_OS_BIT(0)
 
#define AD552XR_LDAC_HW_SEL_CH_MASK   NO_OS_GENMASK(9, 8)
 
#define AD552XR_LDAC_HW_EDGE_SEL_CH_MASK   NO_OS_GENMASK(1, 0)
 
#define AD552XR_OUT_RANGE_CHn_MASK   NO_OS_GENMASK(2, 0)
 
#define AD552XR_CAL_GAIN_CHn_MASK   NO_OS_GENMASK(7, 0)
 
#define AD552XR_FUNC_MODE_SEL_CHn   NO_OS_GENMASK(1, 0)
 
#define AD552XR_FUNC_DITHER_PERIOD_CHn_MASK   NO_OS_GENMASK(2, 0)
 
#define AD552XR_FUNC_DITHER_PHASE_CHn_MASK   NO_OS_GENMASK(1, 0)
 
#define AD552XR_FUNC_RAMP_STEP_CHn_MASK   NO_OS_GENMASK(7, 0)
 
#define AD552XR_MUX_OUT_EN   NO_OS_BIT(7)
 
#define AD552XR_MUX_PARAM_SEL_MASK   NO_OS_GENMASK(5, 0)
 
#define AD552XR_MULTI_DAC_SW_LDAC_TRIG   NO_OS_BIT(0)
 
#define AD552XR_VREF_SEL_MASK   NO_OS_BIT(0)
 
#define AD552XR_MAX_NUM_CH   16
 
#define AD552XR_CHANNEL_SEL(ch)
 
#define AD552XR_NUM_MD_ADDR_LINES   2
 
#define AD552XR_INTF_CFG_A_DEFAULT   0x10
 
#define AD552XR_NUM_REGS   51
 

Enumerations

enum  ad552xr_type {
  ID_AD5529R ,
  AD552XR_NUM_TYPES
}
 AD552XR list of supported device types. More...
 
enum  ad552xr_dac_resolution { AD552XR_RESOLUTION_16_BIT = 16 }
 AD552XR list of supported data resolution. More...
 
enum  ad552xr_num_channels { AD552XR_NUM_CHANNELS_16 = 16 }
 AD552XR list of supported number of channels. More...
 
enum  ad552xr_vref_select {
  AD552XR_EXTERNAL_VREF ,
  AD552XR_INTERNAL_VREF
}
 Voltage reference options. More...
 
enum  ad552xr_ldac_edge_trig {
  RISING_EDGE_TRIG ,
  FALLING_EDGE_TRIG ,
  ANY_EDGE_TRIG
}
 AD552XR hardware LDAC edge select options. More...
 
enum  ad552xr_operating_mode {
  SHUTDOWN_SW ,
  SHUTDOWN_SW_W_GND ,
  NORMAL_SW ,
  SHUTDOWN_HW ,
  SHUTDOWN_HW_W_GND ,
  NORMAL_HW
}
 AD552XR hardware-software LDAC select options. More...
 
enum  ad552xr_output_range {
  AD552XR_UNIPOLAR_5V ,
  AD552XR_UNIPOLAR_10V ,
  AD552XR_UNIPOLAR_20V ,
  AD552XR_UNIPOLAR_40V ,
  AD552XR_BIPOLAR_5V ,
  AD552XR_BIPOLAR_10V ,
  AD552XR_BIPOLAR_15V ,
  AD552XR_BIPOLAR_20V
}
 AD552XR list of output range. More...
 
enum  ad552xr_mux_out_select {
  AD552XR_MUX_OUT_AGND ,
  AD552XR_MUX_OUT_VOUT0 ,
  AD552XR_MUX_OUT_VOUT1 ,
  AD552XR_MUX_OUT_VOUT2 ,
  AD552XR_MUX_OUT_VOUT3 ,
  AD552XR_MUX_OUT_VOUT4 ,
  AD552XR_MUX_OUT_VOUT5 ,
  AD552XR_MUX_OUT_VOUT6 ,
  AD552XR_MUX_OUT_VOUT7 ,
  AD552XR_MUX_OUT_VOUT8 ,
  AD552XR_MUX_OUT_VOUT9 ,
  AD552XR_MUX_OUT_VOUT10 ,
  AD552XR_MUX_OUT_VOUT11 ,
  AD552XR_MUX_OUT_VOUT12 ,
  AD552XR_MUX_OUT_VOUT13 ,
  AD552XR_MUX_OUT_VOUT14 ,
  AD552XR_MUX_OUT_VOUT15 ,
  AD552XR_MUX_OUT_IOUT0 ,
  AD552XR_MUX_OUT_IOUT1 ,
  AD552XR_MUX_OUT_IOUT2 ,
  AD552XR_MUX_OUT_IOUT3 ,
  AD552XR_MUX_OUT_IOUT4 ,
  AD552XR_MUX_OUT_IOUT5 ,
  AD552XR_MUX_OUT_IOUT6 ,
  AD552XR_MUX_OUT_IOUT7 ,
  AD552XR_MUX_OUT_IOUT8 ,
  AD552XR_MUX_OUT_IOUT9 ,
  AD552XR_MUX_OUT_IOUT10 ,
  AD552XR_MUX_OUT_IOUT11 ,
  AD552XR_MUX_OUT_IOUT12 ,
  AD552XR_MUX_OUT_IOUT13 ,
  AD552XR_MUX_OUT_IOUT14 ,
  AD552XR_MUX_OUT_IOUT15 ,
  AD552XR_MUX_OUT_PVDD3 ,
  AD552XR_MUX_OUT_TEMPSENS0 ,
  AD552XR_MUX_OUT_TEMPSENS1 ,
  AD552XR_MUX_OUT_TEMPSENS2 ,
  AD552XR_MUX_OUT_TEMPSENS3 ,
  AD552XR_MUX_OUT_VMON ,
  AD552XR_MUX_OUT_IMON ,
  AD552XR_MUX_OUT_HZ
}
 Signals to monitor on MUX_OUT pin. More...
 
enum  ad552xr_hw_sw_ldac {
  AD552XR_HW_LDAC ,
  AD552XR_SW_LDAC
}
 AD552XR HW or SW LDAC mode. More...
 
enum  ad552xr_function_mode {
  AD552XR_FUNCTION_MODE_TOGGLE ,
  AD552XR_FUNCTION_MODE_DITHER ,
  AD552XR_FUNCTION_MODE_SAWTOOTH ,
  AD552XR_FUNCTION_MODE_TRIANGULAR
}
 DAC Function modes. More...
 
enum  ad552xr_ldac_toggle_sel {
  AD552XR_LDAC_TGP_0 ,
  AD552XR_LDAC_TGP_1 ,
  AD552XR_LDAC_TGP_2 ,
  AD552XR_LDAC_TGP_3 ,
  AD552XR_NUM_LDAC_TGP_PINS
}
 LDAC Toggle pin select. More...
 
enum  ad552xr_dither_period {
  SAMPLES_128 ,
  SAMPLES_64 ,
  SAMPLES_32 ,
  SAMPLES_16 ,
  SAMPLES_8 ,
  SAMPLES_4 ,
  SAMPLES_2
}
 AD552XR list of dither function period settings. More...
 
enum  ad552xr_dither_phase {
  DEGREES_0 ,
  DEGREES_90 ,
  DEGREES_180 ,
  DEGREES_270
}
 AD552XR list of dither function phase settings. More...
 

Functions

int ad552xr_spi_reg_read (struct ad552xr_dev *dev, uint32_t reg_addr, uint16_t *reg_data)
 Read from device.
 
int ad552xr_spi_reg_write (struct ad552xr_dev *dev, uint32_t reg_addr, uint16_t reg_data)
 Write to device.
 
int ad552xr_spi_write_mask (struct ad552xr_dev *dev, uint32_t reg_addr, uint32_t mask, uint16_t data)
 SPI write to device using a mask.
 
int ad552xr_set_reference (struct ad552xr_dev *dev, enum ad552xr_vref_select ref_sel)
 
int ad552xr_set_ch_output_range (struct ad552xr_dev *dev, uint8_t ch, enum ad552xr_output_range range_sel)
 
int ad552xr_channel_output_en (struct ad552xr_dev *dev, uint8_t ch, bool en)
 
int ad552xr_func_en (struct ad552xr_dev *dev, uint8_t ch, bool en)
 
int ad552xr_func_mode_select (struct ad552xr_dev *dev, uint8_t ch, enum ad552xr_function_mode func_mode_sel)
 
int ad552xr_set_dither_period (struct ad552xr_dev *dev, uint8_t ch, enum ad552xr_dither_period period)
 
int ad552xr_set_dither_phase (struct ad552xr_dev *dev, uint8_t ch, enum ad552xr_dither_phase phase)
 
int ad552xr_set_ramp_step_size (struct ad552xr_dev *dev, uint8_t ch, uint8_t step_size)
 
int ad552xr_set_hw_sw_ldac (struct ad552xr_dev *dev, uint8_t ch, enum ad552xr_hw_sw_ldac ldac_mode_sel)
 
int ad552xr_set_sync_async_ldac (struct ad552xr_dev *dev, uint8_t ch, bool is_sync)
 
int ad552xr_set_hw_edge_trigger (struct ad552xr_dev *dev, uint8_t chn, enum ad552xr_ldac_edge_trig trig_edge)
 Set LDAC/TGP edge trigger.
 
int ad552xr_set_hw_ldac_toggle_pin (struct ad552xr_dev *dev, uint8_t ch, enum ad552xr_ldac_toggle_sel ldac_hw_sel)
 Set LDAC/TGP source pin.
 
int ad552xr_set_dac_a_value (struct ad552xr_dev *dev, uint8_t ch, uint16_t dac_value)
 
int ad552xr_set_dac_b_value (struct ad552xr_dev *dev, uint8_t ch, uint16_t dac_value)
 
int ad552xr_hw_ldac_trigger (struct ad552xr_dev *dev, enum ad552xr_ldac_toggle_sel ldac_hw_sel, uint32_t delay_us)
 Trigger the LDAC using hardware.
 
int ad552xr_sw_ldac_trigger (struct ad552xr_dev *dev)
 Trigger the LDAC using software.
 
int ad552xr_set_device_spi (struct ad552xr_dev *dev, struct ad552xr_device_spi_settings *spi_settings)
 Set device spi settings.
 
int ad552xr_set_mux_out_select (struct ad552xr_dev *dev, enum ad552xr_mux_out_select mux_output_sel)
 
int ad552xr_sw_reset (struct ad552xr_dev *dev)
 Perform soft reset.
 
int ad552xr_hw_reset (struct ad552xr_dev *dev)
 Perform hard reset.
 
int ad552xr_init (struct ad552xr_dev **device, struct ad552xr_init_param *init_param)
 Initialize the device.
 
int ad552xr_remove (struct ad552xr_dev *dev)
 Free the resources allocated by ad552xr_init().
 

Detailed Description

Header file of AD552XR Driver.

Author
Naga Himanshu Indraganti (naga..nosp@m.indr.nosp@m.agant.nosp@m.i@an.nosp@m.alog..nosp@m.com)

Copyright 2026(c) Analog Devices, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Macro Definition Documentation

◆ AD5529R_PID_16BIT_16CH_WLCSP

#define AD5529R_PID_16BIT_16CH_WLCSP   AD552XR_PRODUCT_ID(0x4A)

◆ AD552XR_ADDR

#define AD552XR_ADDR ( x)
Value:
((x) & 0xFFFF)

◆ AD552XR_ADDR_INV_ERR_MASK

#define AD552XR_ADDR_INV_ERR_MASK   NO_OS_BIT(0)

◆ AD552XR_ADDR_MASK

#define AD552XR_ADDR_MASK   (~AD552XR_READ_BIT)

◆ AD552XR_CAL_GAIN_CHn_MASK

#define AD552XR_CAL_GAIN_CHn_MASK   NO_OS_GENMASK(7, 0)

◆ AD552XR_CHANNEL_SEL

#define AD552XR_CHANNEL_SEL ( ch)
Value:
#define NO_OS_BIT(x)
Definition no_os_util.h:46

◆ AD552XR_CHIP_GRADE

#define AD552XR_CHIP_GRADE   0x0

◆ AD552XR_CHIP_GRADE_MASK

#define AD552XR_CHIP_GRADE_MASK   NO_OS_GENMASK(7, 4)

◆ AD552XR_CHIP_TYPE

#define AD552XR_CHIP_TYPE   0x4

◆ AD552XR_CHIP_TYPE_MASK

#define AD552XR_CHIP_TYPE_MASK   NO_OS_GENMASK(3, 0)

◆ AD552XR_CLK_COUNT_ERR_MASK

#define AD552XR_CLK_COUNT_ERR_MASK   NO_OS_BIT(4)

◆ AD552XR_CRC_ERR_MASK

#define AD552XR_CRC_ERR_MASK   NO_OS_BIT(3)

◆ AD552XR_DEVICE_CONFIG_OPERATING_MODE

#define AD552XR_DEVICE_CONFIG_OPERATING_MODE   NO_OS_GENMASK(1, 0)

◆ AD552XR_DEVICE_REV

#define AD552XR_DEVICE_REV   0x0

◆ AD552XR_DEVICE_REV_MASK

#define AD552XR_DEVICE_REV_MASK   NO_OS_GENMASK(3, 0)

◆ AD552XR_FUNC_DITHER_PERIOD_CHn_MASK

#define AD552XR_FUNC_DITHER_PERIOD_CHn_MASK   NO_OS_GENMASK(2, 0)

◆ AD552XR_FUNC_DITHER_PHASE_CHn_MASK

#define AD552XR_FUNC_DITHER_PHASE_CHn_MASK   NO_OS_GENMASK(1, 0)

◆ AD552XR_FUNC_MODE_SEL_CHn

#define AD552XR_FUNC_MODE_SEL_CHn   NO_OS_GENMASK(1, 0)

◆ AD552XR_FUNC_RAMP_STEP_CHn_MASK

#define AD552XR_FUNC_RAMP_STEP_CHn_MASK   NO_OS_GENMASK(7, 0)

◆ AD552XR_INT_CONFIG_A_ADDR_ASC_MASK

#define AD552XR_INT_CONFIG_A_ADDR_ASC_MASK   NO_OS_BIT(5)

◆ AD552XR_INT_CONFIG_A_SDO_EN_MASK

#define AD552XR_INT_CONFIG_A_SDO_EN_MASK   NO_OS_BIT(4)

◆ AD552XR_INT_CONFIG_A_SW_RESET_MASK

#define AD552XR_INT_CONFIG_A_SW_RESET_MASK   (NO_OS_BIT(7) | NO_OS_BIT(0))

◆ AD552XR_INT_CONFIG_B_SINGLE_INSTR_MASK

#define AD552XR_INT_CONFIG_B_SINGLE_INSTR_MASK   NO_OS_BIT(7)

◆ AD552XR_INT_CONFIG_C_STRICT_REGISTER_A_ACCESS_MASK

#define AD552XR_INT_CONFIG_C_STRICT_REGISTER_A_ACCESS_MASK   NO_OS_BIT(5)

◆ AD552XR_INTF_CFG_A_DEFAULT

#define AD552XR_INTF_CFG_A_DEFAULT   0x10

◆ AD552XR_LDAC_HW_EDGE_SEL_CH_MASK

#define AD552XR_LDAC_HW_EDGE_SEL_CH_MASK   NO_OS_GENMASK(1, 0)

◆ AD552XR_LDAC_HW_SEL_CH_MASK

#define AD552XR_LDAC_HW_SEL_CH_MASK   NO_OS_GENMASK(9, 8)

◆ AD552XR_LEN

#define AD552XR_LEN ( x)
Value:
((x) >> 16)

◆ AD552XR_MAX_NUM_CH

#define AD552XR_MAX_NUM_CH   16

◆ AD552XR_MULTI_DAC_SW_LDAC_TRIG

#define AD552XR_MULTI_DAC_SW_LDAC_TRIG   NO_OS_BIT(0)

◆ AD552XR_MULTIBYTE_REG_END

#define AD552XR_MULTIBYTE_REG_END   0x71

◆ AD552XR_MULTIBYTE_REG_START

#define AD552XR_MULTIBYTE_REG_START   0x14

◆ AD552XR_MUX_OUT_EN

#define AD552XR_MUX_OUT_EN   NO_OS_BIT(7)

◆ AD552XR_MUX_PARAM_SEL_MASK

#define AD552XR_MUX_PARAM_SEL_MASK   NO_OS_GENMASK(5, 0)

◆ AD552XR_NOT_READY_ERR_MASK

#define AD552XR_NOT_READY_ERR_MASK   NO_OS_BIT(7)

◆ AD552XR_NUM_MD_ADDR_LINES

#define AD552XR_NUM_MD_ADDR_LINES   2

◆ AD552XR_NUM_REGS

#define AD552XR_NUM_REGS   51

◆ AD552XR_OUT_RANGE_CHn_MASK

#define AD552XR_OUT_RANGE_CHn_MASK   NO_OS_GENMASK(2, 0)

◆ AD552XR_PRODUCT_ID

#define AD552XR_PRODUCT_ID ( x)
Value:
((AD552XR_PRODUCT_ID_H << 8) | (x))
#define AD552XR_PRODUCT_ID_H
Definition ad552xr.h:144

◆ AD552XR_PRODUCT_ID_H

#define AD552XR_PRODUCT_ID_H   0x41

◆ AD552XR_R1B

#define AD552XR_R1B   (1ul << 16)

◆ AD552XR_R2B

#define AD552XR_R2B   (2ul << 16)

◆ AD552XR_READ_BIT

#define AD552XR_READ_BIT   NO_OS_BIT(7)

◆ AD552XR_REG_ALARMB_TSENS_EN

#define AD552XR_REG_ALARMB_TSENS_EN   (AD552XR_R2B | 0x194)

◆ AD552XR_REG_ALARMB_TSENS_SEL

#define AD552XR_REG_ALARMB_TSENS_SEL   (AD552XR_R2B | 0x196)

◆ AD552XR_REG_ALL_FUNC_INT_STAT

#define AD552XR_REG_ALL_FUNC_INT_STAT   (AD552XR_R2B | 0x19E)

◆ AD552XR_REG_CAL_GAIN_CH

#define AD552XR_REG_CAL_GAIN_CH ( x)
Value:
#define AD552XR_REG_CH_OFFSET(x)
Definition ad552xr.h:45
#define AD552XR_R2B
Definition ad552xr.h:42

◆ AD552XR_REG_CAL_OFFSET_CH

#define AD552XR_REG_CAL_OFFSET_CH ( x)
Value:

◆ AD552XR_REG_CH_OFFSET

#define AD552XR_REG_CH_OFFSET ( x)
Value:
((x) * 2)

◆ AD552XR_REG_CHIP_GRADE

#define AD552XR_REG_CHIP_GRADE   (AD552XR_R1B | 0x06)

◆ AD552XR_REG_CHIP_TYPE

#define AD552XR_REG_CHIP_TYPE   (AD552XR_R1B | 0x03)

◆ AD552XR_REG_DAC_DATA_READBACK_CH

#define AD552XR_REG_DAC_DATA_READBACK_CH ( x)
Value:

◆ AD552XR_REG_DAC_DIS_DEGLITCH_CH

#define AD552XR_REG_DAC_DIS_DEGLITCH_CH   (AD552XR_R2B | 0x19A)

◆ AD552XR_REG_DAC_INPUT_A_CH

#define AD552XR_REG_DAC_INPUT_A_CH ( x)
Value:

◆ AD552XR_REG_DAC_INT_EN

#define AD552XR_REG_DAC_INT_EN   (AD552XR_R2B | 0x19C)

◆ AD552XR_REG_DEVICE_CONFIG

#define AD552XR_REG_DEVICE_CONFIG   (AD552XR_R1B | 0x02)

◆ AD552XR_REG_FUNC_BUSY

#define AD552XR_REG_FUNC_BUSY   (AD552XR_R2B | 0x1A0)

◆ AD552XR_REG_FUNC_DAC_INPUT_B_CH

#define AD552XR_REG_FUNC_DAC_INPUT_B_CH ( x)
Value:

◆ AD552XR_REG_FUNC_DITHER_PERIOD_CH

#define AD552XR_REG_FUNC_DITHER_PERIOD_CH ( x)
Value:

◆ AD552XR_REG_FUNC_DITHER_PHASE_CH

#define AD552XR_REG_FUNC_DITHER_PHASE_CH ( x)
Value:

◆ AD552XR_REG_FUNC_EN

#define AD552XR_REG_FUNC_EN   (AD552XR_R2B | 0x9C)

◆ AD552XR_REG_FUNC_INT_EN

#define AD552XR_REG_FUNC_INT_EN ( x)
Value:
(AD552XR_R2B | 0x13E)

◆ AD552XR_REG_FUNC_INT_STAT

#define AD552XR_REG_FUNC_INT_STAT   (AD552XR_R2B | 0x168)

◆ AD552XR_REG_FUNC_MODE_SEL_CH

#define AD552XR_REG_FUNC_MODE_SEL_CH ( x)
Value:

◆ AD552XR_REG_FUNC_RAMP_STEP_CH

#define AD552XR_REG_FUNC_RAMP_STEP_CH ( x)
Value:

◆ AD552XR_REG_INIT_CRC_ERR_STAT

#define AD552XR_REG_INIT_CRC_ERR_STAT   (AD552XR_R2B | 0x1A4)

◆ AD552XR_REG_INTERFACE_CONFIG_A

#define AD552XR_REG_INTERFACE_CONFIG_A   (AD552XR_R1B | 0x00)

◆ AD552XR_REG_INTERFACE_CONFIG_B

#define AD552XR_REG_INTERFACE_CONFIG_B   (AD552XR_R1B | 0x01)

◆ AD552XR_REG_INTERFACE_CONFIG_C

#define AD552XR_REG_INTERFACE_CONFIG_C   (AD552XR_R1B | 0x10)

◆ AD552XR_REG_INTERFACE_STATUS_A

#define AD552XR_REG_INTERFACE_STATUS_A   (AD552XR_R1B | 0x11)

◆ AD552XR_REG_LDAC_HW_SRC_CH

#define AD552XR_REG_LDAC_HW_SRC_CH ( x)
Value:

◆ AD552XR_REG_LDAC_HW_SW

#define AD552XR_REG_LDAC_HW_SW   (AD552XR_R2B | 0x18)

◆ AD552XR_REG_LDAC_SYNC_ASYNC

#define AD552XR_REG_LDAC_SYNC_ASYNC   (AD552XR_R2B | 0x16)

◆ AD552XR_REG_MULTI_INPUT

#define AD552XR_REG_MULTI_INPUT   (AD552XR_R2B | 0x144)

◆ AD552XR_REG_MULTI_INPUT_SEL

#define AD552XR_REG_MULTI_INPUT_SEL   (AD552XR_R2B | 0x14)

◆ AD552XR_REG_MULTI_SW_LDAC

#define AD552XR_REG_MULTI_SW_LDAC   (AD552XR_R2B | 0x142)

◆ AD552XR_REG_MUX_OUT_SEL

#define AD552XR_REG_MUX_OUT_SEL   (AD552XR_R2B | 0x140)

◆ AD552XR_REG_OUT_EN

#define AD552XR_REG_OUT_EN   (AD552XR_R2B | 0x3A)

◆ AD552XR_REG_OUT_RANGE_CH

#define AD552XR_REG_OUT_RANGE_CH ( x)
Value:

◆ AD552XR_REG_PARTIAL_ACC_ERR_MASK

#define AD552XR_REG_PARTIAL_ACC_ERR_MASK   NO_OS_BIT(1)

◆ AD552XR_REG_PRODUCT_ID_H

#define AD552XR_REG_PRODUCT_ID_H   (AD552XR_R1B | 0x05)

◆ AD552XR_REG_PRODUCT_ID_L

#define AD552XR_REG_PRODUCT_ID_L   (AD552XR_R1B | 0x04)

◆ AD552XR_REG_REF_SEL

#define AD552XR_REG_REF_SEL   (AD552XR_R2B | 0x1A2)

◆ AD552XR_REG_SCRATCH_PAD

#define AD552XR_REG_SCRATCH_PAD   (AD552XR_R1B | 0x0A)

◆ AD552XR_REG_SPI_REVISION

#define AD552XR_REG_SPI_REVISION   (AD552XR_R1B | 0x0B)

◆ AD552XR_REG_STREAM_MODE

#define AD552XR_REG_STREAM_MODE   (AD552XR_R1B | 0x0E)

◆ AD552XR_REG_SW_LDAC

#define AD552XR_REG_SW_LDAC   (AD552XR_R2B | 0x146)

◆ AD552XR_REG_TRANSFER_CONFIG

#define AD552XR_REG_TRANSFER_CONFIG   (AD552XR_R1B | 0x0F)

◆ AD552XR_REG_TSENS_ALERT_FLAG

#define AD552XR_REG_TSENS_ALERT_FLAG   (AD552XR_R2B | 0x18C)

◆ AD552XR_REG_TSENS_ALERT_STAT

#define AD552XR_REG_TSENS_ALERT_STAT   (AD552XR_R2B | 0x190)

◆ AD552XR_REG_TSENS_EN

#define AD552XR_REG_TSENS_EN   (AD552XR_R2B | 0x18A)

◆ AD552XR_REG_TSENS_SHTD_EN_CH

#define AD552XR_REG_TSENS_SHTD_EN_CH   (AD552XR_R2B | 0x198)

◆ AD552XR_REG_TSENS_SHTD_FLAG

#define AD552XR_REG_TSENS_SHTD_FLAG   (AD552XR_R2B | 0x18E)

◆ AD552XR_REG_TSENS_SHTD_STAT

#define AD552XR_REG_TSENS_SHTD_STAT   (AD552XR_R2B | 0x192)

◆ AD552XR_REG_VENDOR_H

#define AD552XR_REG_VENDOR_H   (AD552XR_R1B | 0x0D)

◆ AD552XR_REG_VENDOR_L

#define AD552XR_REG_VENDOR_L   (AD552XR_R1B | 0x0C)

◆ AD552XR_SCRATCH_PAD_TEST_VAL

#define AD552XR_SCRATCH_PAD_TEST_VAL   0xAB

◆ AD552XR_SPI_TYPE

#define AD552XR_SPI_TYPE   0x2

◆ AD552XR_SPI_TYPE_MASK

#define AD552XR_SPI_TYPE_MASK   NO_OS_GENMASK(7, 6)

◆ AD552XR_SPI_VER

#define AD552XR_SPI_VER   0x5

◆ AD552XR_SPI_VER_MASK

#define AD552XR_SPI_VER_MASK   NO_OS_GENMASK(5, 0)

◆ AD552XR_TRANSFER_CONFIG_MASK

#define AD552XR_TRANSFER_CONFIG_MASK   NO_OS_BIT(2)

◆ AD552XR_VENDOR_ID_H

#define AD552XR_VENDOR_ID_H   0x04

◆ AD552XR_VENDOR_ID_L

#define AD552XR_VENDOR_ID_L   0x56

◆ AD552XR_VREF_SEL_MASK

#define AD552XR_VREF_SEL_MASK   NO_OS_BIT(0)

◆ AD552XR_WRITE_BIT_LONG_INSTR

#define AD552XR_WRITE_BIT_LONG_INSTR   0x00

◆ AD552XR_WRITE_TO_READ_ONLY_REG_ERR_MASK

#define AD552XR_WRITE_TO_READ_ONLY_REG_ERR_MASK   NO_OS_BIT(2)

Enumeration Type Documentation

◆ ad552xr_dac_resolution

AD552XR list of supported data resolution.

Enumerator
AD552XR_RESOLUTION_16_BIT 

◆ ad552xr_dither_period

AD552XR list of dither function period settings.

Enumerator
SAMPLES_128 

128 sample period setting

SAMPLES_64 

64 sample period setting

SAMPLES_32 

32 sample period setting

SAMPLES_16 

16 sample period setting

SAMPLES_8 

8 sample period setting

SAMPLES_4 

4 sample period setting

SAMPLES_2 

2 sample period setting

◆ ad552xr_dither_phase

AD552XR list of dither function phase settings.

Enumerator
DEGREES_0 

0 Degrees setting

DEGREES_90 

90 Degrees setting

DEGREES_180 

180 Degrees setting

DEGREES_270 

270 Degrees setting

◆ ad552xr_function_mode

DAC Function modes.

Enumerator
AD552XR_FUNCTION_MODE_TOGGLE 

Toggle Function

AD552XR_FUNCTION_MODE_DITHER 

Dither Function

AD552XR_FUNCTION_MODE_SAWTOOTH 

Ramp Sawtooth Function

AD552XR_FUNCTION_MODE_TRIANGULAR 

Ramp Triangular Function

◆ ad552xr_hw_sw_ldac

AD552XR HW or SW LDAC mode.

Enumerator
AD552XR_HW_LDAC 

HW LDAC

AD552XR_SW_LDAC 

SW LDAC

◆ ad552xr_ldac_edge_trig

AD552XR hardware LDAC edge select options.

Enumerator
RISING_EDGE_TRIG 

Trigger at Rising Edge.

FALLING_EDGE_TRIG 

Trigger at Falling Edge.

ANY_EDGE_TRIG 

Trigger at Any Edge.

◆ ad552xr_ldac_toggle_sel

LDAC Toggle pin select.

Enumerator
AD552XR_LDAC_TGP_0 
AD552XR_LDAC_TGP_1 
AD552XR_LDAC_TGP_2 
AD552XR_LDAC_TGP_3 
AD552XR_NUM_LDAC_TGP_PINS 

◆ ad552xr_mux_out_select

Signals to monitor on MUX_OUT pin.

Enumerator
AD552XR_MUX_OUT_AGND 
AD552XR_MUX_OUT_VOUT0 
AD552XR_MUX_OUT_VOUT1 
AD552XR_MUX_OUT_VOUT2 
AD552XR_MUX_OUT_VOUT3 
AD552XR_MUX_OUT_VOUT4 
AD552XR_MUX_OUT_VOUT5 
AD552XR_MUX_OUT_VOUT6 
AD552XR_MUX_OUT_VOUT7 
AD552XR_MUX_OUT_VOUT8 
AD552XR_MUX_OUT_VOUT9 
AD552XR_MUX_OUT_VOUT10 
AD552XR_MUX_OUT_VOUT11 
AD552XR_MUX_OUT_VOUT12 
AD552XR_MUX_OUT_VOUT13 
AD552XR_MUX_OUT_VOUT14 
AD552XR_MUX_OUT_VOUT15 
AD552XR_MUX_OUT_IOUT0 
AD552XR_MUX_OUT_IOUT1 
AD552XR_MUX_OUT_IOUT2 
AD552XR_MUX_OUT_IOUT3 
AD552XR_MUX_OUT_IOUT4 
AD552XR_MUX_OUT_IOUT5 
AD552XR_MUX_OUT_IOUT6 
AD552XR_MUX_OUT_IOUT7 
AD552XR_MUX_OUT_IOUT8 
AD552XR_MUX_OUT_IOUT9 
AD552XR_MUX_OUT_IOUT10 
AD552XR_MUX_OUT_IOUT11 
AD552XR_MUX_OUT_IOUT12 
AD552XR_MUX_OUT_IOUT13 
AD552XR_MUX_OUT_IOUT14 
AD552XR_MUX_OUT_IOUT15 
AD552XR_MUX_OUT_PVDD3 
AD552XR_MUX_OUT_TEMPSENS0 
AD552XR_MUX_OUT_TEMPSENS1 
AD552XR_MUX_OUT_TEMPSENS2 
AD552XR_MUX_OUT_TEMPSENS3 
AD552XR_MUX_OUT_VMON 
AD552XR_MUX_OUT_IMON 
AD552XR_MUX_OUT_HZ 

◆ ad552xr_num_channels

AD552XR list of supported number of channels.

Enumerator
AD552XR_NUM_CHANNELS_16 

◆ ad552xr_operating_mode

AD552XR hardware-software LDAC select options.

Enumerator
SHUTDOWN_SW 
SHUTDOWN_SW_W_GND 
NORMAL_SW 
SHUTDOWN_HW 
SHUTDOWN_HW_W_GND 
NORMAL_HW 

◆ ad552xr_output_range

AD552XR list of output range.

Enumerator
AD552XR_UNIPOLAR_5V 

0V to 5V output range

AD552XR_UNIPOLAR_10V 

0V to 10V output range

AD552XR_UNIPOLAR_20V 

0V to 20V output range

AD552XR_UNIPOLAR_40V 

0V to 40V output range

AD552XR_BIPOLAR_5V 

-5V to +5V output range

AD552XR_BIPOLAR_10V 

-10V to +10V output range

AD552XR_BIPOLAR_15V 

-15V to +15V output range

AD552XR_BIPOLAR_20V 

-20V to +20V output range

◆ ad552xr_type

AD552XR list of supported device types.

Enumerator
ID_AD5529R 
AD552XR_NUM_TYPES 

◆ ad552xr_vref_select

Voltage reference options.

Enumerator
AD552XR_EXTERNAL_VREF 
AD552XR_INTERNAL_VREF 

Function Documentation

◆ ad552xr_channel_output_en()

int ad552xr_channel_output_en ( struct ad552xr_dev * dev,
uint8_t ch,
bool en )

Set channel output enable

Set the channel output enable.

Parameters
dev- The device structure.
ch- Channel selected.
en- Enable/disable for the channel.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_func_en()

int ad552xr_func_en ( struct ad552xr_dev * dev,
uint8_t ch,
bool en )

Set Function generator enable.

Set the function generator enable configuration.

Parameters
dev- The device structure.
ch- Channel selected.
en- Enable/disable for the channel.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_func_mode_select()

int ad552xr_func_mode_select ( struct ad552xr_dev * dev,
uint8_t ch,
enum ad552xr_function_mode func_mode_sel )

Set Function generator mode.

Set function generator mode for a channel.

Parameters
dev- The device structure.
ch- Channel selected.
func_mode_sel- Function generator mode to be selected. Accepted values: AD552XR_FUNCTION_MODE_TOGGLE (default) AD552XR_FUNCTION_MODE_DITHER AD552XR_FUNCTION_MODE_TRIANGULAR AD552XR_FUNCTION_MODE_SAWTOOTH
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_hw_ldac_trigger()

int ad552xr_hw_ldac_trigger ( struct ad552xr_dev * dev,
enum ad552xr_ldac_toggle_sel ldac_hw_sel,
uint32_t delay_us )

Trigger the LDAC using hardware.

Trigger the LDAC using hardware.

Parameters
dev- The device structure.
ldac_hw_sel- HW LDAC Toggle pin select. Accepted values: AD552XR_LDAC_TGP_0 (default) AD552XR_LDAC_TGP_1 AD552XR_LDAC_TGP_2 AD552XR_LDAC_TGP_3
delay_us- Pulse width of the HW toggle gpio trigger in microseconds.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_hw_reset()

int ad552xr_hw_reset ( struct ad552xr_dev * dev)

Perform hard reset.

Hard reset

Parameters
dev- The device structure.
Returns
0 in case of success, negative value otherwise.
Here is the caller graph for this function:

◆ ad552xr_init()

int ad552xr_init ( struct ad552xr_dev ** device,
struct ad552xr_init_param * init_param )

Initialize the device.

Initialize the device.

Parameters
device- The device structure.
init_param- The structure that contains the device initial parameters.
Returns
0 in case of success, negative value otherwise.

◆ ad552xr_remove()

int ad552xr_remove ( struct ad552xr_dev * dev)

Free the resources allocated by ad552xr_init().

Free the resources allocated by ad552xr_init().

Parameters
dev- The device structure.
Returns
0 in case of success, negative value otherwise.

◆ ad552xr_set_ch_output_range()

int ad552xr_set_ch_output_range ( struct ad552xr_dev * dev,
uint8_t ch,
enum ad552xr_output_range range_sel )

Set out output range of a channel.

Set output range for a channel.

Parameters
dev- The device structure.
ch- Channel selected.
range_sel- Output range to be selected. Accepted values: AD552XR_UNIPOLAR_5V (default) AD552XR_UNIPOLAR_10V AD552XR_UNIPOLAR_20V AD552XR_UNIPOLAR_40V AD552XR_BIPOLAR_5V AD552XR_BIPOLAR_10V AD552XR_BIPOLAR_15V AD552XR_BIPOLAR_20V
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_dac_a_value()

int ad552xr_set_dac_a_value ( struct ad552xr_dev * dev,
uint8_t ch,
uint16_t dac_value )

Set dac value on DAC input register A.

Set dac value on DAC input register A.

Parameters
dev- The device structure.
ch- selected channel.
dac_value- value that will be set in DAC input register A.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_dac_b_value()

int ad552xr_set_dac_b_value ( struct ad552xr_dev * dev,
uint8_t ch,
uint16_t dac_value )

Set dac values on DAC input registers A and B.

Set dac value on DAC input register B.

Parameters
dev- The device structure.
ch- selected channel.
dac_value- value that will be set in DAC input register B.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_device_spi()

int ad552xr_set_device_spi ( struct ad552xr_dev * dev,
struct ad552xr_device_spi_settings * spi_settings )

Set device spi settings.

Set device spi settings.

Parameters
dev- The device structure.
spi_settings- The structure that contains the device spi parameters.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_dither_period()

int ad552xr_set_dither_period ( struct ad552xr_dev * dev,
uint8_t ch,
enum ad552xr_dither_period period )

Set period for dither function generator.

Set period for dither function generator.

Parameters
dev- The device structure.
ch- Channel selected.
period- Dither period to be selected. Accepted values: SAMPLES_128 (default) SAMPLES_64 SAMPLES_32 SAMPLES_16 SAMPLES_8 SAMPLES_4 SAMPLES_2
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_dither_phase()

int ad552xr_set_dither_phase ( struct ad552xr_dev * dev,
uint8_t ch,
enum ad552xr_dither_phase phase )

Set phase for dither function generator.

Set phase for dither function generator.

Parameters
dev- The device structure.
ch- Channel selected.
phase- Dither phase to be selected. Accepted values: DEGREES_0 (default) DEGREES_90 DEGREES_180 DEGREES_270
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_hw_edge_trigger()

int ad552xr_set_hw_edge_trigger ( struct ad552xr_dev * dev,
uint8_t ch,
enum ad552xr_ldac_edge_trig trig_edge )

Set LDAC/TGP edge trigger.

Set LDAC/TGP edge trigger.

Parameters
dev- The device structure.
ch- Channel selected.
trig_edge- Trigger edge select. Accepted values: RISING_EDGE_TRIG (default) FALLING_EDGE_TRIG ANY_EDGE_TRIG
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_hw_ldac_toggle_pin()

int ad552xr_set_hw_ldac_toggle_pin ( struct ad552xr_dev * dev,
uint8_t ch,
enum ad552xr_ldac_toggle_sel ldac_hw_sel )

Set LDAC/TGP source pin.

Set LDAC/TGP source pin.

Parameters
dev- The device structure.
ch- Channel selected.
ldac_hw_sel- HW LDAC Toggle pin select. Accepted values: AD552XR_LDAC_TGP_0 (default) AD552XR_LDAC_TGP_1 AD552XR_LDAC_TGP_2 AD552XR_LDAC_TGP_3
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_hw_sw_ldac()

int ad552xr_set_hw_sw_ldac ( struct ad552xr_dev * dev,
uint8_t ch,
enum ad552xr_hw_sw_ldac ldac_mode_sel )

Set HW/SW LDAC.

Set the hardware and software ldac configuration.

Parameters
dev- The device structure.
ch- Channel selected.
ldac_mode_sel- LDAC mode to be selected. Accepted values: AD552XR_HW_LDAC (default) AD552XR_SW_LDAC
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_mux_out_select()

int ad552xr_set_mux_out_select ( struct ad552xr_dev * dev,
enum ad552xr_mux_out_select mux_output_sel )

Set the multiplexer output select register.

Set the multiplexer output select register.

Parameters
dev- The device structure.
mux_output_sel- signal to be monitored on the mux_out pin.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_ramp_step_size()

int ad552xr_set_ramp_step_size ( struct ad552xr_dev * dev,
uint8_t ch,
uint8_t step_size )

Set ramp step size.

Set ramp step size.

Parameters
dev- The device structure.
ch- Channel selected.
step_size- Step size for ramp waveform.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_reference()

int ad552xr_set_reference ( struct ad552xr_dev * dev,
enum ad552xr_vref_select ref_sel )

Set reference configuration.

Set reference configuration.

Parameters
dev- The device structure.
ref_sel- The reference to be selected. Accepted values: AD552XR_INTERNAL_VREF_4P096V (default) AD552XR_EXTERNAL_VREF
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_set_sync_async_ldac()

int ad552xr_set_sync_async_ldac ( struct ad552xr_dev * dev,
uint8_t ch,
bool is_sync )

Set sync/async ldac configuration.

Set sync/async ldac configuration.

Parameters
dev- The device structure.
ch- Channel selected.
is_sync- To set to synchronous LDAC.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_spi_reg_read()

int ad552xr_spi_reg_read ( struct ad552xr_dev * dev,
uint32_t reg_addr,
uint16_t * reg_data )

Read from device.

Read from device.

Parameters
dev- The device structure.
reg_addr- The register address.
reg_data- The register data.
Returns
0 in case of success, negative value otherwise.
Here is the caller graph for this function:

◆ ad552xr_spi_reg_write()

int ad552xr_spi_reg_write ( struct ad552xr_dev * dev,
uint32_t reg_addr,
uint16_t reg_data )

Write to device.

Write to device.

Parameters
dev- The device structure.
reg_addr- The register address.
reg_data- The register data.
Returns
0 in case of success, negative value otherwise.
Here is the caller graph for this function:

◆ ad552xr_spi_write_mask()

int ad552xr_spi_write_mask ( struct ad552xr_dev * dev,
uint32_t reg_addr,
uint32_t mask,
uint16_t data )

SPI write to device using a mask.

SPI write to device using a mask.

Parameters
dev- The device structure.
reg_addr- The register address.
mask- The mask.
data- The register data.
Returns
0 in case of success, negative value otherwise.
Here is the caller graph for this function:

◆ ad552xr_sw_ldac_trigger()

int ad552xr_sw_ldac_trigger ( struct ad552xr_dev * dev)

Trigger the LDAC using software.

Trigger the LDAC using software.

Parameters
dev- The device structure.
Returns
0 in case of success, negative error code otherwise.

◆ ad552xr_sw_reset()

int ad552xr_sw_reset ( struct ad552xr_dev * dev)

Perform soft reset.

Soft reset

Parameters
dev- The device structure.
Returns
0 in case of success, negative value otherwise.
Here is the caller graph for this function: