SPI control: Zynq & AD9286

Hi, there

      I'm using AD9286 on zynq through FMC interface. Now I want to use spi communication to control AD9286. Here is my problem, when I send a read command to AD9286, for instance, 0x8000, I should receive 0x18 but I receive 0x800000. And I've tried to read other registers, I always get 0x00. 

      I also tried to send 0x00FF01(transfer command) before or after my read operation, but it ends the same, still gets 0x00. Could you tell me what causes my current problem? 

Thanks, 

Best regards.

  • 0
    •  Analog Employees 
    on Jan 19, 2018 9:58 PM

    Hi, 

    The highest address in the AD9286 is 0x38.  I'm not sure what you would get trying to read back 0x8000 (maybe we have different nomenclature).  

    The default value of register address 0x00 is 0x18, were you possible trying to read that register?

    The transfer register, address 0xFF , default value should also be 0x00.  If you write the transfer bit (send 0x01 to address 0xFF), this bit will self clear, so you will always read back 0x00 from address 0xFF.

    Regards, 

    David 

  • Hi, David

    Thanks for your fast reply!

    0x8000 is a read command that I use to read the value in register 0x00. Is there a problem in my read command?

    I don't know why the highest address in the AD9286 is 0x38. The address of transfer register is 0xFF.

    Best Regards,

    Guoqing

  • 0
    •  Analog Employees 
    on Jan 21, 2018 11:59 PM

    Hi, 

    That is what I had guessed, I'm just not familiar with your nomenclature, I'm not a software guy.  So if you are reading 0 from address 0x00, then I would recommend to record your SPI transaction with an oscilloscope to see if we see any problems.  

    Regards, 

    David