Other Parts Discussed in Thread:LMK04828, LMK04832
各位专家。我这边正在验证lmk04828的数字延迟和模拟延迟。输入为clkin1输入20mhz时钟,oscin输入为100mhz时钟。vco0为2500mhz。
dclkout0为2500mhz,dclkout2为2500mhz。我使用示波器测试这两个时钟的延迟。
关于模拟延迟。我在TICSPRO上设置clock output select设置为analog delay + divider。在芯片配置完成后。更改analog delay中的延迟值。发现时钟延迟更改了。但是改动的值和我设置的不太一样。关于模拟延迟这边操作有什么问题吗?
另外我准备测试数字延迟功能。数字延迟按照手册上说拥有两个模式。
我准备验证Fixed Digital Delay。使用手册上说明的例子。
设置DCLKout0_DDLY_CNTH/L的值为4,4。设置DCLKout0_DDLY_CNTH/L的值为4,5;
设置DCLKout0_DDLY_PD = 0 and DCLKout2_DDLY_PD = 0;
设置SYNC_DIS0 = 0 and SYNC_DIS2 = 0;
在操作sync_pol写1在写0。
已知VCO0为2500mhz。我修改后延迟为半个VCO0周期应该为200ps。即dclkout0和dclkout1应该反相。但是事实是,输出时钟毫无变化。我这边的操作还有什么漏掉的地方吗?
? ?:
@Kailyn Chen 大佬有空帮忙看一下吗,非常感谢。
,
Cherry Zhou:
您好,您的问题我们需要升级到英文论坛寻求帮助,如有答复将尽快回复您。
,
? ?:
非常感谢您。希望能得到回复。
,
Cherry Zhou:
您好,
工程师这边已经可以确认示波器上的digital delay step size是正确的。
您能否再分享下您的相关程序及其测试过程的更多信息?
,
? ?:
R0 (INIT) 0x000090 R0 0x000010 R2 0x000200 R3 0x000306 R4 0x0004D0 R5 0x00055B R6 0x000600 R12 0x000C51 R13 0x000D04 R256 0x010001 R257 0x010155 R258 0x010255 R259 0x01030F R260 0x010442 R261 0x010500 R262 0x010601 R263 0x010755 R264 0x010801 R265 0x010955 R266 0x010A55 R267 0x010B2F R268 0x010C42 R269 0x010D00 R270 0x010E01 R271 0x010F05 R272 0x011008 R273 0x011155 R274 0x011255 R275 0x011300 R276 0x011402 R277 0x011500 R278 0x0116F9 R279 0x011700 R280 0x011818 R281 0x011955 R282 0x011A55 R283 0x011B00 R284 0x011C02 R285 0x011D00 R286 0x011EF1 R287 0x011F33 R288 0x012008 R289 0x012155 R290 0x012255 R291 0x012300 R292 0x012402 R293 0x012500 R294 0x0126F9 R295 0x012700 R296 0x012808 R297 0x012955 R298 0x012A55 R299 0x012B00 R300 0x012C02 R301 0x012D00 R302 0x012EF9 R303 0x012F00 R304 0x013006 R305 0x013155 R306 0x013255 R307 0x013300 R308 0x013402 R309 0x013500 R310 0x0136F1 R311 0x013733 R312 0x013805 R313 0x013900 R314 0x013A0C R315 0x013B00 R316 0x013C00 R317 0x013D08 R318 0x013E03 R319 0x013F00 R320 0x01400F R321 0x014103 R322 0x014200 R323 0x014311 R324 0x014400 R325 0x01457F R326 0x014618 R327 0x01471A R328 0x014802 R329 0x014942 R330 0x014A02 R331 0x014B16 R332 0x014C00 R333 0x014D00 R334 0x014EC0 R335 0x014F7F R336 0x015003 R337 0x015102 R338 0x015200 R339 0x015300 R340 0x015478 R341 0x015500 R342 0x015678 R343 0x015700 R344 0x015896 R345 0x015902 R346 0x015A58 R347 0x015BD4 R348 0x015C20 R349 0x015D00 R350 0x015E00 R351 0x015F0B R352 0x016000 R353 0x01610A R354 0x016244 R355 0x016300 R356 0x016400 R357 0x01657D R369 0x0171AA R370 0x017202 R380 0x017C15 R381 0x017D33 R358 0x016600 R359 0x016700 R360 0x01687D R361 0x016959 R362 0x016A20 R363 0x016B00 R364 0x016C00 R365 0x016D00 R366 0x016E13 R371 0x017300 R386 0x018200 R387 0x018300 R388 0x018400 R389 0x018500 R392 0x018800 R393 0x018900 R394 0x018A00 R395 0x018B00 R8189 0x1FFD00 R8190 0x1FFE00 R8191 0x1FFF53这是我的寄存器配置表。
,
? ?:
这是我使用示波器测试的模拟延迟。调节可以但是貌似值不对。数字延迟功能还是使用不对。可以分享你们寄存器配置文件吗?
,
Cherry Zhou:
您好,
请问问题是仅出现在固定的digital delay 功能上,还是说仅设置analog delay设置时也会出现? 工程师目前正在实验室中进行debug,应该会在假期前给到您答复。
,
? ?:
这边问题有两个。我使用04828的模拟延迟,输出值与我的设置值貌似不一致。
这是设置clk0-数字延迟55-模拟延迟500ps,clk1-数字延迟55-模拟延迟500ps
这是设置clk0-数字延迟55-模拟延迟500ps,clk1-数字延迟55-模拟延迟525ps
这是设置clk0-数字延迟55-模拟延迟500ps,clk1-数字延迟55-模拟延迟600ps
这是设置clk0-数字延迟55-模拟延迟500ps,clk1-数字延迟55-模拟延迟625ps
这是设置clk0-数字延迟55-模拟延迟500ps,clk1-数字延迟55-模拟延迟725ps
这是设置clk0-数字延迟56-模拟延迟500ps,clk1-数字延迟55-模拟延迟500ps
设置数字延迟后,在操作sync_pol写1在写0。
,
? ?:
这是我FPGA配置过程,和ticspro一致的。
assign Config_Param[0] = {16'h0000,8'h90};//soft reset assign Config_Param[1] = {16'h0000,8'h00};//写00三线SPI assign Config_Param[2] = {16'h0002,8'h00};//0x002-0x00d默认寄存器 assign Config_Param[3] = {16'h0003,8'h06}; assign Config_Param[4] = {16'h0004,8'hD0}; assign Config_Param[5] = {16'h0005,8'h5B}; assign Config_Param[6] = {16'h0006,8'h00}; assign Config_Param[7] = {16'h000c,8'h51}; assign Config_Param[8] = {16'h000d,8'h04}; assign Config_Param[9] = {16'h0100,8'h01};//DCLKout0;drive level; assign Config_Param[ 10] = {16'h0101,8'h55};//digital delay assign Config_Param[ 11] = {16'h0102,8'h55}; assign Config_Param[ 12] = {16'h0103,8'h0F};//analog delay assign Config_Param[ 13] = {16'h0104,8'h42};//half step;SYSREF output MUX;digital delay assign Config_Param[ 14] = {16'h0105,8'h00};//analog delay;SYSREF assign Config_Param[ 15] = {16'h0106,8'h01};//power down functions for the digital delay assign Config_Param[ 16] = {16'h0107,8'h55};//output polarity assign Config_Param[ 17] = {16'h0108,8'h01};//drive level,divider values. assign Config_Param[ 18] = {16'h0109,8'h55};//digital delay high;device clock outputs. assign Config_Param[ 19] = {16'h010a,8'h55};//0x100-0x137配置输出 assign Config_Param[ 20] = {16'h010b,8'h2F}; assign Config_Param[ 21] = {16'h010c,8'h42}; assign Config_Param[ 22] = {16'h010d,8'h00}; assign Config_Param[ 23] = {16'h010e,8'h01}; assign Config_Param[ 24] = {16'h010f,8'h05}; assign Config_Param[ 25] = {16'h0110,8'h08}; assign Config_Param[ 26] = {16'h0111,8'h55}; assign Config_Param[ 27] = {16'h0112,8'h55}; assign Config_Param[ 28] = {16'h0113,8'h00}; assign Config_Param[ 29] = {16'h0114,8'h02}; assign Config_Param[ 30] = {16'h0115,8'h00}; assign Config_Param[ 31] = {16'h0116,8'hF9}; assign Config_Param[ 32] = {16'h0117,8'h00}; assign Config_Param[ 33] = {16'h0118,8'h18}; assign Config_Param[ 34] = {16'h0119,8'h55}; assign Config_Param[ 35] = {16'h011a,8'h55}; assign Config_Param[ 36] = {16'h011b,8'h00}; assign Config_Param[ 37] = {16'h011c,8'h02}; assign Config_Param[ 38] = {16'h011d,8'h00}; assign Config_Param[ 39] = {16'h011e,8'hF1}; assign Config_Param[ 40] = {16'h011f,8'h33}; assign Config_Param[ 41] = {16'h0120,8'h08}; assign Config_Param[ 42] = {16'h0121,8'h55}; assign Config_Param[ 43] = {16'h0122,8'h55}; assign Config_Param[ 44] = {16'h0123,8'h00}; assign Config_Param[ 45] = {16'h0124,8'h02}; assign Config_Param[ 46] = {16'h0125,8'h00}; assign Config_Param[ 47] = {16'h0126,8'hF9}; assign Config_Param[ 48] = {16'h0127,8'h00}; assign Config_Param[ 49] = {16'h0128,8'h08}; assign Config_Param[ 50] = {16'h0129,8'h55}; assign Config_Param[ 51] = {16'h012a,8'h55}; assign Config_Param[ 52] = {16'h012b,8'h00}; assign Config_Param[ 53] = {16'h012c,8'h02}; assign Config_Param[ 54] = {16'h012d,8'h00}; assign Config_Param[ 55] = {16'h012e,8'hF9}; assign Config_Param[ 56] = {16'h012f,8'h00}; assign Config_Param[ 57] = {16'h0130,8'h06}; assign Config_Param[ 58] = {16'h0131,8'h55}; assign Config_Param[ 59] = {16'h0132,8'h55}; assign Config_Param[ 60] = {16'h0133,8'h00}; assign Config_Param[ 61] = {16'h0134,8'h02};// assign Config_Param[ 62] = {16'h0135,8'h00}; assign Config_Param[ 63] = {16'h0136,8'hF1}; assign Config_Param[ 64] = {16'h0137,8'h33};//输出极性 assign Config_Param[ 65] = {16'h0138,8'h05};//OSCont输出,and vco0 or vco1 assign Config_Param[ 66] = {16'h0139,8'h00};//SYSREF outputs assign Config_Param[ 67] = {16'h013a,8'h0C};//SYSREF output divider assign Config_Param[ 68] = {16'h013b,8'h00};//SYSREF output divider assign Config_Param[ 69] = {16'h013c,8'h00};//SYSREF digital delay value assign Config_Param[ 70] = {16'h013d,8'h08};//SYSREF digital delay value assign Config_Param[ 71] = {16'h013e,8'h03};//SYSREF pulses assign Config_Param[ 72] = {16'h013f,8'h00};//feedback feature.//OSCIN,Feedback mux assign Config_Param[ 73] = {16'h0140,8'h0F};//power down 寄存器 assign Config_Param[ 74] = {16'h0141,8'h03};//SYSREF digital delay assign Config_Param[ 75] = {16'h0142,8'h00};//number of dynamic digital delay assign Config_Param[ 76] = {16'h0143,8'h11};//SYNC parameters assign Config_Param[ 77] = {16'h0144,8'h00};//sync assign Config_Param[ 78] = {16'h0145,8'h7F};//默认 assign Config_Param[ 79] = {16'h0146,8'h18};//CLKin enable and type controls. assign Config_Param[ 80] = {16'h0147,8'h1A};//注意一下,选择PLL1输入 assign Config_Param[ 81] = {16'h0148,8'h02};//CLKin_SEL0 controls. assign Config_Param[ 82] = {16'h0149,8'h42};//写02,支持回读寄存器 assign Config_Param[ 83] = {16'h014a,8'h02};//RESET pin assign Config_Param[ 84] = {16'h014b,8'h16};//holdover functions assign Config_Param[ 85] = {16'h014c,8'h00}; assign Config_Param[ 86] = {16'h014d,8'h00}; assign Config_Param[ 87] = {16'h014e,8'hC0};//DAC clock counter assign Config_Param[ 88] = {16'h014f,8'h7F};//DAC when in tracked mode assign Config_Param[ 89] = {16'h0150,8'h03};//switch events assign Config_Param[ 90] = {16'h0151,8'h02}; assign Config_Param[ 91] = {16'h0152,8'h00};//PLL1 PDF before holdover is exited. assign Config_Param[ 92] = {16'h0153,8'h00};//CLKin0 divide assign Config_Param[ 93] = {16'h0154,8'h78};//CLKin0 divide assign Config_Param[ 94] = {16'h0155,8'h00};//CLKin1 R divider assign Config_Param[ 95] = {16'h0156,8'h78};//CLKin1 R divider assign Config_Param[ 96] = {16'h0157,8'h00};// CLKin2 R divider. assign Config_Param[ 97] = {16'h0158,8'h96};// CLKin2 R divider. assign Config_Param[ 98] = {16'h0159,8'h02};//N divider value for PLL1. assign Config_Param[ 99] = {16'h015a,8'h58};//N divider value for PLL1. assign Config_Param[100] = {16'h015b,8'hD4};// PLL1 phase detector assign Config_Param[101] = {16'h015c,8'h20};//PLL1 DLD counter assign Config_Param[102] = {16'h015d,8'h00};//PLL1 DLD counter assign Config_Param[103] = {16'h015e,8'h00};//PLL1 N and R delays. assign Config_Param[104] = {16'h015f,8'h0B};//PLL1 LD pin.//SET00.STATUSLD2 USER assign Config_Param[105] = {16'h0160,8'h00};//PLL2 R divider. assign Config_Param[106] = {16'h0161,8'h0A}; assign Config_Param[107] = {16'h0162,8'h44};//PLL2 functions. assign Config_Param[108] = {16'h0163,8'h00}; assign Config_Param[109] = {16'h0164,8'h00}; assign Config_Param[110] = {16'h0165,8'h7D}; assign Config_Param[111] = {16'h0171,8'hAA};//确保171号寄存器为AA assign Config_Param[112] = {16'h0172,8'h02};//确保172号寄存器为02 assign Config_Param[113] = {16'h017c,8'h15};//确保lmk型号 assign Config_Param[114] = {16'h017d,8'h33}; assign Config_Param[115] = {16'h0166,8'h00};//PLL2频率校准 assign Config_Param[116] = {16'h0167,8'h00};// assign Config_Param[117] = {16'h0168,8'h7D};// assign Config_Param[118] = {16'h0169,8'h59};//PLL2 phase detector. assign Config_Param[119] = {16'h016a,8'h20};//PLL2 DLD counter assign Config_Param[120] = {16'h016b,8'h00}; assign Config_Param[121] = {16'h016c,8'h00};//loop filter resistors. assign Config_Param[122] = {16'h016d,8'h00};//loop filter capacitors assign Config_Param[123] = {16'h016e,8'h13};//设置status_LD2引脚 assign Config_Param[124] = {16'h0173,8'h00}; assign Config_Param[125] = {16'h0182,8'h00}; assign Config_Param[126] = {16'h0183,8'h00}; assign Config_Param[127] = {16'h0184,8'h00};//回读 assign Config_Param[128] = {16'h0185,8'h00};//DAC for user readback. assign Config_Param[129] = {16'h0188,8'h00}; assign Config_Param[130] = {16'h0189,8'h00}; assign Config_Param[131] = {16'h018a,8'h00}; assign Config_Param[132] = {16'h018b,8'h00}; assign Config_Param[133] = {16'h1ffd,8'h00};//spi_lock assign Config_Param[134] = {16'h1ffe,8'h00};// assign Config_Param[135] = {16'h1fff,8'h53};//写16'h53,SPI不锁定另外需要更改寄存器的时候,使用vio单独配置lmk04828的寄存器。操作和ticspro也是一致的。
,
Cherry Zhou:
您好,
Analog delay只能用于最大频率为1536MHz 的输出,由于运行频率为2500MHz,所以其不起作用。
但是,您是否正在尝试将 CLKout0和 CLKout2延迟100ps? 如果您可以告知在输出之间想要实现的不同延迟,如果该器件具有该功能,我们可以为您提供建议来实现,或者推荐另一个类似的器件。
除此之外,工程师这边在没有任何延迟的情况下以1024MHz 的频率测试了两个输出,同步了它们,使用相位匹配/相同长度的电缆,也仍然可以看到它们之间存在~50ps 的延迟(下图显示了这一点,请注意工程师使用了不同的 VCO 频率,因为他使用的是122.88MHz VCXO)。
我们正在尝试寻求其他专家的帮助和确认,看下该现象是否符合预期,这可能是您没有看到输出之间的确切延迟的原因,因为即使是在允许的频率内运行输出也是如此。 我们确认后会给到您答复。
另外,请问您为什么要为输出使用延迟? 如果方便的话,能否多分享下有关您系统的信息?
,
? ?:
你好,非常感谢你们的回复。
这里的模拟延迟输出是有限制的。这是我所没有注意到的地方。
是的,我正在尝试将clkout0和clkout2之间使用100ps的延迟。且clk0和clk2输出的频率为2500mhz。我们查阅到lmk04828是支持这个功能的。如果你们能为我提供帮助那真是太好了。
我之所以使用延迟功能是因为后续的系统对时钟有要求,我现在需要做的就是把这个调试出来。但这都是后续了。我现在正在验证版上验证这个延迟功能。
最后再次感谢你们帮助,祝你们假期愉快。
,
Cherry Zhou:
您好,
? ? said:是的,我正在尝试将clkout0和clkout2之间使用100ps的延迟。且clk0和clk2输出的频率为2500mhz。
由于 LMK04828的最大模拟延迟频率为1536MHz,因此模拟延迟不能用于2500MHz 输出。 在不使用模拟延迟的情况下,LMK04828可生成的最小延迟为半个 VCO 周期;因此对于此应用,可能的最小延迟步长为200ps (1/2500MHz/2 = 200ps)。 这意味着无法使用 LMK04828实现100ps 的所需步长。
不过LMK04832可以对其提供的所有输出频率使用模拟延迟,因此,如果需要100ps 的延迟,器件应考虑采用该延迟。
LMK04828和 LMK04832是相似的器件。
Cherry Zhou said:我们正在尝试寻求其他专家的帮助和确认,看下该现象是否符合预期,这可能是您没有看到输出之间的确切延迟的原因,因为即使是在允许的频率内运行输出也是如此。 我们确认后会给到您答复。
工程师查看数据表以及讨论后可以确认,输出之间的50ps 偏斜是 LMK04828的典型规格。 因此如果应用需要100ps 的绝对偏斜,也需要考虑这一点。 如果不需要绝对偏斜测量,则我们通常建议您可以在示波器上添加一个偏斜,来在示波器上实现物理对齐的输出。