We have a custom pcb board with ad9371 and zynq7100. We have used the non-os software and successfully run the program via zc706 developed board. However, when we move the program to our custom board, we found that ad9371 haven't response to aany spi write. In contrast with zc706 program, we used 2 seperate spi ip core in pl logic for ad9528 and ad9391 rather than spi emio. The ad9528 works fine but ad9371 never response. We check the spi write waveform using scope and it looks same as zc706 program but the data read from same register is 0x00. Our interface vdd and spi bus is 1.8 rather than 2.5V.
Otherwise, I confirm that the ad9371 reset is high using scope while configuring ad9371 spi. We haven't put a pull-up resistor with reset but it should be pulled up by fpga gpio before ad9371 initialize.
Kindly refer to below post,
The power supply diagram in above post makes me a little confused. It seems that both FMCA_VDJ and ADP125 output voltage are connected to the VDD_IF. May I ask that VDD_IF in developed board is supplied by ADP125 chip or FMCA_VDJ?
In our costumed board, AD9371 VDD_IF and FPGA SPI interface are both supplied by 1.8V dc. The 1.8V supply of AD9371 and FPGA SPI interface comes from same power chip but are separated by a ferrite beads.
In eval board VDD_IF is supplied by FMCA_VDJ. If FPGA SPI and VDD_IF are both 1.8 V then it should be Ok.
Have you tried lower speed for SPI.
Register 0x00A, is the scratch pad register for the chip. You can try writing and reading back from this register.
Does that register work always (for example before the ARM code has loaded)? I assume it does but can't explicitly remember. If so then repeatedly writing and reading back random values would be a way to stress test the SPI and so very useful.Changing subject - when probing those SPIs take the 'scope ground close to the AD9371 - might it be a ground noise problem?