![]() |
no-OS
|
Header file of ad5710r Driver. More...
#include <stdint.h>#include <stdbool.h>#include "no_os_spi.h"#include "no_os_gpio.h"#include "no_os_util.h"#include "no_os_crc8.h"Go to the source code of this file.
Classes | |
| struct | ad5710r_transfer_config |
| struct | ad5710r_transfer_data |
| struct | ad5710r_desc |
| struct | ad5710r_init_param |
Functions | |
| int | ad5710r_reg_write (struct ad5710r_desc *desc, uint32_t reg_addr, uint16_t reg_val) |
| Write into device register. | |
| int | ad5710r_reg_read (struct ad5710r_desc *desc, uint32_t reg_addr, uint16_t *reg_val) |
| Read from device register. | |
| int | ad5710r_spi_write_mask (struct ad5710r_desc *desc, uint32_t addr, uint32_t mask, uint16_t val) |
| SPI write to device using a mask. | |
| int | ad5710r_update_interface_cfg (struct ad5710r_desc *desc, struct ad5710r_transfer_config *cfg) |
| Updates the interface configuration. | |
| int | ad5710r_multiple_reg_write (struct ad5710r_desc *desc, uint32_t start_addr, uint8_t buff_len, uint8_t *buff) |
| Write multiple register's values. | |
| int | ad5710r_multiple_reg_read (struct ad5710r_desc *desc, uint32_t addr, uint8_t buff_len, uint8_t *buff) |
| Read multiple register's values. | |
| int | ad5710r_set_reference (struct ad5710r_desc *desc, enum ad5710r_ch_vref_select reference_selector) |
| Set reference configuration. | |
| int | ad5710r_set_operating_mode (struct ad5710r_desc *desc, uint8_t chn_num, enum ad5710r_operating_mode chn_op_mode) |
| Set operating mode for each channel. | |
| int | ad5710r_set_output_range (struct ad5710r_desc *desc, enum ad5710r_ch_output_range range_sel) |
| Set output range for all channels. | |
| int | ad5710r_set_crc_enable (struct ad5710r_desc *desc, bool en_di) |
| Configures the CRC selection bit. | |
| int | ad5710r_set_mux_out_select (struct ad5710r_desc *desc, enum ad5710r_mux_out_select mux_output_sel) |
| Set the multiplexer output select register. | |
| int | ad5710r_set_hw_ldac (struct ad5710r_desc *desc, uint8_t mask_hw_ldac) |
| Set the hardware ldac configuration. | |
| int | ad5710r_set_sw_ldac (struct ad5710r_desc *desc, uint8_t mask_sw_ldac) |
| Set the software ldac configuration. | |
| int | ad5710r_set_dac_value (struct ad5710r_desc *desc, uint16_t dac_value, uint8_t dac_channel, enum ad5710r_write_mode write_mode) |
| Set dac value based on the user selected DAC update mode. | |
| int | ad5710r_set_multidac_value (struct ad5710r_desc *desc, uint16_t dac_value, uint8_t dac_chn_mask, enum ad5710r_write_mode write_mode) |
| Sets dac value for multiple channels. | |
| int | ad5710r_sw_ldac_trigger (struct ad5710r_desc *desc) |
| Trigger the LDAC using software. | |
| int | ad5710r_hw_ldac_trigger (struct ad5710r_desc *desc) |
| Trigger the LDAC using hardware. | |
| int | ad5710r_reset (struct ad5710r_desc *desc) |
| Perform a hard/soft reset. | |
| int | ad5710r_channel_output_select (struct ad5710r_desc *desc, uint8_t chn_num, enum ad5710r_ch_mode_select ch_mode) |
| Selects the output mode for a specific channel of the AD5710R DAC. | |
| int | ad5710r_init (struct ad5710r_desc **desc, struct ad5710r_init_param *init_param) |
| Initialize the device structure. | |
| int | ad5710r_remove (struct ad5710r_desc *desc) |
| Free the device descriptor. | |
Header file of ad5710r Driver.
Copyright 2025(c) Analog Devices, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
| #define AD5710R_ADDR | ( | x | ) |
| #define AD5710R_ADDR_MASK (~AD5710R_READ_BIT) |
| #define AD5710R_CH_DAC_DATA_LSB | ( | x | ) |
| #define AD5710R_CH_DAC_DATA_MSB | ( | x | ) |
| #define AD5710R_CRC_POLY 0x07 |
| #define AD5710R_CRC_SEED 0xA5 |
| #define AD5710R_DEFAULT_STATUS_REG_VAL 0x04 |
| #define AD5710R_EXTERNAL_VREF_MASK NO_OS_BIT(1) |
| #define AD5710R_LDAC_PULSE_US 1 |
| #define AD5710R_LEN | ( | x | ) |
| #define AD5710R_MASK_ACTIVE_INTERFACE_MODE NO_OS_GENMASK(3, 2) |
| #define AD5710R_MASK_ADDR_ASCENSION NO_OS_BIT(5) |
| #define AD5710R_MASK_CH | ( | ch | ) |
| #define AD5710R_MASK_CLOCK_COUNTING_ERROR NO_OS_BIT(4) |
| #define AD5710R_MASK_CRC_ENABLE (NO_OS_GENMASK(7, 6) | NO_OS_GENMASK(1, 0)) |
| #define AD5710R_MASK_DEVICE_REVISION NO_OS_GENMASK(3, 0) |
| #define AD5710R_MASK_GRADE NO_OS_GENMASK(7, 4) |
| #define AD5710R_MASK_HW_LDAC_EN_0 | ( | x | ) |
| #define AD5710R_MASK_INTERFACE_NOT_READY NO_OS_BIT(7) |
| #define AD5710R_MASK_INVALID_OR_NO_CRC NO_OS_BIT(3) |
| #define AD5710R_MASK_LENGTH 0xFF |
| #define AD5710R_MASK_MUX_SELECT NO_OS_GENMASK(4, 0) |
| #define AD5710R_MASK_OPERATING_MODE | ( | x | ) |
| #define AD5710R_MASK_OPERATING_MODES NO_OS_GENMASK(1, 0) |
| #define AD5710R_MASK_OUTPUT_RANGE NO_OS_BIT(2) |
| #define AD5710R_MASK_PARTIAL_REGISTER_ACCESS NO_OS_BIT(1) |
| #define AD5710R_MASK_REERENCE_SELECT NO_OS_BIT(0) |
| #define AD5710R_MASK_SDO_ACTIVE NO_OS_BIT(4) |
| #define AD5710R_MASK_SHORT_INSTRUCTION NO_OS_BIT(3) |
| #define AD5710R_MASK_SINGLE_INST NO_OS_BIT(7) |
| #define AD5710R_MASK_STREAM_LENGTH_KEEP_VALUE NO_OS_BIT(2) |
| #define AD5710R_MASK_STRICT_REGISTER_ACCESS NO_OS_BIT(5) |
| #define AD5710R_MASK_SW_LDAC_EN_0 | ( | x | ) |
| #define AD5710R_MASK_SW_LDAC_TRIG_B NO_OS_BIT(7) |
| #define AD5710R_MAX_CHANNEL_OP_MODE_0 2 |
| #define AD5710R_MAX_REG_SIZE 2 |
| #define AD5710R_MAX_SHORT_REG_ADDR (AD5710R_R1B | 0x80) |
| #define AD5710R_MD_ADDR | ( | x | ) |
| #define AD5710R_MD_ADDR_MASK NO_OS_GENMASK(1, 0) |
| #define AD5710R_NUM_CH 8 |
| #define AD5710R_NUM_MUX_OUT_SELECTS 27 |
| #define AD5710R_NUM_REGS 46 |
| #define AD5710R_R1B (1ul << 16) |
| #define AD5710R_R2B (2ul << 16) |
| #define AD5710R_READ_BIT NO_OS_BIT(7) |
| #define AD5710R_REG_ADDR_CHIP_GRADE (AD5710R_R1B | 0x06) |
| #define AD5710R_REG_ADDR_CHIP_TYPE (AD5710R_R1B | 0x03) |
| #define AD5710R_REG_ADDR_DAC_CHN | ( | x | ) |
| #define AD5710R_REG_ADDR_DEVICE_CONFIG (AD5710R_R1B | 0x02) |
| #define AD5710R_REG_ADDR_HW_LDAC_EN_0 (AD5710R_R1B | 0xD0) |
| #define AD5710R_REG_ADDR_INPUT_CHN | ( | x | ) |
| #define AD5710R_REG_ADDR_INTERFACE_CONFIG_A (AD5710R_R1B | 0x00) |
| #define AD5710R_REG_ADDR_INTERFACE_CONFIG_B (AD5710R_R1B | 0x01) |
| #define AD5710R_REG_ADDR_INTERFACE_CONFIG_C (AD5710R_R1B | 0x10) |
| #define AD5710R_REG_ADDR_INTERFACE_STATUS_A (AD5710R_R1B | 0x11) |
| #define AD5710R_REG_ADDR_MAX 0xFF |
| #define AD5710R_REG_ADDR_MULTI_DAC_CH (AD5710R_R2B | 0XE2) |
| #define AD5710R_REG_ADDR_MULTI_DAC_SEL_0 (AD5710R_R1B | 0XE4) |
| #define AD5710R_REG_ADDR_MULTI_INPUT_CH (AD5710R_R2B | 0XE6) |
| #define AD5710R_REG_ADDR_MULTI_INPUT_SEL_0 (AD5710R_R1B | 0XE8) |
| #define AD5710R_REG_ADDR_MUX_OUT_SELECT (AD5710R_R1B | 0x93) |
| #define AD5710R_REG_ADDR_OPERATING_MODE_0 (AD5710R_R1B | 0x20) |
| #define AD5710R_REG_ADDR_OPERATING_MODE_1 (AD5710R_R1B | 0x21) |
| #define AD5710R_REG_ADDR_OPERATING_MODE_CHN | ( | x | ) |
| #define AD5710R_REG_ADDR_OUTPUT_CONTROL_0 (AD5710R_R1B | 0x2A) |
| #define AD5710R_REG_ADDR_PRODUCT_ID_H (AD5710R_R1B | 0x05) |
| #define AD5710R_REG_ADDR_PRODUCT_ID_L (AD5710R_R1B | 0x04) |
| #define AD5710R_REG_ADDR_REF_CONTROL_0 (AD5710R_R1B | 0x3C) |
| #define AD5710R_REG_ADDR_SCRATCH_PAD (AD5710R_R1B | 0x0A) |
| #define AD5710R_REG_ADDR_SPI_REVISION (AD5710R_R1B | 0x0B) |
| #define AD5710R_REG_ADDR_STATUS_CONTROL (AD5710R_R1B | 0xC2) |
| #define AD5710R_REG_ADDR_STREAM_MODE (AD5710R_R1B | 0x0E) |
| #define AD5710R_REG_ADDR_SW_LDAC_EN_0 (AD5710R_R1B | 0xD1) |
| #define AD5710R_REG_ADDR_SW_LDAC_TRIG_A (AD5710R_R1B | 0XE5) |
| #define AD5710R_REG_ADDR_SW_LDAC_TRIG_B (AD5710R_R1B | 0XE9) |
| #define AD5710R_REG_ADDR_TRANSFER_REGISTER (AD5710R_R1B | 0x0F) |
| #define AD5710R_REG_ADDR_VENDOR_H (AD5710R_R1B | 0x0D) |
| #define AD5710R_REG_ADDR_VENDOR_L (AD5710R_R1B | 0x0C) |
| #define AD5710R_SCRATCH_PAD_TEST_VAL 0x34 |
| #define AD5710R_V_I_CH_OUTPUT_SELECT (AD5710R_R1B | 0xFF) |
| #define AD5710R_WRITE_BIT_LONG_INSTR 0x00 |
| enum ad5710r_id |
Signals to monitor on MUX_OUT pin.
| enum ad5710r_product_id |
| enum ad5710r_status |
| enum ad5710r_write_mode |
| int ad5710r_channel_output_select | ( | struct ad5710r_desc * | desc, |
| uint8_t | chn_num, | ||
| enum ad5710r_ch_mode_select | ch_mode ) |
Selects the output mode for a specific channel of the AD5710R DAC.
| desc | - The device structure. |
| chn_num | - Channel number to configure. |
| ch_mode | - Output mode to select for the channel (voltage or current). |
| int ad5710r_hw_ldac_trigger | ( | struct ad5710r_desc * | desc | ) |
Trigger the LDAC using hardware.
| desc | - The device structure. |
| int ad5710r_init | ( | struct ad5710r_desc ** | desc, |
| struct ad5710r_init_param * | init_param ) |
Initialize the device structure.
| desc | - The device structure to be initialized. |
| init_param | - Initialization parameter for the device descriptor. |
| int ad5710r_multiple_reg_read | ( | struct ad5710r_desc * | desc, |
| uint32_t | addr, | ||
| uint8_t | count, | ||
| uint8_t * | buff ) |
Read multiple register's values.
| desc | - The device structure. |
| addr | - Starting register address to read from. |
| count | - Number of bytes to read. |
| buff | - Buffer to store data. |
| int ad5710r_multiple_reg_write | ( | struct ad5710r_desc * | desc, |
| uint32_t | start_addr, | ||
| uint8_t | count, | ||
| uint8_t * | buff ) |
Write multiple register's values.
| desc | - The device structure. |
| start_addr | - Starting register address to write into. |
| count | - Number of bytes to write. |
| buff | - Buffer to write data from. |
| int ad5710r_reg_read | ( | struct ad5710r_desc * | desc, |
| uint32_t | reg_addr, | ||
| uint16_t * | reg_val ) |
Read from device register.
| desc | - The device structure. |
| reg_addr | - The register's address. |
| reg_val | - The register's read value. |
| int ad5710r_reg_write | ( | struct ad5710r_desc * | desc, |
| uint32_t | reg_addr, | ||
| uint16_t | reg_val ) |
Write into device register.
| desc | - The device structure. |
| reg_addr | - The register's address. |
| reg_val | - The register's value. |
| int ad5710r_remove | ( | struct ad5710r_desc * | desc | ) |
Free the device descriptor.
| desc | - The device structure. |
| int ad5710r_reset | ( | struct ad5710r_desc * | desc | ) |
Perform a hard/soft reset.
| desc | - The device structure. |
| int ad5710r_set_crc_enable | ( | struct ad5710r_desc * | desc, |
| bool | en_di ) |
Configures the CRC selection bit.
| desc | - The device structure. |
| en_di | - boolean selection for crc bit. |
| int ad5710r_set_dac_value | ( | struct ad5710r_desc * | desc, |
| uint16_t | dac_value, | ||
| uint8_t | dac_channel, | ||
| enum ad5710r_write_mode | write_mode ) |
Set dac value based on the user selected DAC update mode.
| desc | - The device structure. |
| dac_value | - value that will be set in the register. |
| dac_channel | - selected channel. |
| write_mode | - selected write mode. |
| int ad5710r_set_hw_ldac | ( | struct ad5710r_desc * | desc, |
| uint8_t | mask_hw_ldac ) |
Set the hardware ldac configuration.
| desc | - The device structure. |
| mask_hw_ldac | - The array contains HW LDAC channel masks. |
| int ad5710r_set_multidac_value | ( | struct ad5710r_desc * | desc, |
| uint16_t | dac_value, | ||
| uint8_t | dac_chn_mask, | ||
| enum ad5710r_write_mode | write_mode ) |
Sets dac value for multiple channels.
| desc | - The device structure. |
| dac_value | - value that will be set in the register. |
| dac_chn_mask | - mask for selected channels. |
| write_mode | - selected write mode. |
| int ad5710r_set_mux_out_select | ( | struct ad5710r_desc * | desc, |
| enum ad5710r_mux_out_select | mux_output_sel ) |
Set the multiplexer output select register.
| desc | - The device structure. |
| mux_output_sel | - signal to be monitored on the mux_out pin. |
| int ad5710r_set_operating_mode | ( | struct ad5710r_desc * | desc, |
| uint8_t | chn_num, | ||
| enum ad5710r_operating_mode | chn_op_mode ) |
Set operating mode for each channel.
| desc | - The device structure. |
| chn_num | - Channel number to be configured. |
| chn_op_mode | - Operation mode to be set. |
| int ad5710r_set_output_range | ( | struct ad5710r_desc * | desc, |
| enum ad5710r_ch_output_range | range_sel ) |
Set output range for all channels.
| desc | - The device structure. |
| range_sel | - Output range to be selected. |
| int ad5710r_set_reference | ( | struct ad5710r_desc * | desc, |
| enum ad5710r_ch_vref_select | reference_selector ) |
Set reference configuration.
| desc | - The device structure. |
| reference_selector | - The reference to be selected. |
| int ad5710r_set_sw_ldac | ( | struct ad5710r_desc * | desc, |
| uint8_t | mask_sw_ldac ) |
Set the software ldac configuration.
| desc | - The device structure. |
| mask_sw_ldac | - The array contains SW LDAC channel masks. |
| int ad5710r_spi_write_mask | ( | struct ad5710r_desc * | desc, |
| uint32_t | addr, | ||
| uint32_t | mask, | ||
| uint16_t | val ) |
SPI write to device using a mask.
| desc | - The device structure. |
| addr | - The register's address. |
| mask | - The mask for a specific register field. |
| val | - The register's value. |
| int ad5710r_sw_ldac_trigger | ( | struct ad5710r_desc * | desc | ) |
Trigger the LDAC using software.
| desc | - The device structure. |
| int ad5710r_update_interface_cfg | ( | struct ad5710r_desc * | desc, |
| struct ad5710r_transfer_config * | cfg ) |
Updates the interface configuration.
| desc | - The device structure. |
| cfg | - Updated interface configuration structure. |