Post Go back to editing

Cannot transmit DAC data in adrv9361z7035 ccbob_cmos example project

Category: Software
Product Number: ADRV9361

Hello,

I built the adrv9361z7035 ccbob_cmos example project with no-OS ad9361 drivers and I managed to see an output signal on the oscilloscope using the BIST. Now, I have to integrate a custom IP core into the Vivado project: such an IP core has an output AXI stream interface, and I replaced the TX DMA of the original project with it. When it comes to software, I have the following settings in the app_config.h file:

#define AD9361_DEVICE 1 /* set it 1 if AD9361 device is used, 0 otherwise */
#define AD9364_DEVICE 0 /* set it 1 if AD9364 device is used, 0 otherwise */
#define AD9363A_DEVICE 0 /* set it 1 if AD9363A device is used, 0 otherwise */

#define XILINX_PLATFORM
//#define ALTERA_PLATFORM
//#define LINUX_PLATFORM
//#define FMCOMMS5
#define ADI_RF_SOM
#define ADI_RF_SOM_CMOS

//#define DMA_IRQ_ENABLE
//#define DMA_EXAMPLE
//#define AXI_ADC_NOT_PRESENT
//#define TDD_SWITCH_STATE_EXAMPLE

During the execution of ad9361_set_tx_fir_config(), the software gets stuck into a infinite loop inside Xil_PrefetchAbortHandler().

I found out that the only way to avoid this problem is to enable AXI_ADC_NOT_PRESENT and fix the struct ad9361_rf_phy by removing #ifndef AXI_ADC_NOT_PRESENT and #endif that would exclude struct axi_adc *rx_adc and struct axi_dac *tx_dac. However, using chipscope, I see that the ready signal of the AXI stream sink module (s_axis_din_tready of util_ad9361_dac_upack) never becomes high although DMA data is selected in the REG_CHAN_CNTRL_7 register of axi_ad9361 IP.

What have I missed?

Thread Notes