Post Go back to editing

ADRV9371+ZCU102 PetaLinux Loopback (ADC->DAC) produces Unexpected Waveform

Category: Software
Product Number: ADRV9371
Software Version: PetaLinux 2021.1

Hello, we currently have a setup where we use the AD9371 reference design on the ZCU102 board, where we connected the output of the ADC (adc_data_0/1) to the input of the DAC (while adding the appropriate upsampling/filtering functions in between). 

When testing this setup in baremetal no-OS, everything works as expected: The signal we inject (we used a BPSK to keep it simple) on the RX1 port is then seen through a VSA on the TX1 port, and so the hardware is not at fault here:

When using PetaLinux, we configure the same profile (the provided tx_bw200_orx_bw200_rx_bw100 example profile) used in no-OS and the DAC to use the its inputs and not DDS (devmem 0x84A04418 8 0x02), and we observe a deformed waveform instead of the BPSK we saw in the baremetal setup.

We also noticed when using IIO-Oscilloscope (same profile), that when we loaded an example waveform on the DAC, which configures the system to use the DAC input ports (dac_data_0/1) because its where the DMA sends the signal through (but in our case its connected to our loopback logic), the system works as expected just like in baremetal version.

So now we understand when loading the signal waveform through the IIO-Oscilloscope, the system is not only configured to use the DAC input ports, but apparently it also configures other parameters we are not aware of, and thus the question is:

  • What does the IIO-Oscilloscope configure apart from the DAC input config?
  • What configuration do we have to perform on Petalinux environment in order to replicate what the IIO-Oscilloscope does when loading the waveform?

Thanks in advance!

Added questions.
[edited by: ffaserodio at 2:09 PM (GMT -5) on 3 Mar 2023]
Parents Reply Children
  • Hi Michael,

    It was indeed the second channel DAC_DDS_SEL configuration - I made the mistake of assuming both channel configurations were independent of each other.

    When performing the register writes (devmem 0x84A04418 8 0x02 and devmem 0x84a04458 8 0x02) the generated spectrum appeared on the VSA just like in baremetal, with no weird artifacts, solving the issue.

     Thank you!