Post Go back to editing

Unexpected Output Tones in AD9082 ZC706 Reference Design Port

Category: Hardware
Product Number: AD9082

Hi everyone,

I want to port ad9082-fmca-ebz-zc706 2021_R1 design to te0782 z7100 module with custom carrier board we designed and ad9082-fmca-ebz evaluation board. Carrier board connects te0782 and ad9082-fmca-ebz each other.

In my original design, only change i made is to remove tx_dma and tx_data_offload and add sweep generator. I left JESD parameters as is (TX_JESD 9 & RX_JESD 10). My design works on zc706 with no problem. I am using no-OS when initializing ad9082.

When I port the design, right after initialization of ad9082, I am observing random tones on spectrum analyzer. My signal isn't transmitted yet at this point. Black trace shows max hold samples.

I can see my sweep signal at output when I begin transmitting the signal, although these tones still exist.

Hello
tx_adxcvr: OK (10000000 kHz)
ad9081_jesd_rx_link_status_print: JESD TX (JRX) Link1 0x0 lanes in DATA
tx_adxcvr: OK (10000000 kHz)
ad9081_jesd_rx_link_status_print: JESD TX (JRX) Link1 0xF lanes in DATA
ad9081_jesd_tx_link_status_print: JESD RX (JTX) Link1 in CGS, SYNC asserted, PLL locked, PHASE established, MODE valid
DAC IRQ status 0xf043000040
AD9081 Rev. 3 Grade 2 (API 1.2.2) probed
tx_jesd status:
    Link is enabled
    Measured Link Clock: 249.998 MHz
    Reported Link Clock: 250.000 MHz
    Lane rate: 10000.000 MHz
    Lane rate / 40: 250.000 MHz
    LMFC rate: 7.812 MHz
    SYNC~: deasserted
    Link status: DATA
    SYSREF captured: Yes
    SYSREF alignment error: No
rx_jesd status:
    Link is enabled
    Measured Link Clock: 249.994 MHz
    Reported Link Clock: 250.000 MHz
    Lane rate: 10000.000 MHz
    Lane rate / 40: 250.000 MHz
    LMFC rate: 7.812 MHz
    Link status: CGS
    SYSREF captured: Yes
    SYSREF alignment error: No
tx_dac: Successfully initialized (250000000 Hz)
rx_adc: Successfully initialized (249998474 Hz)

rx link status was CGS all the time but since my project requires only transmitting, i didn't touch it.

I've checked our custom carrier board and te0782 pins again and i found that

  • fpga_refclk_in pins are inverted in te0782. I also realized that they are connected to bank110 instead of bank109 but i think this is not a problem since zynq can get refclk from north and south banks.
  • in our custom carrier board, clkin10 pins are connected to clkin0 (CLK2_M2C) pins instead of clkin10 (LA00_CC) pins in FMC. In no-OS, clkin0 is already initialized with the same frequency as clkin10.
  • in our carrier board, the order of fpga_serdin pins is different while fpga_serdout pins order is as they should be.

I've tried to swap fpga_refclk_in pins in my reference design but implementation fails this time too.

Probably the problem is the polarity of refclk but is there a way to correct it within FPGA? What else can i look at to find root cause of problem?

Thanks for your help.