Post Go back to editing

AD9364 Firmware running on HW reset

I am using the following system:

  • Xilinx ZC706 FPGA
  • FMCOMMS4 Daughter Card
  • FMC breakout board (to monitor SPI traffic while firmware is running)

I have been monitoring the SPI traffic and trying to match the SPI register accesses to ADI's no-OS firmware, but am getting lost in certain places. When I look at the SPI traffic going on during a HW reset (turning the FPGA fully OFF, then back ON), I see that at the beginning, the SPI traffic matches the code in the main.c file located here:

  • no-OS/projects/ad9361/src/main.c
    • ad9361_init()

In the ad9361_init() function, the ad9361_register_clocks() function matches the SPI capture I have quite well. However, once the ad9361_setup() function runs, there are large sections in the SPI reads/writes that don't correspond to the firmware. This leads me to believe that there are either interrupts running in this firmware, or the setup is running different code than the ad9361_setup() function that is in the no-OS drivers. Is it possible to find that exact code?

My end goal is to be able to get the FMCOMMS4 running from HW reset with my own tools, using the ADI firmware as a baseline. I'm wondering if the code in no-OS/projects/ad9361/src/main.c sufficient for this?

Thanks in advance for your help.

Top Replies