adi_ad9082_device_clk_config_set() fails to lock PLL on AD9081-FMCA-EBZ

I'm on a RevD board with AD9082 connected to the FMC on a VCK-190, using the AD9082_API-Rel1.1.0 software on a NO-OS implementation.  I cannot get the PLL to lock, any suggestions? 

Here are my API functions to setup:

/* hmc7044 setup */
uint64_t hmc7044_crystal_input = 100e6;
uint64_t ad9082_clk = fpga_clk = 150e6
uint64_t sysref_clk = fpga_clk/(32 * 3);
uint8_t  hmc_priority[] = { 1, 0, 2, 3 };       // copied from ad9082_app.c
uint64_t hmc_out_204c[14] = { 0, 0, ad9082_clk, sysref_clk, 0, 0, 0, 0, 0, 0, 0, 0, fpga_clk, sysref_clk };

adi_hmc7044_device_reset(&g_jesd->hmc7044_dev, 0)
adi_hmc7044_device_init(&g_jesd->hmc7044_dev)
adi_hmc7044_device_reset(&g_jesd->hmc7044_dev, 0)
adi_hmc7044_input_reference_set(&g_jesd->hmc7044_dev, 0, IPBUFFER_INTERNAL_100_OHM_EN | IPBUFFER_AC_COUPLED_MODE_EN, 1)
adi_hmc7044_input_reference_set(&g_jesd->hmc7044_dev, 1, IPBUFFER_INTERNAL_100_OHM_EN | IPBUFFER_AC_COUPLED_MODE_EN, 1)
adi_hmc7044_input_reference_los_config_set(&g_jesd->hmc7044_dev, 7, 0, 0)
adi_hmc7044_vco_enable_set(&g_jesd->hmc7044_dev, 1, 1)
adi_hmc7044_clk_config(&g_jesd->hmc7044_dev,
                        HMC7044_CLK_IN_1,
                        hmc_priority, 
                        hmc7044_crystal_input,
                        hmc7044_crystal_input, 
                        hmc_out_ch,
                        hmc_out_204c); 
adi_hmc7044_reg_update(&g_jesd->hmc7044_dev)
ad_wait_us(NULL, 100000)
adi_hmc7044_device_pll_lock_status_get(&g_jesd->hmc7044_dev, &hmc_pll_locked)


/* ad9082 setup */
uint64_t clk_hz[][4] = { 150.00e6, 150.00e6, 3600.00e6,  1800.00e6 };
adi_ad9082_device_reset(&ad9082_dev, AD9082_SOFT_RESET)
adi_ad9082_device_init(&ad9082_dev)
adi_ad9082_device_clk_config_set(&ad9082_dev, clk_hz[uc][2], clk_hz[uc][3], clk_hz[uc][0])

Here is the log output will all logging enabled, including register I/O tracing

VCXO clock: 100.00Mhz  Ref clk: 100.00Mhz Device clock: 150.00MHz, Sysref clock: 1.56250Mhz
adi_hmc7044_device_init()
[spih] 009F>4D
[spih] 00A0>DF
[spih] 00A5>06
[spih] 00A8>06
[spih] 00B0>04
adi_hmc7044_device_reset()
[spih] 0000>01
[spih] 0000>00
[spih] 009F>4D
[spih] 00A0>DF
[spih] 00A5>06
[spih] 00A8>06
[spih] 00B0>04
adi_hmc7044_input_reference_set(0)()
[spih] 000A>07
adi_hmc7044_input_reference_set(1)()
[spih] 000B>07
adi_hmc7044_input_reference_los_config_set()
[spih] 0015>07
[spih] 0019>00
adi_hmc7044_vco_enable_set()
[spih] 0003<37
[spih] 0003>2F
adi_hmc7044_output_sync_config_set(3)()
[spih] 00E6<FD
[spih] 00E6>F1
adi_hmc7044_output_sync_config_set(13)()
[spih] 014A<FD
[spih] 014A>F1
adi_hmc7044_output_multi_slip_config_set(13)()
[spih] 014A<F1
[spih] 014A>F1
adi_hmc7044_clk_config()
[spih] 000A<37
[spih] 000A>37
[spih] 000B<17
[spih] 000B>17
[spih] 000C<17
[spih] 000C>17
[spih] 000D<17
[spih] 000D>17
[spih] 000E<17
[spih] 000E>17
[spih] 0014>E1
[spih] 001C>01
[spih] 001D>01
[spih] 001E>01
[spih] 001F>01
[spih] 0020>01
[spih] 0021>02
[spih] 0022>00
[spih] 0026>02
[spih] 0027>00
[spih] 0033>02
[spih] 0034>00
[spih] 0035>1B
[spih] 0036>00
[spih] 0032>00
[spih] 009F>4D
[spih] 00A0>DF
[spih] 00A5>06
[spih] 00A8>06
[spih] 00B0>04
[spih] 00DC<FF
[spih] 00DC>7F
[spih] 00DD>12
[spih] 00DE>00
[spih] 00E3>00
[spih] 00E4>03
[spih] 00E6<F1
[spih] 00E6>71
[spih] 00E7>C0
[spih] 00E8>06
[spih] 00ED>00
[spih] 00EE>03
[spih] 0140<F3
[spih] 0140>73
[spih] 0141>12
[spih] 0142>00
[spih] 0147>00
[spih] 0148>03
[spih] 014A<F1
[spih] 014A>71
[spih] 014B>C0
[spih] 014C>06
[spih] 0151>00
[spih] 0152>03
adi_hmc7044_reg_update()
[spih] 0001>62
[spih] 0001>60
adi_hmc7044_device_pll_lock_status_get()
[spih] 007D<1B

