提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
配置
开发板例程的SPI指令可以import到 TICS软件,这样就可以看到例程是如何配置的了。主要就是以下三个配置界面
设计到的寄存器有100多个,这里我也不想每个寄存器都搞清楚要怎么用
PLL1
LMK04828内部有两个PLL,分别是PLL1和PLL2。工作模式可以设置为单个PLL,和双PLL的模式
PLL1输入参考时钟包括管脚CLKin0,CLKin1以及CLKin2.可以选择任何时钟输入,选择的规则由配置寄存器参数决定。
PLL2.参考时钟输入来自于VCXO/Crystal,也是PLL1的反馈输入,可以通过OSCout管脚输出
实际上,我目前的设备作为主设备的时候,时钟源就是来自本地VCXO,因此主设备实际上不需要PLL1的功能,PLL1没有输入参考时钟,因此主设备只需要使用单PLL的模式**(准备做实验验证下)**
后续有从设备的时候,通过光纤得到了一个恢复时钟从CLKin0输入,这个时候就需要双PLL模式了。PLL1使用一个很窄的环路带宽同步VCXO。PLL1的鉴相器输入是CPOUT1管脚,连接到而来CTRL_VCXO。外部XS1的器件内部包含了环路滤波器和VCO。REF_VCXO时钟输入到OSCin管脚去
在这里假设外部输入的是122.88MHz的时钟,经过PLL R分频器进行768倍分频,得到0.16MHz,
而另一边48MHz的VCO作为反馈输入输出先进行N分频器分频300倍得到0.16MHz。两个0.16MHz都进入鉴相器进行鉴相操作,然后对外部的VCXO进行调节。这也是PLL1的工作流程
PLL2
VCXO的输出就是PLL2的输入,从下图看到,48M输入,鉴相器输入经过x2后的96M。VCO输出3072M,反馈链路除以4,然后在除以8,同样也是96M。这就是PLL2的工作流程
SYNC/SYSREF
SYNC和SYSREF信号共享同一条时钟路径,也就是说同一时间,只能用其中一个的功能,要么使用SYNC实现同步功能,要么是输出SYSREF
实现各路时钟的同步功能,实际上就是用SYNC信号的上升沿来同步除法器。实现这一目的需要注意以下几点:
• SYNC_EN必须使能
• SYSREF_MUX和SYNC_MODE这两个寄存器参数必须配置正确
• 必须配置寄存器,使延时模块上电
• SYNC_DISX信号必须拉低,使得SYNC/SYSREF能够作用到除法器来完成同步功能,此时SYSREF_MUX寄存器必须切换到SYNC模式
要实现JESD204B的时钟功能,首先必须用SYNC来同步SYSREF输出时钟除法器,然后再配置SYSREF的其它功能。
下面为配置SYSREF的例子,其中VCO为3000MHz,DCLKout0和DCLKout2输出1500MHz,用来驱动转换器。DCLKout4驱动FPGA,用两路10MHz的SYSREF同步转换器和FPGA:
1、Program registers 0x000 to 0x1fff as desired, but follow the Recommended Programming Sequence section for out-of-order registers. Key to prepare for SYSREF operations:
(a) Prepare for manual SYNC: SYNC_POL = 0, SYNC_MODE = 1, SYSREF_MUX = 0
(b) Set up output dividers as per example: DCLKout0_DIV and DCLKout2_DIV = 2 for frequency of 1500 MHz. DCLKout4_DIV = 20 for frequency of 150 MHz.
© Set up output dividers as per example: SYSREF_DIV = 300 for 10 MHz SYSREF
(d) Set up SYSREF: SYSREF_PD = 0, SYSREF_DDLY_PD = 0, DCLKout0_DDLY_PD = 0, DCLKout2_DDLY_PD = 0, DCLKout4_DDLY_PD = 0, SYNC_EN = 1, SYSREF_PLSR_PD = 0, SYSREF_PULSE_CNT = 1 (2 pulses). SDCLKout1_PD = 0, SDCLKout3_PD = 0
(e) Clear Local SYSREF DDLY: SYSREF_CLR = 1.
第一步在脚本生成的时候就设定好,除了一些具体频率数值之外,跟下面寄存器相关
(a)SYNC_POL/SYNC_MODE
(d)SYNC_EN
(e)SYSREF_CLR
(a)SYSREF_MUX
(a)SYSREF_PD SYSREF_DDLY_PD SYSREF_PLSR_PD
DCLKout0_DDLY_PD SDCLKout1_PD。其他通道的也一样
SYSREF_PULSE_CNT
2. Establish deterministic phase relationships between SYSREF and Device Clock for JESD204B:
(a) Set device clock and SYSREF divider digital delays: DCLKout0_DDLY_CNTH, DCLKout0_DDLY_CNTL,DCLKout2_DDLY_CNTH, DCLKout2_DDLY_CNTL, DCLKout4_DDLY_CNTH, DCLKout4_DDLY_CNTL,SYSREF_DDLY.
(b) Set device clock digital delay half steps: DCLKout0_HS, DCLKout2_HS, DCLKout4_HS.
© Set SYSREF clock digital delay as required to achieve known phase relationships: SDCLKout1_DDLY,SDCLKout3_DDLY, SDCLKout5_DDLY.
(d) To allow SYNC to affect dividers: SYNC_DIS0 = 0, SYNC_DIS2 = 0, SYNC_DIS4 = 0,SYNC_DISSYSREF = 0
(e) Perform SYNC by toggling SYNC_POL = 1 then SYNC_POL = 0.
这一步 a,b,c都是已经设定好的,主要看后面两步,
(d)应该也是默认的
(e)触发一次SYNC
3. Disable SYNC from resetting these dividers when the dividers are synchronized. It is not desired for SYSREF to reset the divider of the SYSREF or the dividers of the output clocks.
(a) Prevent SYNC (SYSREF) from affecting dividers: SYNC_DIS0 = 1, SYNC_DIS2 = 1, SYNC_DIS4 = 1,SYNC_DISSYSREF = 1.
这一步比较重要,之前SYNC之后,需要屏蔽掉之后SYNC管脚对分频器的影响,因此需要disable
4. Release reset of local SYSREF digital delay.
(a) SYSREF_CLR = 0. Note this bit needs to be set for only 15 VCO clocks after SYSREF_PD = 0.
开启SYSREF开关。(关闭了SYNC通路之后把SYSREF通路打开)
5. Set SYSREF operation.
(a) Allow pin SYNC event to start pulser: SYNC_MODE = 2.
(b) Select pulser as SYSREF signal: SYSREF_MUX = 2.
SYNC_MODE模式设定为SYSREF模式 = 2,相当于通过管脚SYNC产生SYSREF事件。
如果SYNC_MODE模式设定为SYSREF模式 = 3,相当于写寄存器0x13e来触发SYSREF事件
6. Complete! Now asserting the SYNC pin, or toggling SYNC_POL will result in a series of two SYSREF pulses.
通过SYNC管脚或者翻转 SYNC_POL寄存器可以发出2个SYSREF脉冲
上面讲的是SYSREF Pulser模式
• SYSREF的产生模式有3种,分别为SYSREF Pulser、Continuous SYSREF以及SYSREF Request。
• 在SYSREF Pulser中,每来一次SYNC,就输出一次SYREF,SYSREF的脉冲个数可编程调节。分别为1、2、4或者8.
• 在Continuous SYSREF模式中,输出连续的SYSREF时钟,但是不推荐这种方式,因为会和相邻的时钟产生串扰。
• 在SYSREF Request模式中,芯片允许从外部输入一个SYSREF请求信号来控制连续SYSREF的输出与关断,每当SYSREF_REQ被使能,SYSREF_MUX将调整到Continuous SYSREF模式并输出SYSREF,直到SYSREF_REQ被取消。文章来源:https://www.toymoban.com/news/detail-785762.html
总结
主要理解了下SYSREF的生成,因为这个比较重要文章来源地址https://www.toymoban.com/news/detail-785762.html
到了这里,关于LMK04828时钟芯片配置——配置理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!