![]() |
no-OS
|
Driver for the Analog Devices AXI-DAC-CORE module. More...
#include <stdlib.h>#include <stdio.h>#include <inttypes.h>#include "no_os_error.h"#include "no_os_delay.h"#include "no_os_util.h"#include "no_os_alloc.h"#include "axi_dac_core.h"#include "no_os_axi_io.h"Functions | |
| int32_t | axi_dac_read (struct axi_dac *dac, uint32_t reg_addr, uint32_t *reg_data) |
| AXI DAC Data Read. | |
| int32_t | axi_dac_write (struct axi_dac *dac, uint32_t reg_addr, uint32_t reg_data) |
| AXI DAC Data Write. | |
| void | axi_dac_update_bits (struct axi_dac *dac, uint32_t reg_addr, uint32_t reg_mask, uint32_t reg_data) |
| AXI DAC Update Data bits. | |
| int32_t | axi_dac_read_poll_timeout (struct axi_dac *dac, uint32_t reg_addr, uint32_t mask, uint32_t value, uint32_t sleep_us, uint32_t timeout_us) |
| AXI DAC Read Data until condition is met. | |
| int32_t | axi_dac_bus_write (struct axi_dac *dac, uint32_t reg_addr, uint32_t reg_data, uint8_t data_size) |
| AXI DAC Bus Data Write. | |
| int32_t | axi_dac_bus_read (struct axi_dac *dac, uint32_t reg_addr, uint32_t *reg_data, uint8_t data_size) |
| AXI DAC Bus Data Read. | |
| int32_t | axi_dac_set_ddr (struct axi_dac *dac, bool enable) |
| AXI DAC Set DDR (bus double-data-rate) mode. | |
| int32_t | axi_dac_set_io_mode (struct axi_dac *dac, enum axi_io_mode mode) |
| AXI DAC Set IO mode. | |
| int32_t | axi_dac_set_data_stream (struct axi_dac *dac, bool enable) |
| AXI DAC Set data stream mode. | |
| int32_t | axi_dac_data_transfer_addr (struct axi_dac *dac, uint32_t address) |
| AXI DAC Set starting dma data trasfer address. | |
| int32_t | axi_dac_data_format_set (struct axi_dac *dac, int format) |
| AXI DAC data format. | |
| int32_t | axi_dac_set_datasel (struct axi_dac *dac, int32_t chan, enum axi_dac_data_sel sel) |
| AXI DAC Set Data type for specific channel. | |
| int32_t | axi_dac_dds_set_frequency (struct axi_dac *dac, uint32_t chan, uint32_t freq_hz) |
| AXI DAC Set DDS frequency for specific channel. | |
| int32_t | axi_dac_dds_get_frequency (struct axi_dac *dac, uint32_t chan, uint32_t *freq) |
| AXI DAC Get DDS frequency for specific channel. | |
| int32_t | axi_dac_dds_set_phase (struct axi_dac *dac, uint32_t chan, uint32_t phase) |
| AXI DAC Set DDS phase for specific channel. | |
| int32_t | axi_dac_dds_get_phase (struct axi_dac *dac, uint32_t chan, uint32_t *phase) |
| AXI DAC Get DDS phase for specific channel. | |
| int32_t | axi_dac_dds_set_scale (struct axi_dac *dac, uint32_t chan, int32_t scale_micro_units) |
| AXI DAC Set DDS scale for specific channel. | |
| int32_t | axi_dac_dds_get_scale (struct axi_dac *dac, uint32_t chan, int32_t *scale_micro_units) |
| AXI DAC Get DDS scale for specific channel. | |
| uint32_t | axi_dac_dds_to_signed_mag_fmt (int32_t val, int32_t val2) |
| AXI DAC Convert to signed magnitude format. | |
| void | axi_dac_dds_from_signed_mag_fmt (uint32_t val, int32_t *r_val, int32_t *r_val2) |
| AXI DAC Convert from signed magnitude format. | |
| int32_t | axi_dac_dds_set_calib_phase_scale (struct axi_dac *dac, uint32_t phase, uint32_t chan, int32_t val, int32_t val2) |
| Calibrate phase scale for specific AXI DAC channel. | |
| int32_t | axi_dac_dds_get_calib_phase_scale (struct axi_dac *dac, uint32_t phase, uint32_t chan, int32_t *val, int32_t *val2) |
| Get the phase scale calibration values for AXI DAC channel. | |
| int32_t | axi_dac_dds_set_calib_scale (struct axi_dac *dac, uint32_t chan, int32_t val, int32_t val2) |
| Calibrate scale for specific AXI DAC channel. | |
| int32_t | axi_dac_dds_get_calib_scale (struct axi_dac *dac, uint32_t chan, int32_t *val, int32_t *val2) |
| Get the scale calibration values for AXI DAC channel. | |
| int32_t | axi_dac_dds_set_calib_phase (struct axi_dac *dac, uint32_t chan, int32_t val, int32_t val2) |
| Calibrate phase for specific AXI DAC channel. | |
| int32_t | axi_dac_dds_get_calib_phase (struct axi_dac *dac, uint32_t chan, int32_t *val, int32_t *val2) |
| Get the phase calibration values for AXI DAC channel. | |
| uint32_t | axi_dac_set_sine_lut (struct axi_dac *dac, uint32_t address) |
| AXI DAC Set data based on a Sine Lookup Table. | |
| int32_t | axi_dac_set_buff (struct axi_dac *dac, uint32_t address, uint16_t *buff, uint32_t buff_size) |
| AXI DAC Set data buffer. | |
| int32_t | axi_dac_load_custom_data (struct axi_dac *dac, const uint32_t *custom_data_iq, uint32_t custom_tx_count, uint32_t address) |
| AXI DAC Load custom data. | |
| int32_t | axi_dac_init_begin (struct axi_dac **dac_core, const struct axi_dac_init *init) |
| Begin AXI DAC Initialization. | |
| int32_t | axi_dac_init_finish (struct axi_dac *dac) |
| Begin AXI DAC Initialization. | |
| int32_t | axi_dac_init (struct axi_dac **dac_core, const struct axi_dac_init *init) |
| AXI DAC Main Initialization. | |
| int32_t | axi_dac_data_setup (struct axi_dac *dac) |
| AXI DAC Data Setup. | |
| int32_t | axi_dac_remove (struct axi_dac *dac) |
| AXI DAC Resources deallocation. | |
Variables | |
| const uint16_t | sine_lut [128] |
| const uint32_t | sine_lut_iq [1024] |
Driver for the Analog Devices AXI-DAC-CORE module.
Copyright 2018(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
| #define AXI_DAC_ADDRESS | ( | x | ) |
| #define AXI_DAC_BUSY NO_OS_BIT(4) |
| #define AXI_DAC_CLK_FREQ | ( | x | ) |
| #define AXI_DAC_CLK_RATIO | ( | x | ) |
| #define AXI_DAC_CNTRL_DATA_RD 0x80 |
| #define AXI_DAC_CNTRL_DATA_WR 0x84 |
| #define AXI_DAC_DAC_DDS_SEL | ( | x | ) |
| #define AXI_DAC_DATA_SELECT | ( | x | ) |
| #define AXI_DAC_DATA_WR_16 | ( | x | ) |
| #define AXI_DAC_DATA_WR_8 | ( | x | ) |
| #define AXI_DAC_DDS_INCR | ( | x | ) |
| #define AXI_DAC_DDS_INIT | ( | x | ) |
| #define AXI_DAC_DDS_SCALE | ( | x | ) |
| #define AXI_DAC_IO_MODE | ( | x | ) |
| #define AXI_DAC_IQCOR_COEFF_1 | ( | x | ) |
| #define AXI_DAC_IQCOR_COEFF_2 | ( | x | ) |
| #define AXI_DAC_IQCOR_ENB (1 << 2) |
| #define AXI_DAC_MMCM_RSTN NO_OS_BIT(1) |
| #define AXI_DAC_MUX_OVER_RANGE NO_OS_BIT(1) |
| #define AXI_DAC_MUX_PN_ERR NO_OS_BIT(3) |
| #define AXI_DAC_MUX_PN_OOS NO_OS_BIT(2) |
| #define AXI_DAC_RATE | ( | x | ) |
| #define AXI_DAC_RD_ADDR | ( | x | ) |
| #define AXI_DAC_REG_CHAN_CNTRL_6 | ( | c | ) |
| #define AXI_DAC_REG_CHAN_CNTRL_7 | ( | c | ) |
| #define AXI_DAC_REG_CHAN_CNTRL_8 | ( | c | ) |
| #define AXI_DAC_REG_CLK_FREQ 0x54 |
| #define AXI_DAC_REG_CLK_RATIO 0x58 |
| #define AXI_DAC_REG_CNTRL_2 0x48 |
| #define AXI_DAC_REG_CUSTOM_CTRL 0x8c |
| #define AXI_DAC_REG_DATA_SELECT | ( | c | ) |
| #define AXI_DAC_REG_DDS_INIT_INCR | ( | x | ) |
| #define AXI_DAC_REG_DDS_SCALE | ( | x | ) |
| #define AXI_DAC_REG_RATECNTRL 0x4C |
| #define AXI_DAC_REG_RSTN 0x40 |
| #define AXI_DAC_REG_STATUS 0x005C |
| #define AXI_DAC_REG_SYNC_CONTROL 0x44 |
| #define AXI_DAC_RSTN NO_OS_BIT(0) |
| #define AXI_DAC_SDR_DDR_N NO_OS_BIT(16) |
| #define AXI_DAC_STATUS NO_OS_BIT(0) |
| #define AXI_DAC_STREAM NO_OS_BIT(1) |
| #define AXI_DAC_STREAM_ENABLE |
| #define AXI_DAC_SYMB_8B NO_OS_BIT(14) |
| #define AXI_DAC_SYNC NO_OS_BIT(0) |
| #define AXI_DAC_TO_CLK_FREQ | ( | x | ) |
| #define AXI_DAC_TO_CLK_RATIO | ( | x | ) |
| #define AXI_DAC_TO_DAC_DDS_SEL | ( | x | ) |
| #define AXI_DAC_TO_DATA_SELECT | ( | x | ) |
| #define AXI_DAC_TO_DDS_INCR | ( | x | ) |
| #define AXI_DAC_TO_DDS_INIT | ( | x | ) |
| #define AXI_DAC_TO_DDS_SCALE | ( | x | ) |
| #define AXI_DAC_TO_IQCOR_COEFF_1 | ( | x | ) |
| #define AXI_DAC_TO_IQCOR_COEFF_2 | ( | x | ) |
| #define AXI_DAC_TO_RATE | ( | x | ) |
| #define AXI_DAC_TRANSFER_DATA NO_OS_BIT(0) |
| #define AXI_DAC_UI_STATUS 0x88 |
| #define DAC_REG_DATA_PATTERN | ( | c | ) |
| int32_t axi_dac_bus_read | ( | struct axi_dac * | dac, |
| uint32_t | reg_addr, | ||
| uint32_t * | reg_data, | ||
| uint8_t | data_size ) |
AXI DAC Bus Data Read.
| dac | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - Pointer to data value to be read. |
| data_size | - Data size in bytes. |
| int32_t axi_dac_bus_write | ( | struct axi_dac * | dac, |
| uint32_t | reg_addr, | ||
| uint32_t | reg_data, | ||
| uint8_t | data_size ) |
AXI DAC Bus Data Write.
| dac | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - Data value to be written. |
| data_size | - Data size in bytes. |
| int32_t axi_dac_data_format_set | ( | struct axi_dac * | dac, |
| int | format ) |
AXI DAC data format.
| dac | - The device structure. |
| format | - bit width of the samples sent over dma, can be 8 or 16. |
| int32_t axi_dac_data_setup | ( | struct axi_dac * | dac | ) |
AXI DAC Data Setup.
| dac | - The device structure. |
| int32_t axi_dac_data_transfer_addr | ( | struct axi_dac * | dac, |
| uint32_t | address ) |
AXI DAC Set starting dma data trasfer address.
| dac | - The device structure. |
| address | - the 8-bit target register address for dma data streaming operations. |
| void axi_dac_dds_from_signed_mag_fmt | ( | uint32_t | val, |
| int32_t * | r_val, | ||
| int32_t * | r_val2 ) |
AXI DAC Convert from signed magnitude format.
| val | - input value |
| r_val | - integer part |
| r_val2 | - fractional part |
| int32_t axi_dac_dds_get_calib_phase | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| int32_t * | val, | ||
| int32_t * | val2 ) |
Get the phase calibration values for AXI DAC channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| val | - the integer part. |
| val2 | - the fractional part. |
| int32_t axi_dac_dds_get_calib_phase_scale | ( | struct axi_dac * | dac, |
| uint32_t | phase, | ||
| uint32_t | chan, | ||
| int32_t * | val, | ||
| int32_t * | val2 ) |
Get the phase scale calibration values for AXI DAC channel.
| dac | - The device structure. |
| phase | - Phase value. |
| chan | - The DAC channel. |
| val | - the integer part. |
| val2 | - the fractional part. |
| int32_t axi_dac_dds_get_calib_scale | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| int32_t * | val, | ||
| int32_t * | val2 ) |
Get the scale calibration values for AXI DAC channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| val | - the integer part. |
| val2 | - the fractional part. |
| int32_t axi_dac_dds_get_frequency | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| uint32_t * | freq ) |
AXI DAC Get DDS frequency for specific channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| freq | - The frequency read in Hz. |
| int32_t axi_dac_dds_get_phase | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| uint32_t * | phase ) |
AXI DAC Get DDS phase for specific channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| phase | - The phase read. Phase is in milli angles scaled to 1000 (i.e. 90*1000 is 90 degrees (pi/2)) |
| int32_t axi_dac_dds_get_scale | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| int32_t * | scale_micro_units ) |
AXI DAC Get DDS scale for specific channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| scale_micro_units | - The scale read. Scale is in micro units (i.e. 1*1000*1000 is 1.0) |
| int32_t axi_dac_dds_set_calib_phase | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| int32_t | val, | ||
| int32_t | val2 ) |
Calibrate phase for specific AXI DAC channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| val | - the integer part. |
| val2 | - the fractional part. |
| int32_t axi_dac_dds_set_calib_phase_scale | ( | struct axi_dac * | dac, |
| uint32_t | phase, | ||
| uint32_t | chan, | ||
| int32_t | val, | ||
| int32_t | val2 ) |
Calibrate phase scale for specific AXI DAC channel.
| dac | - The device structure. |
| phase | - Phase value. |
| chan | - The DAC channel. |
| val | - the integer part. |
| val2 | - the fractional part. |
| int32_t axi_dac_dds_set_calib_scale | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| int32_t | val, | ||
| int32_t | val2 ) |
Calibrate scale for specific AXI DAC channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| val | - the integer part. |
| val2 | - the fractional part. |
| int32_t axi_dac_dds_set_frequency | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| uint32_t | freq_hz ) |
AXI DAC Set DDS frequency for specific channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| freq_hz | - The frequency to be set in Hz. |
| int32_t axi_dac_dds_set_phase | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| uint32_t | phase ) |
AXI DAC Set DDS phase for specific channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| phase | - The phase to be set. Phase is in milli angles scaled to 1000 (i.e. 90*1000 is 90 degrees (pi/2)) |
| int32_t axi_dac_dds_set_scale | ( | struct axi_dac * | dac, |
| uint32_t | chan, | ||
| int32_t | scale_micro_units ) |
AXI DAC Set DDS scale for specific channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| scale_micro_units | - The scale to be set. Scale is in micro units (i.e. 1*1000*1000 is 1.0) |
| uint32_t axi_dac_dds_to_signed_mag_fmt | ( | int32_t | val, |
| int32_t | val2 ) |
AXI DAC Convert to signed magnitude format.
| val | - integer part |
| val2 | - fractional part |
| int32_t axi_dac_init | ( | struct axi_dac ** | dac_core, |
| const struct axi_dac_init * | init ) |
AXI DAC Main Initialization.
| dac_core | - The device structure. |
| init | - Initialization parameters. |
| int32_t axi_dac_init_begin | ( | struct axi_dac ** | dac_core, |
| const struct axi_dac_init * | init ) |
Begin AXI DAC Initialization.
| dac_core | - The device structure. |
| init | - Initialization parameters. |
| int32_t axi_dac_init_finish | ( | struct axi_dac * | dac | ) |
Begin AXI DAC Initialization.
| dac | - The device structure. |
| int32_t axi_dac_load_custom_data | ( | struct axi_dac * | dac, |
| const uint32_t * | custom_data_iq, | ||
| uint32_t | custom_tx_count, | ||
| uint32_t | address ) |
AXI DAC Load custom data.
| dac | - The device structure. |
| custom_data_iq | - The custom data array in I/Q format. |
| custom_tx_count | - The custom data array size. |
| address | - The address where the data is loaded. |
| int32_t axi_dac_read | ( | struct axi_dac * | dac, |
| uint32_t | reg_addr, | ||
| uint32_t * | reg_data ) |
AXI DAC Data Read.
| dac | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - Data value to be written. |
| int32_t axi_dac_read_poll_timeout | ( | struct axi_dac * | dac, |
| uint32_t | reg_addr, | ||
| uint32_t | mask, | ||
| uint32_t | value, | ||
| uint32_t | sleep_us, | ||
| uint32_t | timeout_us ) |
AXI DAC Read Data until condition is met.
| dac | - The device structure. |
| reg_addr | - The register address. |
| mask | - The data mask to apply. |
| value | - The data value to check. |
| sleep_us | - Poll interval. |
| timeout_us | - Poll timepout. |
| int32_t axi_dac_remove | ( | struct axi_dac * | dac | ) |
AXI DAC Resources deallocation.
| dac | - The device structure. |
| int32_t axi_dac_set_buff | ( | struct axi_dac * | dac, |
| uint32_t | address, | ||
| uint16_t * | buff, | ||
| uint32_t | buff_size ) |
AXI DAC Set data buffer.
| dac | - The device structure. |
| address | - Base Address. |
| buff | - The buffer to be set. |
| buff_size | - The buffer size. |
AXI DAC Set data stream mode.
| dac | - The device structure. |
| enable | - enable or disable data stream over the bus interface, where any is available. |
| int32_t axi_dac_set_datasel | ( | struct axi_dac * | dac, |
| int32_t | chan, | ||
| enum axi_dac_data_sel | sel ) |
AXI DAC Set Data type for specific channel.
| dac | - The device structure. |
| chan | - The DAC channel. |
| sel | - Data type. |
AXI DAC Set DDR (bus double-data-rate) mode.
| dac | - The device structure. |
| enable | - enable or disable DDR mode. |
| int32_t axi_dac_set_io_mode | ( | struct axi_dac * | dac, |
| enum axi_io_mode | mode ) |
AXI DAC Set IO mode.
| dac | - The device structure. |
| mode | - enum axi_io_mode. |
| uint32_t axi_dac_set_sine_lut | ( | struct axi_dac * | dac, |
| uint32_t | address ) |
AXI DAC Set data based on a Sine Lookup Table.
| dac | - The device structure. |
| address | - Address of the sine lut. |
| void axi_dac_update_bits | ( | struct axi_dac * | dac, |
| uint32_t | reg_addr, | ||
| uint32_t | reg_mask, | ||
| uint32_t | reg_data ) |
AXI DAC Update Data bits.
| dac | - The device structure. |
| reg_addr | - The register address. |
| reg_mask | - The data mask. |
| reg_data | - The data value. |
| int32_t axi_dac_write | ( | struct axi_dac * | dac, |
| uint32_t | reg_addr, | ||
| uint32_t | reg_data ) |
AXI DAC Data Write.
| dac | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - Data value to be written. |
| const uint16_t sine_lut[128] |
| const uint32_t sine_lut_iq[1024] |