We are using the AD9081-FMCA-EBZ to evaluate the AD9177.
We are interested in tone generation with FFH from the AD9081-FMCA-EBZ board, and are therefore using a Zedboard (which only has a LPC HMC connector) to control the AD9081 onboard the AD9081-FMCA-EBZ.
After enabling all 4 DACs, we configure the FFH feature for control via GPIO.
The following calls are used:
adi_ad9081_jesd_rx_syncb_mode_set(&ad9177_dev, 0); adi_ad9081_dac_duc_main_nco_hopf_gpio_as_hop_en_set(&ad9177_dev, 0x1); adi_ad9081_jesd_rx_syncb_driver_powerdown_set(&ad9177_dev, 0x0);
Only the DAC0 output is influenced by the FFH. On further inspection of the GPIO STATUS registers:
uint8_t ffh0, ffh1, ffh2; err = adi_ad9177_hal_bf_get(&ad9177_dev, REG_GPIO_STATUS0_ADDR, BF_GPIO_DAC_NCO_FFH2_IN_INFO, &ffh2, 1); err = adi_ad9177_hal_bf_get(&ad9177_dev, REG_GPIO_STATUS1_ADDR, BF_GPIO_DAC_NCO_FFH0_IN_INFO, &ffh0, 1); err = adi_ad9177_hal_bf_get(&ad9177_dev, REG_GPIO_STATUS1_ADDR, BF_GPIO_DAC_NCO_FFH1_IN_INFO, &ffh1, 1); xil_printf("FFH0 = 0x%1x, FFH1 = 0x%1x, FFH2 = 0x%1x\n", ffh0, ffh1, ffh2);
It is observed that FFH0 and FFH1 as read by the AD9081 is stuck on '0', while the FFH2 is changing. This fits with the observation of the outputs where only DAC0 is changing frequency. Alternatively setting,
Results in FFH0 and FFH1 stuck on '1', and DAC3 output is changing frequency with the FFH signals.
Is there anything I am missing to make FFH0 and FFH1 function correctly via the GPIO?
I have included the register trace log from startup. The area of interest is the end of the log where the FFH registers are set and the GPIO status registers are read.
In this example I have tied FFH0 high and FFH1 low in my design, i.e. FMC-LA03_N and FMC-LA03_P signals of the FMC connector. The strobe is a 10ns pulse. After everything is written I read the GPIO status registers every couple of seconds in a loop. I therefore expected to see FFH0 = 1, FFH1 = 0.
Removed Zedboard Link
[edited by: GenevaCooper at 1:46 PM (GMT -4) on 19 Sep 2023]