有人用过lmk04610的SYNC mode吗?
我在给clkout CH12做同步时,发现一打开SYNC_EN_CH,时钟信号就没了,
流程是:打开了0x127/0x128的SYNC_EN_CH,然后GLOBAL_SYNC 置1再置0,clkout没有时钟波形。
CH12没有bypass,div也大于1,符合sync的要求。
重新描述问题:
我需要进行OUTCH1,2的SYNC,于是我在初始配置阶段打开SYNC_EN_CH1/2, STARTUP后进行GLOBAL_SYNC ,如下代码设置:
6'h27: pll_cfgdata_r <= 24'h01_27_20; //OutputCH1SYNCEnable
6'h28: pll_cfgdata_r <= 24'h01_28_20; //OutputCH2SYNCEnable
6'h29: pll_cfgdata_r <= 24'h00_11_01; //50110001
6'h32: pll_cfgdata_r <= 24'h00_14_01; // Global SW SYNC. Writing 1 puts the Device into SYNC mode. Writing 0 exits SYNC mode.
6'h3a: pll_cfgdata_r <= 24'h00_14_00;
我确定CH12的Divider value是2,以便它们可以被SYNC响应;
但上电后我发现ch12根本没有输出,它们只有很小的抖动,当我关掉SYNC_EN_CH1/2时,它们回到了稳定输出1ghz(what I configed)的波形,或许是打开SYNC_EN进入了SYNC的某些状态导致它们不输出了?我不确定,但我设置GLOBAL_SYNC后它们也并没有回到1ghz的输出状态。
LMK04610配置如下:
always @ (*)begin
case (pll_reg_count)
6'h0: pll_cfgdata_r <= 24'h00_10_1e; //
6'h1: pll_cfgdata_r <= 24'h00_10_1e; //
6'h2: pll_cfgdata_r <= 24'h00_10_1e; //5010001e
6'h3: pll_cfgdata_r <= 24'h00_2e_0c; //502e000c
6'h4: pll_cfgdata_r <= 24'h00_2f_01; //502f0001
6'h5: pll_cfgdata_r <= 24'h00_6c_01; //506c0001
6'h6: pll_cfgdata_r <= 24'h00_12_04; //50120004
6'h7: pll_cfgdata_r <= 24'h00_13_10; //50130010
6'h8: pll_cfgdata_r <= 24'h00_14_00; //50140000
// 6'h8: pll_cfgdata_r <= 24'h00_14_80; //50140000 enable sync pin
6'h9: pll_cfgdata_r <= 24'h00_16_28; //50160028
6'hA: pll_cfgdata_r <= 24'h00_6d_88; //506d0088
6'hB: pll_cfgdata_r <= 24'h00_75_00; //50750000
6'hC: pll_cfgdata_r <= 24'h00_76_01; //50760001
6'hD: pll_cfgdata_r <= 24'h00_72_14; //50720014
6'hE: pll_cfgdata_r <= 24'h00_73_00; //50730000
6'hF: pll_cfgdata_r <= 24'h00_74_28; //50740008 14 PLL2 N-Divider Value 40
// 6'h10: pll_cfgdata_r <= 24'h01_46_3c; //5146003c // prescaler is DIV6
6'h10: pll_cfgdata_r <= 24'h01_46_0c; //5146003c // prescaler is DIV3
6'h11: pll_cfgdata_r <= 24'h00_34_63; //50340063 43 62 HSDS 8 mA adc sampling clk
6'h12: pll_cfgdata_r <= 24'h00_35_18; //50350018 10 adc sampling clk
6'h13: pll_cfgdata_r <= 24'h00_36_03; //50360003 02 adc sampling clk
6'h14: pll_cfgdata_r <= 24'h00_37_18; //50370018 00 OUTCH34CNTL0
6'h15: pll_cfgdata_r <= 24'h00_38_63; //50380063 03 OUTCH34CNTL1
6'h16: pll_cfgdata_r <= 24'h00_39_18; //50390018 00 clkout5 fpga clk
6'h17: pll_cfgdata_r <= 24'h00_3a_03; //503a0003 clkout5 fpga clk enable
6'h18: pll_cfgdata_r <= 24'h00_3c_63; //503c0063 03 OUTCH6CNTL1
6'h19: pll_cfgdata_r <= 24'h00_3d_00; //503d0000
6'h1a: pll_cfgdata_r <= 24'h00_3e_02; //503e0063 03
6'h1b: pll_cfgdata_r <= 24'h00_40_02; //50400063 03 OUTCH9CNTL1
6'h1c: pll_cfgdata_r <= 24'h00_41_00; //50410018 00 OUTCH10CNTL0
6'h1d: pll_cfgdata_r <= 24'h00_42_02; //50400063 03 OUTCH10CNTL1
6'h1e: pll_cfgdata_r <= 24'h00_4c_0a; //504c0005 clkout6 Divider val
6'h1f: pll_cfgdata_r <= 24'h00_4e_0a; //504e0005 clkout78 Divider val
6'h20: pll_cfgdata_r <= 24'h00_44_02; //50440001 clkout1 adc sampling clk Divider val
6'h21: pll_cfgdata_r <= 24'h00_46_02; //50460001 clkout2 adc sampling clk Divider val
6'h22: pll_cfgdata_r <= 24'h00_47_00; //50470000
6'h23: pll_cfgdata_r <= 24'h00_48_0a; //50480005 clkout 34 Divider val
6'h24: pll_cfgdata_r <= 24'h00_4a_10; //504a000a clkout5 fpga clk Divider val
6'h25: pll_cfgdata_r <= 24'h00_50_08; //50500004 clkout9 Divider val
6'h26: pll_cfgdata_r <= 24'h00_52_08; //50520004 clkout10 Divider val
6'h27: pll_cfgdata_r <= 24'h01_27_20; //OutputCH1SYNCEnable
6'h28: pll_cfgdata_r <= 24'h01_28_20; //OutputCH2SYNCEnable
6'h29: pll_cfgdata_r <= 24'h00_11_01; //50110001
6'h2a: pll_cfgdata_r <= 24'h00_95_0d; //5095000d
6'h32: pll_cfgdata_r <= 24'h00_14_01; // Global SW SYNC. Writing 1 puts the Device into SYNC mode. Writing 0 exits SYNC mode.
6'h3a: pll_cfgdata_r <= 24'h00_14_00;
6'h3b: pll_cfgdata_r <= 24'h009402;
// 6'h3b: pll_cfgdata_r <= 24'h321321;
default: pll_cfgdata_r <= 24'h00_95_0d; //5095000d
endcase
end