|
| #define | AD5460_NOP 0x00 |
| |
| #define | AD5460_CH_FUNC_SETUP(x) |
| |
| #define | AD5460_OUTPUT_CONFIG(x) |
| |
| #define | AD5460_DAC_SLEW_CONFIG(x) |
| |
| #define | AD5460_DAC_CODE(x) |
| |
| #define | AD5460_DAC_CLR_CODE(x) |
| |
| #define | AD5460_DAC_ACTIVE(x) |
| |
| #define | AD5460_GPIO_CONFIG(x) |
| |
| #define | AD5460_WTD_CONFIG 0x1D |
| |
| #define | AD5460_DIAG_CONFIG 0x1E |
| |
| #define | AD5460_PWR_CONFIG 0x1F |
| |
| #define | AD5460_LIVE_STATUS 0x20 |
| |
| #define | AD5460_DIGITAL_ALERT_STATUS 0x21 |
| |
| #define | AD5460_ANALOG_ALERT_STATUS 0x22 |
| |
| #define | AD5460_DIGITAL_ALERT_MSK 0x23 |
| |
| #define | AD5460_ANALOG_ALERT_MSK 0x24 |
| |
| #define | AD5460_READ_SELECT 0x73 |
| |
| #define | AD5460_THERM_RST 0x74 |
| |
| #define | AD5460_CMD_KEY 0x75 |
| |
| #define | AD5460_BROADCAST_CMD_KEY 0x76 |
| |
| #define | AD5460_SCRATCH(x) |
| |
| #define | AD5460_GENERIC_ID 0x7B |
| |
| #define | AD5460_SILICON_REV 0x7C |
| |
| #define | AD5460_SILICON_ID0 0x7D |
| |
| #define | AD5460_SILICON_ID1 0x7E |
| |
| #define | AD5460_SILICON_ID2 0x7F |
| |
| #define | AD5460_CMD_KEY_RESET_1 0x9A17 |
| |
| #define | AD5460_CMD_KEY_RESET_2 0xE9C1 |
| |
| #define | AD5460_CH_FUNC_SETUP_MSK NO_OS_GENMASK(3, 0) |
| |
| #define | AD5460_AVDD_SELECT_MSK NO_OS_GENMASK(13, 12) |
| |
| #define | AD5460_CLR_EN_MSK NO_OS_BIT(11) |
| |
| #define | AD5460_WAIT_LDAC_CMD_MSK NO_OS_BIT(10) |
| |
| #define | AD5460_IOUT_RANGE_MSK NO_OS_GENMASK(9, 8) |
| |
| #define | AD5460_I_LIMIT_MSK NO_OS_BIT(7) |
| |
| #define | AD5460_ALARM_DEG_PERIOD_MSK NO_OS_BIT(6) |
| |
| #define | AD5460_VOUT_RANGE_MSK NO_OS_BIT(5) |
| |
| #define | AD5460_VIOUT_DRV_EN_DLY_MSK NO_OS_GENMASK(4, 3) |
| |
| #define | AD5460_VOUT_4W_EN_MSK NO_OS_BIT(2) |
| |
| #define | AD5460_VIOUT_GLITCH_MSK NO_OS_GENMASK(1, 0) |
| |
| #define | AD5460_SLEW_EN_MSK NO_OS_GENMASK(5, 4) |
| |
| #define | AD5460_SLEW_LIN_STEP_MSK NO_OS_GENMASK(3, 2) |
| |
| #define | AD5460_SLEW_LIN_RATE_MSK NO_OS_GENMASK(1, 0) |
| |
| #define | AD5460_DAC_CODE_MSK NO_OS_GENMASK(15, 0) |
| |
| #define | AD5460_DAC_CLR_CODE_MSK NO_OS_GENMASK(15, 0) |
| |
| #define | AD5460_DAC_ACTIVE_MSK NO_OS_GENMASK(15, 0) |
| |
| #define | AD5460_GPI_DATA_MSK NO_OS_BIT(5) |
| |
| #define | AD5460_GPO_DATA_MSK NO_OS_BIT(4) |
| |
| #define | AD5460_GP_WK_PD_EN_MSK NO_OS_BIT(3) |
| |
| #define | AD5460_GPIO_SELECT_MSK NO_OS_GENMASK(2, 0) |
| |
| #define | AD5460_DIAG_SELECT_MSK NO_OS_GENMASK(4, 0) |
| |
| #define | AD5460_REF_EN_MSK NO_OS_BIT(0) |
| |
| #define | AD5460_TEMP_ALERT_STATUS_MSK NO_OS_BIT(9) |
| |
| #define | AD5460_SUPPLY_STATUS_MSK NO_OS_BIT(8) |
| |
| #define | AD5460_ANALOG_IO_SC_STATUS_D_MSK NO_OS_BIT(7) |
| |
| #define | AD5460_ANALOG_IO_SC_STATUS_C_MSK NO_OS_BIT(6) |
| |
| #define | AD5460_ANALOG_IO_SC_STATUS_B_MSK NO_OS_BIT(5) |
| |
| #define | AD5460_ANALOG_IO_SC_STATUS_A_MSK NO_OS_BIT(4) |
| |
| #define | AD5460_ANALOG_IO_OC_STATUS_D_MSK NO_OS_BIT(3) |
| |
| #define | AD5460_ANALOG_IO_OC_STATUS_C_MSK NO_OS_BIT(2) |
| |
| #define | AD5460_ANALOG_IO_OC_STATUS_B_MSK NO_OS_BIT(1) |
| |
| #define | AD5460_ANALOG_IO_OC_STATUS_A_MSK NO_OS_BIT(0) |
| |
| #define | AD5460_TEMP_ALERT_MSK NO_OS_BIT(4) |
| |
| #define | AD5460_CAL_MEM_ERR_MSK NO_OS_BIT(3) |
| |
| #define | AD5460_SPI_ERR_MSK NO_OS_BIT(2) |
| |
| #define | AD5460_WDT_RESET_OCCURRED_MSK NO_OS_BIT(1) |
| |
| #define | AD5460_RESET_OCCURRED_MSK NO_OS_BIT(0) |
| |
| #define | AD5460_AVDD_HI_ERR_MSK NO_OS_BIT(12) |
| |
| #define | AD5460_AVDD_LO_ERR_MSK NO_OS_BIT(11) |
| |
| #define | AD5460_AVCC_ERR_MSK NO_OS_BIT(10) |
| |
| #define | AD5460_IODVCC_ERR_MSK NO_OS_BIT(9) |
| |
| #define | AD5460_AVSS_ERR_MSK NO_OS_BIT(8) |
| |
| #define | AD5460_ANALOG_IO_SC_D_MSK NO_OS_BIT(7) |
| |
| #define | AD5460_ANALOG_IO_SC_C_MSK NO_OS_BIT(6) |
| |
| #define | AD5460_ANALOG_IO_SC_B_MSK NO_OS_BIT(5) |
| |
| #define | AD5460_ANALOG_IO_SC_A_MSK NO_OS_BIT(4) |
| |
| #define | AD5460_ANALOG_IO_OC_D_MSK NO_OS_BIT(3) |
| |
| #define | AD5460_ANALOG_IO_OC_C_MSK NO_OS_BIT(2) |
| |
| #define | AD5460_ANALOG_IO_OC_B_MSK NO_OS_BIT(1) |
| |
| #define | AD5460_ANALOG_IO_OC_A_MSK NO_OS_BIT(0) |
| |
| #define | AD5460_READBACK_SELECT_MODE_MSK NO_OS_GENMASK(8, 0) |
| |
| #define | AD5460_READBACK_ADDR_MSK NO_OS_GENMASK(8, 0) |
| |
| #define | AD5460_THERM_RST_MSK NO_OS_GENMASK(8, 0) |
| |
| #define | AD5460_CMD_KEY_MSK NO_OS_GENMASK(15, 0) |
| |
| #define | AD5460_BROADCAST_CMD_KEY_MSK NO_OS_GENMASK(15, 0) |
| |
| #define | AD5460_SCRATCH_BITS_MSK NO_OS_GENMASK(15, 0) |
| |
| #define | AD5460_GENERIC_ID_MSK NO_OS_GENMASK(2, 0) |
| |
| #define | AD5460_SILICON_REV_ID_MSK NO_OS_GENMASK(7, 0) |
| |
| #define | AD5460_LOT_MSK NO_OS_GENMASK(6, 0) |
| |
| #define | AD5460_Y_COORDS_MSK NO_OS_GENMASK(13, 7) |
| |
| #define | AD5460_X_COORDS_MSK NO_OS_GENMASK(6, 0) |
| |
| #define | AD5460_WAFER_NUM_MSK NO_OS_GENMASK(4, 0) |
| |
| #define | AD5460_FRAME_SIZE 5 |
| |
| #define | AD5460_N_CHANNELS 4 |
| |
| #define | AD5460_CH_A 0 |
| |
| #define | AD5460_CH_B 1 |
| |
| #define | AD5460_CH_C 2 |
| |
| #define | AD5460_CH_D 3 |
| |
| #define | AD5460_DAC_RANGE 12000 |
| |
| #define | AD5460_DAC_CURRENT_RANGE_25MA 25000 |
| |
| #define | AD5460_DAC_CURRENT_RANGE_20MA 20000 |
| |
| #define | AD5460_DAC_CURRENT_RANGE_4MA 4000 |
| |
| #define | AD5460_DAC_RESOLUTION 16 |
| |
|
| enum | ad5460_op_mode {
AD5460_HIGH_Z = 0x0
,
AD5460_VOLTAGE_OUT = 0x1
,
AD5460_CURRENT_OUT = 0x2
,
AD5460_CURRENT_OUT_HART = 0x10
} |
| | Operation modes of the device. More...
|
| |
| enum | ad5460_vout_range {
AD5460_VOUT_RANGE_0_12V
,
AD5460_VOUT_RANGE_NEG12_12V
} |
| | Possible voltage output ranges for the DAC. More...
|
| |
| enum | ad5460_iout_range {
AD5460_IOUT_RANGE_0_25MA
,
AD5460_IOUT_RANGE_0_20MA
,
AD5460_IOUT_RANGE_4_20MA
} |
| | Possible current output ranges for the DAC. More...
|
| |
| enum | ad5460_i_limit {
AD5460_I_LIMIT0
,
AD5460_I_LIMIT1
} |
| | DAC Current limits in Vout mode. More...
|
| |
| enum | ad5460_slew_lin_step {
AD5460_STEP_0_8_PERCENT
,
AD5460_STEP_1_5_PERCENT
,
AD5460_STEP_6_1_PERCENT
,
AD5460_STEP_22_2_PERCENT
} |
| | The voltage step size of Full Scale DAC Voltage. More...
|
| |
| enum | ad5460_lin_rate {
AD5460_LIN_RATE_4KHZ8
,
AD5460_LIN_RATE_76KHZ8
,
AD5460_LIN_RATE_153KHZ6
,
AD5460_LIN_RATE_230KHZ4
} |
| | Possible update rates for a DAC when slew control is enabled. More...
|
| |
| enum | ad5460_gpio_select {
AD5460_GPIO_SEL_HIGH_Z
,
AD5460_GPIO_SEL_GPIO
,
AD5460_GPIO_SEL_GPI
} |
| | GPO operation modes. More...
|
| |
| enum | ad5460_diag_mode {
AD5460_DIAG_NO_DIAG
,
AD5460_DIAG_PTAT
,
AD5460_DIAG_REFIN
,
AD5460_DIAG_REFOUT
,
AD5460_DIAG_INT_BG_V
,
AD5460_DIAG_SENSE_P_CH_A
,
AD5460_DIAG_SENSE_CH_B
,
AD5460_DIAG_SENSE_P_CH_C
,
AD5460_DIAG_SENSE_P_CH_D
,
AD5460_DIAG_SENSE_N_CH_A
,
AD5460_DIAG_SENSE_N_CH_B
,
AD5460_DIAG_SENSE_N_CH_C
,
AD5460_DIAG_SENSE_N_CH_D
,
AD5460_DIAG_SENSE_AVCC
,
AD5460_DIAG_SENSE_LDO
,
AD5460_DIAG_SENSE_DVCC
,
AD5460_DIAG_SENSE_AGND1
,
AD5460_DIAG_SENSE_AGND2
,
AD5460_DIAG_SENSE_AGND3
,
AD5460_DIAG_SENSE_DGND
,
AD5460_DIAG_SENSE_AVDD_HI
,
AD5460_DIAG_SENSE_AVDD_LO
,
AD5460_DIAG_SENSE_AVSS
,
AD5460_DIAG_SENSE_AVDD_CH_A
,
AD5460_DIAG_SENSE_AVDD_CH_B
,
AD5460_DIAG_SENSE_AVDD_CH_C
,
AD5460_DIAG_SENSE_AVDD_CH_D
} |
| | Possible values to be loaded in the DIAG_RESULT register. More...
|
| |
|
| int | ad5460_dac_voltage_to_code (struct ad5460_desc *, int32_t, uint16_t *, uint32_t) |
| | Converts a millivolt value in the corresponding DAC 16 bit code.
|
| |
| int | ad5460_dac_current_to_code (struct ad5460_desc *, uint32_t, uint16_t *, uint32_t) |
| | Convers a microamp value in the corresponding DAC 16 bit code.
|
| |
| int | ad5460_reg_write (struct ad5460_desc *, uint32_t, uint16_t) |
| | Write a register's value.
|
| |
| int | ad5460_reg_read_raw (struct ad5460_desc *, uint32_t, uint8_t *) |
| | Read a raw communication frame.
|
| |
| int | ad5460_reg_read (struct ad5460_desc *, uint32_t, uint16_t *) |
| | Read a register's value.
|
| |
| int | ad5460_reg_update (struct ad5460_desc *, uint32_t, uint16_t, uint16_t) |
| | Update a register's field.
|
| |
| int | ad5460_set_channel_function (struct ad5460_desc *, uint32_t, enum ad5460_op_mode) |
| | Set the operation mode for a specific channel.
|
| |
| int | ad5460_set_channel_vout_range (struct ad5460_desc *, uint32_t, enum ad5460_vout_range) |
| | Set the voltage range for a specific channel.
|
| |
| int | ad5460_set_channel_iout_range (struct ad5460_desc *, uint32_t, enum ad5460_iout_range) |
| | Set the current range for a specific channel.
|
| |
| int | ad5460_set_channel_i_limit (struct ad5460_desc *, uint32_t, enum ad5460_i_limit) |
| | Set the current limit for a specific DAC channel in vout mode.
|
| |
| int | ad5460_set_channel_dac_code (struct ad5460_desc *, uint32_t, uint16_t) |
| | Set and load a code for the DAC on a specific channel.
|
| |
| int | ad5460_set_diag (struct ad5460_desc *, uint32_t, enum ad5460_diag_mode) |
| | Set which diagnostic value to be loaded in the DIAG_RESULT register.
|
| |
| int | ad5460_gpio_get (struct ad5460_desc *, uint32_t, uint8_t *) |
| | Get the GPO value for a specific channel.
|
| |
| int | ad5460_set_gpio_config (struct ad5460_desc *, uint32_t, enum ad5460_gpio_select) |
| | Set the GPIO operation mode.
|
| |
| int | ad5460_gpio_set (struct ad5460_desc *, uint32_t, uint8_t) |
| | Set the logic value of a GPO pin.
|
| |
| int | ad5460_get_live (struct ad5460_desc *, union ad5460_live_status *) |
| | Read the live status bits.
|
| |
| int | ad5460_dac_slew_enable (struct ad5460_desc *, uint32_t, enum ad5460_slew_lin_step, enum ad5460_lin_rate) |
| | Configure and enable slew rate control for a DAC on a specific channel.
|
| |
| int | ad5460_dac_slew_disable (struct ad5460_desc *, uint32_t) |
| | Disable the slew rate control.
|
| |
| int | ad5460_set_therm_rst (struct ad5460_desc *, bool) |
| | Enable or disable the higher thermal reset.
|
| |
| int | ad5460_reset (struct ad5460_desc *) |
| | Perform software or hardware reset and wait for device reset time.
|
| |
| int | ad5460_init (struct ad5460_desc **, struct ad5460_init_param *) |
| | Initialize the device structure.
|
| |
| int | ad5460_remove (struct ad5460_desc *desc) |
| | Free the device descriptor.
|
| |
Header file of AD5460 Driver.
- Author
- Antoniu Miclaus (anton.nosp@m.iu.m.nosp@m.iclau.nosp@m.s@an.nosp@m.alog..nosp@m.com)
Copyright 2024(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause