Use the ad9517 to clock the ad9467 on the AD9467-FMC-250EBZ board

Hi all,

The AD9467 needs a low jitter clock which generated by the AD9517-4. And the modifications has been made on the bord.It will work in the mode below,pll + internal vco.

So what will be changed in the code download from the GitHub?

  • 0
    •  Analog Employees 
    on Dec 30, 2015 6:12 PM

    Hi,

    I do not know how to modify the code for the AD9467-FMC-250EBZ. Here is the python code i used to setup the AD9517 on the AD9467-250EBZ (non FMC evb). The AD9517 is setup for LVDS outputs.

    #import spi module

    import ADCEval

    # setup spi

    spi = ADCEval.ADCEval(1)

    # set the Chip Select bit to 2

    spi.SPI_InitFW(2)

    # short hand

    swrite = spi.SPI_Write

    #set chip to operate with 4 wire spi

    swrite(0x000,0x99)

    swrite(0x001,0x00)

    swrite(0x002,0x10)

    swrite(0x003,0xD3)

    swrite(0x004,0x00)

    swrite(0x010,0x7C)

    swrite(0x011,0x02)

    swrite(0x012,0x00)

    swrite(0x013,0x00)

    swrite(0x014,0x03)

    swrite(0x015,0x00)

    swrite(0x016,0x04)

    swrite(0x017,0xB4)   #PLL DLD Status register: 0x00 for gnd and 0x14 for PFD up pulse; B4 = DLD active high

    swrite(0x018,0x07)   #0x06 default and 0x07 VCO cal

    swrite(0x019,0x00)

    swrite(0x01A,0x03)   #LD register

    swrite(0x01B,0x00)

    swrite(0x01C,0x02)   #Ref Select - select REF1 Default (0x02 for REF1 Power On)

    swrite(0x01D,0x00)

    swrite(0x01E,0x00)

    swrite(0x01F,0x0E)

    swrite(0x0A0,0x01)

    swrite(0x0A1,0x00)

    swrite(0x0A2,0x00)

    swrite(0x0A3,0x01)

    swrite(0x0A4,0x00)

    swrite(0x0A5,0x00)

    swrite(0x0A6,0x01)

    swrite(0x0A7,0x00)

    swrite(0x0A8,0x00)

    swrite(0x0A9,0x01)

    swrite(0x0AA,0x00)

    swrite(0x0AB,0x00)

    swrite(0x0F0,0x0B)

    swrite(0x0F1,0x0B)

    swrite(0x0F4,0x0B)

    swrite(0x0F5,0x0B)     #Output 3 (PECL) 0x0B for PD, 0x08 for On

    swrite(0x140,0x43)

    swrite(0x141,0x42)     #Output 5 (LVDS) 0x43 for PD, 0x42 for On

    swrite(0x142,0x43)

    swrite(0x143,0x43)

    swrite(0x190,0x00)

    swrite(0x191,0x80)

    swrite(0x192,0x00)

    swrite(0x196,0x00)

    swrite(0x197,0x00)

    swrite(0x198,0x00)

    swrite(0x199,0x00)

    swrite(0x19A,0x00)

    swrite(0x19B,0x11)

    swrite(0x19C,0x20)

    swrite(0x19D,0x00)

    swrite(0x19E,0x22)

    swrite(0x19F,0x00)

    swrite(0x1A0,0x11)

    swrite(0x1A1,0x00)

    swrite(0x1A2,0x00)

    swrite(0x1A3,0x00)

    swrite(0x1E0,0x01)

    swrite(0x1E1,0x02)

    swrite(0x230,0x00)

    swrite(0x231,0x00)

    # set transfer bit so changes take effect

    swrite(0x232,0x01)

    Chipid = hex(ord(spi.SPI_Read(0x03)))

    print "Chipid = ", Chipid

    Status = hex(ord(spi.SPI_Read(0x017)))

    print "Status = ", Status

    LD_Status = hex(ord(spi.SPI_Read(0x01A)))

    print "LD_Status = ", LD_Status

    Thanks

    Umesh

  • Hi Umesh,

    Thanks for sharing the design! It helps me a lot.

    The ad9517 has been configured to generate a signal through the on-chip pll and vco. What is the frequency of the input clock to the REF1 and the output siganl frequency? The external loop filter has been modified? What frequency range of the default loop filter on the 9467fmc01c_sch.pdf from the ADI? How do you set the J300? If i want to generate a 200MHz sine signal through on-chip pll and vco while the input clock is 200MHz, how to set the vco divider and the loop filter?

    Thanks,

    Makon

  • 0
    •  Analog Employees 
    on Jan 5, 2016 9:58 PM

    Hi Makon,

    We put in a 125MHz reference to generate a 250MHz output. Attached is the report and the python scripts used to configure the AD9517 for LVPECL and LVDS outputs.

    Thanks

    Umesh

    attachments.zip
  • Hi Umesh,

    Thank you! I know how to solve the problem!

    Makon