Post Go back to editing

AD9467 KC705 Reference design

hi all,

I use the AD9467 default FMC reference design on KC705(https://wiki.analog.com/resources/fpga/xilinx/fmc/ad9467#more_information).
However I face many problems while executing ad9467_fmc_ebz.c:
1. I have no idea whether the software project build successfully.

   There is the project contents and build settings.
project contents 


2. Sometimes I get "Test passed", and sometimes I get ERRORs.


3. How can I read the data in ddr3?
I have tried to dump file by Xilinx>Dump/Restor Data File and setting Start Address = 0, Size = 8192,
The data I dumped isn't correct (The input signal is 1 Vpp , 1.2Vdc ,1MHz sine wave)

Could any body give me some advices.
Thanks,
Wei-Chieh

  • Today, I tried dump file by Xilinx>Dump/Restor Data File and setting Start Address = 0x80800000, Size = 16384,
    And the dump data is processed by data = data(1:2:end) + data(2:2:end) * 256;
    Then I get the following,

    <1MHz Sine, 2-Vpp>                                                                                  <1MHz Square, 2-Vpp>   

                         

    However, the wave form is weird.

  • Question moved to Microcontroller no-OS Drivers forum.
    Someone here can help you out with the capture scrips(moving data from DDR to computer).

  • Regarding the captured wave forms. In the above images you posted, In the left one your format is wrong, Try printing the data in two's complement not binary offset.
    Regarding the right image, there should be some filters on the evaluation board before the AD9467. As I can see in your captured waveform the input is AC coupled not DC, meaning your signal will look more like waveform on charging/discharging capacitor. Are you using the AIN input on the evaluation board?

    Andrei

  • Hi Andrei,

    I use AIN input on evaluation.

    I am not sure how the data store in DDR3. I suggest the 16-bit datas are stored as the following structure:

    Addr |               dma.transfer->start_address            |          dma.transfer->start_address + 1             |
    Data |    D[15] D[13] D[11] D[9] D[7] D[5] D[3] D[1]   |    D[14] D[12] D[10] D[8] D[6] D[4] D[2] D[0]    | 

    I tried to print data in two's complement and finally I get the following wave form:

    <1MHz Sine, 2-Vpp>                                                                          

       

    <1MHz Square, 2-Vpp>

    Both the waveform looks weird,

    Thanks

    Wei-Chieh

  • Hello,

    I've checked the latest version of the project from the master branch:
    https://github.com/analogdevicesinc/no-OS/tree/master/ad9467-fmc-ebz

    With the 2019_R1 HDL release for this project.

    Using the common_drivers https://github.com/analogdevicesinc/no-OS/tree/master/common_drivers

    (you will have to change the "#include "spi.h"" with "#include "platform_drivers.h"" in the ad9467.h and ad9517.h files, since the drivers are using a newer version of communication drivers)

    I've checked multiple times the output and I did not get different results (as you mentioned in your case).

    The output is always this one:

    *****************************************************
      ADI AD9467-FMC-EBZ Reference Design
      AD9467 CHIP ID: 0x50
      AD9467 CHIP GRADE: 0x20
      AD9517 CHIP ID: 0xd3d3
    *****************************************************
    adc_setup adc core initialized (186 MHz).
                                             AD9467[0x016]: 00
    adc_delay: setting zero error delay (28)
    ADC Test: mode - MIDSCALE
              format - OFFSET BINARY
            Test passed
    ADC Test: mode - MIDSCALE
              format - TWOS_COMPLEMENT
            Test passed
    ADC Test: mode - POS_FULLSCALE
              format - OFFSET BINARY
            Test passed
    ADC Test: mode - POS_FULLSCALE
              format - TWOS_COMPLEMENT
            Test passed
    ADC Test: mode - NEG_FULLSCALE BINARY
              format - OFFSET BINARY
            Test passed
    ADC Test: mode - NEG_FULLSCALE BINARY
              format - TWOS_COMPLEMENT
            Test passed
    ADC Test: mode - CHECKERBOARD
              format - OFFSET BINARY
            Test passed
    ADC Test: mode - CHECKERBOARD
              format - TWOS_COMPLEMENT
            Test passed
    ADC Test: mode - PN_23_SEQUENCE
              format - OFFSET BINARY
              Test passed
    ADC Test: mode - PN_23_SEQUENCE
              format - TWOS_COMPLEMENT
              Test skipped
    ADC Test: mode - PN_9_SEQUENCE
              format - OFFSET BINARY
      ERROR: PN status(0002).
    ADC Test: mode - PN_9_SEQUENCE
              format - TWOS_COMPLEMENT
              Test skipped
    ADC Test: mode - ONE_ZERO_TOGGLE
              format - OFFSET BINARY
            Test passed
    ADC Test: mode - ONE_ZERO_TOGGLE
              format - TWOS_COMPLEMENT
            Test passed
    Testing done.
    Start capturing data...

    Done.

    Also, the data in the memory (0x80800000) looks fine for the test modes (+ Full-scale, - Full-scale, Checkerboard).

    Regards,

    Antoniu

  • Hi Antoniu,

    Thank you for the reply.
    I tried to print the data as the following structure:

    Addr |                        0x80800000                    |                         0x80800000 + 1                         | 
    Data | D[7] D[6] D[5] D[4] D[3] D[2] D[1] D[0]   |   D[15] D[14] D[13] D[12] D[11] D[10] D[9] D[8] |

    <sine>                                                                                              <square>

          

    The waveform is more clean than before, but the waveform is still far from the ideal one

    Could you give some advice?

    Thanks

    Wei-Chieh

  • Hi Andrei,

    No, I only connect AIN.
    Does the default setting of the no-os project and the default RTL should connect the externel clock?

    Thanks
    Wei-Chieh

  • Hi Wei-Chieh,

    Does the default setting of the no-os project and the default RTL should connect the externel clock?

    Yes, as stated in the link I posted above.

    Andrei

  • Hi Andrei,

    I connect the 10MHz Sine Wave with 2.2Vpp 1.9Vdc as clock signal to sample the 100kHz 2.2Vpp 1.9Vdc analog source.
    And I get the following waveform:
    <sine 100kHz 2.2Vpp 1.9Vdc>                                                <square 100kHz 2.2Vpp 1.9Vdc>

          

    The sine wave is great, but the square wave fail.

    Thanks

    Wei-Chieh