LMK0482X该系列是德州仪器推出的高性能时钟调节芯片系列。目前有三种芯片,即LMK04821、LMK04826以及LMK04828系列芯片支持最新的JESD204B协议。本次调试主要基于LMK以04821为例,对调试过程中出现的一些问题进行。
其性能描述如下:
-
支持JESD204B;
-
超低时钟抖动和噪音;
-
14路差分时钟可同时输出:
<1>. 7对可作为JESD204B的SYSREF时钟;
<2>.最大输出频率可达3.1GHz;
<3>. 可编程输出差分钟的电平标准:LVPECL、LVDS、HSDS、以及LCPECL;
-
双PLL结构;
-
PLL2的VCO分频系数为1-32;
-
精确的数字延迟、模拟延迟和动态延迟;
-
多工作模式:双PLL、单PLL及时分发模式;
LMK0482X这三个芯片系列的区别在于支持不同的芯片VCO,如下图1所示:
LMK04821芯片的应用示意图如下图2所示:
LMK0482X管脚分布定义图如下图3所示,熟悉每个管脚的功能非常重要,逐一介绍:
PIN1、2:第0路Device CLK差分输出;
PIN3、4:第1路SYSREF/Device CLK差分输出;
PIN5:芯片的复位输入或通用GPIO;
PIN6:芯片时钟同步输入端口或连续输入SYSREF CLK请求输入端口;
PIN七、八、九:无用,可悬空;
PIN10:电源输入;
PIN11:LDO旁路电容,外接10uf到地;
PIN12:LDO旁路电容,外接0.1uf到地;
PIN13、14:第3路SYSREF/Device CLK差分输出;
PIN15、16:第2路Device CLK差分输出;
PIN17:电源输入;
PIN18:芯片的SPI配置CS信号;
PIN19:芯片的SPI配置SCK信号;
PIN20:芯片的SPI配置SDIO信号;
PIN21:电源输入;
PIN22、23:第5路SYSREF/Device CLK差分输出;
PIN24、25:第4路Device CLK差分输出;
PIN26:电源输入;
PIN27、28:第6路Device CLK差分输出;
PIN29、30:第7路SYSREF/Device CLK差分输出;
PIN31:可编程状态监测I/O管脚;
PIN32:PLL1.输出电荷泵;
PIN三三、电源输入;
PIN34、35:PLL1.零延迟模式下的外部反馈时钟输入VCO输入;
PIN36:电源输入;
PIN37、38:PLL1参考时钟输入0;
PIN三九:电源输入;
PIN40、41:反馈到PLL1.参考输入PLL2。AC耦合;
PIN42:电源输入;
PIN43、44:PLL2参考时钟输入,PLL1反馈时钟输入;
PIN45:电源输入;
PIN46:PLL2.输出电荷泵;
PIN47:电源输入;
PIN48:可编程状态监测I/O管脚;
PIN49、50:第9路SYSREF/Device CLK差分输出;
PIN51、52:第8路Device CLK差分输出;
PIN53:电源输入;
PIN54、55:第10路Device CLK差分输出;
PIN56、57:第11路SYSREF/Device CLK差分输出;
PIN58:可编程状态监测I/O管脚;
PIN59:可编程状态监测I/O管脚;
PIN60、61:第13路SYSREF/Device CLK差分输出;
PIN62、63:第12路Device CLK差分输出;
PIN64:电源输入;
DAP :散热盘,接地;
芯片供电是否正常,是否符合设备工作条件,该步骤直接决定芯片是否正常工作,试验点参考下图;
借助示波器检查芯片的参考时钟输入是否正常,CLKin外部信号源提供0端时钟,OSCin端时钟由板上的晶振提供,测量进入AD时钟是否正常;
LMK04821的配置采用SPI其配置规则通过阅读数据手册提取关键知识点,如下:
写操作时,CS当信号为低电平时,SDIO的数据在SCK上升沿写入芯片,数据格式为1bit读写控制位 2bit的0 13bit地址 8bit数据。
读取操作时,先写入1bit读写控制位 2bit的0 13bit接下来,地址SCK上升沿8bit数据;
时序图如下图6所示:
进行SPI编写时,一定要按照图7的时序要求,另外,在FPGA内设计SPI代码必须可读可写,这样在FPGA在配置寄存器时,您可以知道每个寄存器的内部配置值是否正确。这一步是控制整个芯片的工作,FPGA第一步要完成。
该系列芯片功能非常灵活,一般JESD204B系统的双PLL级联应用最经典,但也适用于传统应用。需要注意的是,Device CLK不提供单端输出,只有OSCout可提供管脚LVCMOS单端输出除外。PLL也可以配置应用模式PLL或时钟分发模式。
-
LMK0482X双系列芯片PLL结构保证了在很宽的输出频率范围内还可以输出最低抖动的时钟。第一级PLL(PLL1)由外部参考时钟驱动,二级PLL(PLL2)由VCXO或可调晶振提供高精度、低噪声的二次参考时钟。通过这两级PLL,输出时钟的精度将大大提高。
-
LMK0482X共输出7对系列芯片JESD204B DeviceCLK和7对SYSREF CLK,其中每个Device CLK对应一个SYSREF CLK。对于那些非JESD204B的应用,SYSREF CLK也可以编程为Device CLK。
-
PLL1的输入参考时钟包括管脚CLKin0,CLKin1以及CLKin2.可以选择任何时钟输入,选择的规则由配置寄存器参数决定。
-
VCXO/Crystal 缓存输出,LMK0482X提供系列芯片OSCout输出实际上是输出PLL1反馈输入,也是PLL2.参考时钟输入。芯片的功能实际上是在编程前为控制器提供一个时钟,并重新配置控制器编程LMK0482X。OSCout输出可以为LVDS、LVPECL以及LVMOS电平。
-
LMK0482X具有频率考时钟丢失时,输出频率可以保持最小漂移,直到外部参考时钟恢复。
-
7路Device CLK可分别分频,分频系数为1~32。
-
7路SYSREF CLK分频系数统一为8~8191。
-
Device CLK具有模拟延迟和数字延迟等延迟功能。模拟延迟为25ps对于单位时钟延迟模块,模块本身的使用也将带来500ps延迟。数字延迟范围为4~32 VCO每个延迟单元的时钟周期为0.5 VCO周期。需要注意的是,延迟功能必须同步使能。
-
SYSREF CLK也有模拟核数字延迟。模拟延迟的最小单位是150ps。数字延迟范围为1.5~11VCO,每个延迟单元的大小为0.5 VCO周期。/p>
-
14路时钟的输出不仅在电平标准上可编程,在输出的幅度方面也可编程。
-
要使时钟的数字延时起作用,管脚SYNC必须给一个脉冲,在脉冲的上升沿所有的时钟同步。
-
LMK04821提供了几个状态管脚用来供用户监测芯片内部的状态或者作为输入端口来响应用户的需求,具体的功能在寄存器配置说明里介绍。
在进行LMK04821寄存器配置的时候,手册里给了一个推荐的顺序,如下图图9所示:
在辅助软件TICS Pro中,生成的寄存器顺序也是严格按照手册中进行配置的。
但是在实际运用中,按照该寄存器配置顺序,时钟输出端并没有正确的时钟输出。实际运用中,将寄存器顺序按照如下顺序进行配置:
1、0X000配置两次,先进行复位,然后0X000再配置00,无操作;
2、然后紧接着从0X100~0X145;
3、0X171~0X17D;
4、0X146~0X16E;
5、0X143(90)、0X149(00)、0X143(两次B0、90)、0X144(FF)、0X143(两次10、11)、0X139(03)、0X002(00);固定数值;尽量不要改变,具体为什么要这样进行配置,对应数据手册进行查阅即可。
注意:在实际应用中,目前为止该寄存器顺序是唯一能够正确产生时钟的顺序,可以参考软件给的寄存器数据,尽量不要改变配置寄存器的顺序。部分寄存器在设计中没有进行配置,比如一些只读寄存器,IC信息相关的寄存器,reback相关的寄存器都没有进行配置,实际操作中无伤大雅,可以不用配置。但是在SPI配置寄存器时,如果要检验寄存器读写是否成功时,可以将这些寄存器进行读操作,确保SPI操作正常。
在此之前,确定寄存器配置顺序之后,利用辅助软件TICS Pro软件产生对应的参数,按照6中所示的寄存器顺序进行写操作。软件使用中重要参数的产生以及对应在软件中如何设置见下图图10;
一定要熟练掌握软件运用,明确在产生想要的时钟时,如何进行软件操作,得到相应的系数,软件中每个点如何进行配合;参数之间是如何对应的,建议配合数据手册进行对比,能够事半功倍。
-
标记1选择CLKin0作为参考时钟输入;硬件环境值在CLKin0端有时钟输入;
-
标记2选择PLL1,MUX是可以进行选择的,不同的选择,对应寄存器要配置的数值不同;
-
标记3处选择相应的DIV数值,得到需要的时钟100M;
-
标记4 CPout1直接连接到外部晶振,目的是,当参考时钟丢失时,延时功能可以将PLL1的调谐电压固定在VCXO或者可调谐晶振上,使得在外部参考时钟丢失时,输出的时钟频率的偏移最小,直到外部时钟恢复。
-
标记5 OSCin,PLL1的反馈输入,PLL2的参考时钟输入,实际调试中,发现OSCin如果没有输入,输出端就没有时钟输出,没有CLKin0输入,输出时钟依然正常输出;
-
标记6、7、8、9、10、11、12,这几处都和PLL2 VCO Frequency有关系,手册中显示LMK04821在使用VCO1时,PLL2频率要求在2920~3080MHz之间。
-
超出范围,软件会报红出错。这几处设置其实就是简单的将OSCin的时钟进行先倍频后分频的一个操作;比如,实际中需要DCLKout输出150M、75M时钟,再复合要求范围的情况下,找到一个合适的公倍数,例子中为1500M,这样一来,既能得到150M的DCLKoutX的输出,又能得到75M的时钟输出;
除此之外,时钟输出设置如下图图11所示:
-
标记1,公倍数;
-
标记2,PLL1的反馈输入,PLL2的参考输入,实际运用中,PLL2的参考输入为OSCin;
-
标记3,分频系数,1500M十分频150M;
-
标记4,选择PD,意味着该通道不输出,处于关闭状态;
-
标记5,DCLK输出频率,可在对应位置直接填入想要的数值。注意,最好是公倍数的整数分频后的值,不然,软件会自动产生一个和填入值最相近的数值;
-
标记6,SCLK输出端口,SCLK不能单独分频,7个通道只能统一进行分频;具体设置如下图图12所示:
注意:在设定寄存器参数时,操作软件时,会在左下方窗口标记2处显示对应的寄存器以及数值,便于我们很迅速的在数据手册中查到该数值进行了哪些配置;
软件配置时,最重要的几个参数以及对应的寄存器如下:
-
Doubler,对应相关寄存器0X162;
-
R Divider,对应寄存器0X160、0X161;
-
N Divider,对应寄存器0X168;
-
VCO,对应寄存器0X138;
-
DCLKoutX_DIV, 对应寄存器0X100、0X108、0X110、0X1180、0X120、0X128、0X130;
-
SYSREF DIV,对应寄存器0X13A、0X13B;
注意;有些参数需要多个寄存器共同配合使用;另外的寄存器在软件配置过程中会生成,按照具体的设计要求进行软件操作配置,导出参数之后,在对应的寄存器中进行更改即可。
在对LMK04821芯片进行正确配置之后,时钟能够正常输出想要的时钟频率,利用示波器进行测量,都能够直接观测到时钟有输出;程序中更改不同的分频系数,也能够在输出端得到相应的时钟输出。
考虑到系统中要求时钟同源的问题,在对CLKin0参考输入时钟、DCLK、SCLK通过示波器进行起始相位对比观测,发现通过倍频分频后,时钟起始相位存在大概1/4个周期偏差,多次测试,每次都有细微的偏差。
其中,DCLK与SCLK如果输出频率相同时,相位差通过观察,有细微偏差,考虑到示波器使用过程中,探头不稳定原因,暂定相位偏差为0;后期有更好的测试方法时,再进行确认。