• LMK04821功能介绍

LMK0482X系列是德州仪器推出的高性能时钟调节芯片系列,该芯片目前有三种,分别为LMK04821、LMK04826以及LMK04828,这款芯片都支持最新的JESD204B协议。本次调试主要以LMK04821为例,对调试过程中出现的一些问题进行总结说明。

其性能描述如下:

  1. 支持JESD204B;
  2. 超低的时钟抖动和噪声;
  3. 能够同属输出14路差分时钟:
  1. 7对可作为JESD204B的SYSREF时钟;
  2. 最大输出频率可以达到3.1GHz;
  3. 输出差分时钟的电平标准可编程选择:LVPECL、LVDS、HSDS、以及LCPECL;
  1. 双PLL结构;
  2. PLL2的VCO分频系数为1-32;
  3. 输出时钟精确的数字延时、模拟延时、以及动态延时;
  4. 多工作模式:双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请求输入端口;

PIN7、8、9:没用,悬空即可;

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的电荷泵输出;

PIN33: 电源输入;

  PIN34、35:PLL1的参考时钟输入1、零延迟模式下的外部反馈时钟输入、外部VCO输入;

  PIN36: 电源输入;

PIN37、38:PLL1的参考时钟输入0;

PIN39: 电源输入;

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   散热盘,接地;

  • LMK04821使用步骤

2、1硬件电路检查

图4

2、芯片的参考时钟输入是否正常,借助示波器进行检查,CLKin0端的时钟由外部信号源提供,OSCin端的时钟由板上晶振提供,测量进入AD之前时钟是否正常;

图5

2、2 寄存器配置

LMK04821的配置采用SPI方式,其配置规则通过阅读数据手册提取关键的知识点,如下:

  1. 写操作时,CS信号为低电平时,SDIO的数据在SCK上升沿写进芯片,写数据格式为1bit的读写控制位+2bit的0+13bit地址+8bit数据。
  2. 读操作时,先写入1bit的读写控制位+2bit的0+13bit地址,然后在接下来SCK的上升沿获取8bit数据;

时序图如下:

6

3、进行SPI时序编写时,务必按照图七的时序要求,除此之外,在FPGA内设计SPI代码时一定要可读可写,这样一来在FPGA配置寄存器时就能够知道每个寄存器内部配置的值是否正确,这一步是控制整个芯片工作时,FPGA要完成的第一步工作。

7

4、LMK04821的双PLL级联系统的介绍:

该系列芯片功能非常灵活,一般JESD204B系统的双PLL级联应用最为经典,但是对于传统的应用来说,同样适用。需要注意的是Device CLK不提供单端输出,只有OSCout管脚可以提供LVCMOS单端输出。另外,除了双PLL应用模式,亦可以配置单PLL或者时钟分发模式。

  1. LMK0482X系列芯片的双PLL结构保证了在很宽的输出频率范围内还可以输出最低抖动的时钟。第一级PLL(PLL1)被外部的参考时钟驱动,第二级PLL(PLL2)由VCXO或者可调晶振提供高精度、低噪声的二级参考时钟。经过这两级PLL,输出时钟的精度将会大大提高。
  2. LMK0482X系列芯片共输出7对JESD204B DeviceCLK和7对SYSREF CLK,其中每个Device CLK对应一个SYSREF CLK。对于那些非JESD204B的应用,SYSREF CLK同样可以编程为Device CLK。
  3. PLL1的输入参考时钟包括管脚CLKin0,CLKin1以及CLKin2,任选一个作为时钟输入即可,选择的规则由配置寄存器参数决定。
  4. VCXO/Crystal 缓存输出,LMK0482X系列芯片提供OSCout输出,该输出其实就是PLL1的反馈输入,也是PLL2的参考时钟输入,芯片的该功能其实就是为了在其编程之前可以提供一个时钟给控制器工作,控制器编程再配置LMK0482X。OSCout输出可以为LVDS、LVPECL以及LVMOS电平。
  5. LMK0482X具有频率保持的功能,当外部参考时钟丢失后,输出频率还能保持最小的漂移,直到外部参考时钟恢复。
  6. 7路Device CLK都可以分别的分频,分频系数为1~32。
  7. 7路SYSREF CLK统一分频,分频系数为8~8191。
  8. Device CLK具有延迟的功能,其包括模拟延迟和数字延迟。模拟延迟是以25ps为单位的时钟延迟模块,使用该模块本身也会带来500ps的延时。数字延时范围为4~32 VCO时钟周期,每一个延迟单元的大小为0.5 VCO周期。需要注意的是延迟的功能必须在同步使能后才起作用。
  9. SYSREF CLK同样具有模拟核数字延迟。模拟延迟的最小单位为150ps。数字延迟的范围为1.5~11VCO,同样每一个延迟单元的大小为0.5 VCO周期。
  10. 14路时钟的输出不仅在电平标准上可编程,在输出的幅度方面也可编程。
  11. 要使时钟的数字延时起作用,管脚SYNC必须给一个脉冲,在脉冲的上升沿所有的时钟同步。
  12. LMK04821提供了几个状态管脚用来供用户监测芯片内部的状态或者作为输入端口来响应用户的需求,具体的功能在寄存器配置说明里介绍。