*** HMC7044: PLL is  locked! ***

[AD:API] adi_ad9082_device_reset(...)
[AD:SPI] ad9082: w@0000 = 81
[AD:SPI] ad9082: w@0000 = 00
[AD:API] adi_ad9082_device_init(...)
[AD:MSG] api v1.1.0 commit 95cf02d for ad9082
[AD:MSG] host is using little endian mode.
[AD:API] adi_ad9082_device_spi_config(...)
[AD:SPI] ad9082: w@0000 = 18
[AD:API] adi_ad9082_device_reg8_access_check(...)
[AD:SPI] ad9082: r@801c = ff
[AD:SPI] ad9082: w@001c = 5a
[AD:SPI] ad9082: r@801c = 5a
[AD:SPI] ad9082: w@001c = a5
[AD:SPI] ad9082: r@801c = a5
[AD:SPI] ad9082: w@001c = 5a
[AD:API] adi_ad9082_device_power_status_check(...)
[AD:SPI] ad9082: r@8210 = ff
[AD:SPI] ad9082: r@8211 = ff
[AD:SPI] ad9082: r@8212 = ff
[AD:SPI] ad9082: r@8213 = ff
[AD:API] adi_ad9082_device_clk_config_set(...)
[AD:API] adi_ad9082_device_boot_pre_clock(...)
[AD:SPI] ad9082: r@b742 = ff
[AD:API] adi_ad9082_device_chip_id_get(...)
[AD:SPI] ad9082: r@8003 = ff
[AD:SPI] ad9082: r@8004 = ff
[AD:SPI] ad9082: r@8005 = 90
[AD:SPI] ad9082: r@8006 = 23
[AD:MSG] device is ad90ff r3
[AD:API] adi_ad9082_device_laminate_id_get(...)
[AD:SPI] ad9082: r@9e0d = ff
[AD:API] adi_ad9082_device_die_id_get(...)
[AD:SPI] ad9082: r@9e0e = ff
[AD:SPI] ad9082: r@a1b2 = 10
[AD:SPI] ad9082: w@21b2 = 10
[AD:API] adi_ad9082_dac_digital_logic_enable_set(...)
[AD:SPI] ad9082: r@8201 = 00
[AD:SPI] ad9082: w@0201 = 00
[AD:SPI] ad9082: w@00d0 = 1f
[AD:API] adi_ad9082_device_aclk_receiver_enable_set(...)
[AD:SPI] ad9082: r@8091 = 00
[AD:SPI] ad9082: w@0091 = 00
[AD:API] adi_ad9082_device_clk_pll_enable_set(...)
[AD:SPI] ad9082: r@8094 = 00
[AD:SPI] ad9082: w@0094 = 01
[AD:SPI] ad9082: w@00e0 = 9f
[AD:SPI] ad9082: w@00e1 = 1f
[AD:API] adi_ad9082_device_clk_pll_startup(...)
[AD:API] adi_ad9082_device_clk_pll_enable_set(...)
[AD:SPI] ad9082: r@8094 = 01
[AD:SPI] ad9082: w@0094 = 00
[AD:SPI] ad9082: w@00e0 = 00
[AD:SPI] ad9082: w@00e1 = 00
[AD:API] adi_ad9082_device_clk_pll_div_set(...)
[AD:SPI] ad9082: w@00fe = fc
[AD:SPI] ad9082: r@80ff = 03
[AD:SPI] ad9082: w@00ff = 03
[AD:SPI] ad9082: w@00fa = ce
[AD:SPI] ad9082: r@80fb = ff
[AD:SPI] ad9082: w@00fb = fa
[AD:SPI] ad9082: r@80e8 = 1f
[AD:SPI] ad9082: w@00e8 = 1f
[AD:SPI] ad9082: r@80e7 = ff
[AD:SPI] ad9082: w@00e7 = e0
[AD:SPI] ad9082: r@80e4 = 13
[AD:SPI] ad9082: w@00e4 = 13
[AD:SPI] ad9082: r@80e6 = ff
[AD:SPI] ad9082: w@00e6 = c0
[AD:SPI] ad9082: r@80e3 = 08
[AD:SPI] ad9082: w@00e3 = 08
[AD:SPI] ad9082: w@00e2 = 1f
[AD:SPI] ad9082: w@00e2 = 00
[AD:SPI] ad9082: r@80e3 = 08
[AD:SPI] ad9082: w@00e3 = 08
[AD:SPI] ad9082: r@8093 = 05
[AD:SPI] ad9082: w@0093 = 05
[AD:SPI] ad9082: r@80e9 = ff
[AD:SPI] ad9082: w@00e9 = c8
[AD:SPI] ad9082: r@80ec = 26
[AD:SPI] ad9082: w@00ec = 06
[AD:SPI] ad9082: r@80ee = 94
[AD:SPI] ad9082: w@00ee = 94
[AD:SPI] ad9082: w@00ea = 60
[AD:SPI] ad9082: w@00eb = 3d
[AD:SPI] ad9082: r@80e2 = 00
[AD:SPI] ad9082: w@00e2 = 02
[AD:SPI] ad9082: r@80e2 = 02
[AD:SPI] ad9082: w@00e2 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 02
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 02
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 02
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:API] adi_ad9082_device_clk_pll_lock_status_get(...)
[AD:SPI] ad9082: r@a008 = 00
[AD:ERR] PLL not locked, "pll_lock" in adi_ad9082_device_clk_pll_div_set(...), line277 i
jesd>

Top Replies

Parents Reply Children
No Data