5、功能框图

8

6、寄存配置顺序

在进行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操作正常。

7、寄存器对应数据

在此之前,确定寄存器配置顺序之后,利用辅助软件TICS Pro软件产生对应的参数,按照6中所示的寄存器顺序进行写操作。软件使用中重要参数的产生以及对应在软件中如何设置见图十;

图10

一定要熟练掌握软件运用,明确在产生想要的时钟时,如何进行软件操作,得到相应的系数,软件中每个点如何进行配合;参数之间是如何对应的,建议配合数据手册进行对比,能够事半功倍。

  1. 标记1选择CLKin0作为参考时钟输入;硬件环境值在CLKin0端有时钟输入;
  2. 标记2选择PLL1,MUX是可以进行选择的,不同的选择,对应寄存器要配置的数值不同;
  3. 标记3处选择相应的DIV数值,得到需要的时钟100M;
  4. 标记4 CPout1直接连接到外部晶振,目的是,当参考时钟丢失时,延时功能可以将PLL1的调谐电压固定在VCXO或者可调谐晶振上,使得在外部参考时钟丢失时,输出的时钟频率的偏移最小,直到外部时钟恢复。
  5. 标记5 OSCin,PLL1的反馈输入,PLL2的参考时钟输入,实际调试中,发现OSCin如果没有输入,输出端就没有时钟输出,没有CLKin0输入,输出时钟依然正常输出;
  6. 标记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. 标记1,公倍数;
  2. 标记2,PLL1的反馈输入,PLL2的参考输入,实际运用中,PLL2的参考输入为OSCin;
  3. 标记3,分频系数,1500M十分频150M;
  4. 标记4,选择PD,意味着该通道不输出,处于关闭状态;
  5. 标记5,DCLK输出频率,可在对应位置直接填入想要的数值。注意,最好是公倍数的整数分频后的值,不然,软件会自动产生一个和填入值最相近的数值;
  6. 标记6,SCLK输出端口,SCLK不能单独分频,7个通道只能统一进行分频;具体设置如图12:

图12

注意:在设定寄存器参数时,操作软件时,会在左下方窗口标记2处显示对应的寄存器以及数值,便于我们很迅速的在数据手册中查到该数值进行了哪些配置;

软件配置时,最终要的几个参数以及对应的寄存器如下:

  1. Doubler,对应相关寄存器0X162;
  2. R Divider,对应寄存器0X160、0X161;
  3. N Divider,对应寄存器0X168;
  4. VCO,对应寄存器0X138;
  5. DCLKoutX_DIV, 对应寄存器0X100、0X108、0X110、0X1180、0X120、0X128、0X130;
  6. SYSREF DIV,对应寄存器0X13A、0X13B;

注意;有些参数需要多个寄存器共同配合使用;另外的寄存器在软件配置过程中会生成,按照具体的设计要求进行软件操作配置,导出参数之后,在对应的寄存器中进行更改即可。

  • 运用结果

3、1时钟输出结果

在对LMK04821芯片进行正确配置之后,时钟能够正常输出想要的时钟频率,利用示波器进行测量,都能够直接观测到时钟有输出;程序中更改不同的分频系数,也能够在输出端得到相应的时钟输出。

3、2待解决问题

考虑到系统中要求时钟同源的问题,在对CLKin0参考输入时钟、DCLK、SCLK通过示波器进行起始相位对比观测,发现通过倍频分频后,时钟起始相位存在大概1/4个周期偏差,多次测试,每次都有细微的偏差。

其中,DCLK与SCLK如果输出频率相同时,相位差通过观察,有细微偏差,考虑到示波器使用过程中,探头不稳定原因,暂定相位偏差为0;后期有更好的测试方法时,再进行确认。

注:工程代码已经用于项目中,运行稳定,欢迎大家参与讨论,V 信:FD0427;谢谢!

代码链接:lmk04821_spi.v-硬件开发文档类资源-CSDN下载FPGA,LMK04821更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/FDL_AQ/75500747

JESD204B高速AD开发(一)基于FPGA的LMK04821时钟芯片设计相关推荐

  1. JESD204B高速AD开发(二)LMK04821时钟芯片配置代码详解

    一.驱动模块顶层 1.1 接口描述 如下图为LMK04821时钟芯片的配置模块输入输出信号,主要分为三部分, 图1 1.模块的系统时钟和复位信号,cfg_clk时钟频率<=10MHz,频率的设置 ...

  2. FPGA项目开发:基于FPGA的伪随机数发生器(附代码)

    FPGA项目开发:基于FPGA的伪随机数发生器(附代码) 今天是画师和各位大侠见面了,执笔绘画FPGA江湖,本人写了篇关于FPGA的伪随机数发生器学习笔记,这里分享给大家,仅供参考. 一.概念 随机数 ...

  3. 基于FPGA的数字时钟设计

    基于FPGA的数字时钟设计 芯片与开发板 技术指标 1.具有正常的日时分秒技术显示功能,用七个数码管分别显示日,时,分,秒. 2.有按键校日,校时,校分,校秒. 3.利用led模拟整点报时功能. 4. ...

  4. 基于FPGA的数字时钟(使用vivado)

    基于FPGA的数字时钟(使用vivado) 使用两个四位数码管,可以实现时钟分钟秒钟显示,高两位设置不显示. 换了一个新开发板,nexys4ddr,资料不多,最多使用的就是一本英文Reference ...

  5. 基于FPGA的跨时钟域信号处理——专用握手信号

    转自:http://bbs.ednchina.com/BLOG_ARTICLE_253787.HTM 在逻辑设计领域,只涉及单个时钟域的设计并不多.尤其对于一些复杂的应用,FPGA往往需要和多个时钟域 ...

  6. 基于FPGA的数字时钟的设计课设(HUAT)

    目录 前言 一.数字时钟课设目标 二.部分代码 1.clock.v代码的编写 2.完整代码 3.仿真代码 总结 前言 学校黄老师的FPGA的设计课设,最后的课设为数字时钟,实现分时的计数功能,带有整点 ...

  7. 基于FPGA的数字时钟显示(万年历lcd1602)

    一.  lcd1602a的驱动和配置 (1)  lcd1602a的管脚分配图,在程序中,我们需要对相应的管脚进行操作,才能使其正确显示 (2) 由于我使用的板子EP4CE6上的晶振是50MHZ,而lc ...

  8. 基于 FPGA 实现滑动显示、多功能数字时钟【设置年月日时分秒以及闹钟】

    目录 一.数码管原理 二.基础篇 2.1 原理及代码 2.2 验证结果 三.进阶篇 3.1 原理及代码 3.2 验证结果 四.数字时钟 4.1 原理及代码 4.2 验证结果 本文内容:基于 FPGA ...

  9. AD9361、AD9613高速AD采集处理开发案例,基于C6678+Kintex-7

    前言 本文主要介绍基于DSP+FPGA的高速AD采集处理案例,可满足软件无线电.雷达探测.定位导航.水下探测等领域的实际应用. 开发平台 评估板 基于TI TMS320C6678 DSP + Xili ...

最新文章

  1. Flutter开发之图片加载(九)
  2. 华为路由器RIP协议通信的配置
  3. C# WebProxy POST 或者 GET
  4. Enumeration和Iterator的区别
  5. mysql数据库连接失败,挑战大厂重燃激情!
  6. oracle打patch,Oracle初学者入门指南-How to get Oracle Patch?
  7. Code POJ - 1780(栈模拟dfs)
  8. ecmall ajax,ajax
  9. python办公实例100例-Python 100例(上)
  10. 删除U盘时提示无法停止‘通用卷’设备的解决方法
  11. OAF_OAF Framework页面分析(概念)
  12. c 中空格的asc码表_ascii码表由小到大空格字符
  13. 从网站建设看中外差异
  14. js贷款还款计算:等额本金、等额本息、先息后本、等本等息
  15. 发现一个识图比较厉害的网站
  16. Js isNaN()和Number.isNaN()、isFinite() 和 Number.isFinite()
  17. 【转载】跟我一起写 Makefile(一)
  18. 安利一波gif录制工具
  19. 田忌赛马(贪心算法)C++
  20. 傲游研发中心在京成立

热门文章

  1. vue用户头像地址为““时,用姓名首字母做头像
  2. 中英文职位对照之 会计与财务
  3. 计算机软件基础 自考,计算机软件基础自考本科.ppt
  4. ckplayer播放器的style.zip(干货)
  5. 织梦如何添html5播放器,织梦ckplayer视频播放器插件安装使用教程
  6. 福建农林大学计算机与信息学院宿舍,2021福建农林大学宿舍条件和新生宿舍图片及分配规则分享...
  7. MySQL8.0.22安装及配置(超详细)
  8. 产品经理不能做错的5件事
  9. WINPE WIN10 测试i9-9900k+2080TI\i9-9980XE+P5000\i7-8086k+titanX\E5-2678+128G跑分
  10. js 监听浏览器窗口大小变化