0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于JESD204B的LMK04821芯片项目详解

电子工程师 来源:FPGA技术江湖 作者:FPGA技术江湖 2021-04-04 17:08 次阅读

大侠好,阿Q来也,今天是第二次和各位见面,请各位大侠多多关照。今天给各位大侠带来一篇项目开发经验分享“基于JESD204B的LMK04821芯片项目开发”第二篇,这是本人实打实的项目开发经验,希望可以给有需要的大侠提供一些参考学习作用。

以后机会多多,慢慢分享一些项目开发以及学习方面的内容,欢迎各位大侠一起切磋交流。

204B实战应用-LMK04821代码详解(二)

一、 SPI协议

通过阅读LMK04821数据手册,我们可以从中知道,可以通过SPI协议对LMK04821进行寄存器的配置工作,进而实现我们设计所需要的功能。

SPI协议部分,咱们可以用3线,或者4线,在本次设计中,使用3线。关于SPI的时序部分,这儿就不再赘述,手册里面都有详细的描述。

221bc45a-8c66-11eb-8b86-12bb97331649.png

图1

二、 SPI寄存器配置模块设计

22e60418-8c66-11eb-8b86-12bb97331649.png

图2

如图2所示,就是配置LMK04821存器的单元,信号定义如下:

1、cfg_clk:系统时钟

2、cfg_rst:系统复位;

3、通过VIO控制的信号,这组信号存在的目的在于方便检测自己配置寄存器的正确性。

vio_cfg_en:配置寄存器使能信号;

vio_cfg_wr:配置寄存器读写使能,0写1读;

vio_cfg_addr:配置的寄存器地址;

vio_cfg_wdata:寄存器中配置的值;

addr_118_data:预留信号,模块中没有用;

我们在配置LMK04821寄存器时,要验证配置寄存器操作是否正确,就要有写有读,在对应的寄存器内写入对应的数值,然后进行读操作,观察正确性。本次设计是在vivado环境下进行设计,通过添加VIO的IP核,来控制读写操作。同时,添加ILA配合VIO来进行读写数据操作的观测。别的开发环境下思路一样。

该组信号仅在回读寄存器时使用,目的是为了验证寄存器读写正确性。

230f8c70-8c66-11eb-8b86-12bb97331649.png

图3

4、lmk_rst:LMK04821复位信号,用于复位LMK04821,直接和LMK04821芯片相连;

5、3线制SPI信号:

lmk_spi_csn:片选;

lmk_spi_sdio:数据;

lmk_spi_clk:时钟;

6、可编程管教:主要和LMK04821内部的PLL相关,本次设计中默认为0;

lmk_clk_sel0 :sel0;

lmk_clk_sel1 :sel1;

三、 SPI数据buffer定义

在本次设计中,SPI配置数据buffer,data_reg为24bit,r_w占1bit,箭头1所指包含W1、W2以及地址位占13bit,具体见SPI时序图;箭头2所指数据位8bit。

236a2c3e-8c66-11eb-8b86-12bb97331649.png

图4

根据图5我们可以知道,要配置LMK04821我们需要配置126个寄存器,这126个寄存器来源参见第一章实战记录。

其中,126个寄存器包含必须要配的寄存器、一些无关紧要的寄存器、以及功能实现所需要的寄存器等,有些寄存器需要配置多次。

23a8522a-8c66-11eb-8b86-12bb97331649.png

图5

四、 SPI时序实现

设计中,我们需要按照顺序配置126个寄存器,也就是说SPI要执行126次。因此,在代码实现过程中,注意寄存器配置的顺序,并且保证每个寄存器都准确无误的配置完成,才能进行下一个寄存器的配置。如果在设计中,要求LMK004821实现不同的功能,当配置的寄存器个数不一致时,在v文件中更改图6所示的参数即可。

23eccebe-8c66-11eb-8b86-12bb97331649.png

图6

下一篇,将详细介绍jesd_204B IP核应用的相关知识,各位大侠,尽请关注。

原文标题:FPGA项目开发:204B实战应用-LMK04821代码详解(二)

文章出处:【微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21328

    浏览量

    593275
  • 芯片
    +关注

    关注

    447

    文章

    47821

    浏览量

    409207
收藏 人收藏

    评论

    相关推荐

    抓住JESD204B接口功能的关键问题

    JESD204B是最近批准的JEDEC标准,用于转换器与数字处理器件之间的串行数据接口。它是第三代标准,解决了先前版本的一些缺陷。该接口的优势包括:数据接口路由所需电路板空间更少,建立与保持时序要求
    的头像 发表于 03-26 08:22 349次阅读
    抓住<b class='flag-5'>JESD204B</b>接口功能的关键问题

    JESD204B的常见疑问解答

    问:什么是8b/10b编码,为什么JESD204B接口需使用这种编码? 答:无法确保差分通道上的直流平衡信号不受随机非编码串行数据干扰,因为很有可能会传输大量相反的1或0数据。通过串行链路传输
    发表于 01-03 06:35

    AD9683的引脚如何与zynq 7015芯片中的JESD204 ip核端口对应相连?

    芯片JESD204B协议对应的引脚(SYSREF、SYNCINB和SERDOUT)与ZYNQ7015芯片中的JESD204 IP核的端口对应相连。
    发表于 12-15 07:14

    ad9680 JESD204B接口rx_sync信号同步和失锁周期性出现怎么解决?

    使用AD9680时遇到一个问题,AD9680采样率为1Gsps,JESD204B IP核的GTX参考时钟为250MHz,参数L=4,F=2,K=32,线速率为10Gbps,使用的为SYSREF
    发表于 12-12 08:03

    使用JESD204B连接AD9164时,CGS过程无法完成是什么原因导致?

    我使用的是KC705板卡,调用了里面JESD204B的IP核,使用模式为interpolation值为4,4条链路,DAC频率为2.5GHZ,通道速度为6.25GHZ,出现的问题是: 帧同步过程
    发表于 12-12 07:28

    AD9690配置在JESD204B sublcass 0模式下,AD9690的SYSREF±输入管脚怎么处理?

    用单片AD9690采集数据给FPGA,不要求确定延迟,因此想要把AD9690配置在JESD204B sublcass 0 模式下。但是这种模式下,对于AD9690的SYSREF±的输入管脚怎么处理?以及AD9690工作在subclass 0 模式下还有没有其他要注意的地方?
    发表于 12-12 06:16

    AD9136的JESD204B链路无法建立是怎么回事?

    使用内部PLL,输入参考频率为100MHz。在采样率时钟设置为1GHz时,DAC的JESD204B链路能建立,但是当频率改为1.5GHz时,SYNC一直为低。其他相关寄存器都已经修改,serdes
    发表于 12-05 08:17

    使用AD9163的时候遇到JESD204B的SYNC信号周期性拉低如何解决?

    我在使用AD9163的时候遇到JESD204B的SYNC信号周期性拉低。通过读寄存器值如图,发现REG470和REG471都为0xFF,而REG472始终为0.不知有谁知道是什么原因?该如何解
    发表于 12-04 07:30

    AD9164 JESD204B接口的传输层是如何对I/Q数据进行映射的?

    AD9164 JESD204B接口的传输层是如何对I/Q数据进行映射的
    发表于 12-04 07:27

    JESD204B规范的传输层介绍

    电子发烧友网站提供《JESD204B规范的传输层介绍.pdf》资料免费下载
    发表于 11-28 10:43 0次下载
    <b class='flag-5'>JESD204B</b>规范的传输层介绍

    204B实战应用-LMK04821代码详解

    通过阅读LMK04821数据手册,我们可以从中知道,可以通过SPI协议对LMK04821进行寄存器的配置工作,进而实现我们设计所需要的功能。
    的头像 发表于 11-07 17:40 820次阅读
    <b class='flag-5'>204</b>B实战应用-<b class='flag-5'>LMK04821</b>代码<b class='flag-5'>详解</b>

    AD9207: 12-Bit, 6 GSPS, JESD204B/JESD204C Dual ADC Data Sheet AD9207: 12-Bit, 6 GSPS, JESD204B/JESD204C Dual ADC Data Sheet

    电子发烧友网为你提供ADI(ADI)AD9207: 12-Bit, 6 GSPS, JESD204B/JESD204C Dual ADC Data Sheet相关产品参数、数据手册,更有AD9207
    发表于 10-16 19:02
    AD9207: 12-Bit, 6 GSPS, <b class='flag-5'>JESD204B</b>/<b class='flag-5'>JESD204</b>C Dual ADC Data Sheet AD9207: 12-Bit, 6 GSPS, <b class='flag-5'>JESD204B</b>/<b class='flag-5'>JESD204</b>C Dual ADC Data Sheet

    JESD204B链路中断时的基本调试技巧

    本文旨在提供发生 JESD204B 链路中断情况下的调试技巧简介
    的头像 发表于 07-10 16:32 993次阅读
    <b class='flag-5'>JESD204B</b>链路中断时的基本调试技巧

    JESD204B是FPGA中的新流行语吗

    JESD204B规范是JEDEC标准发布的较新版本,适用于数据转换器和逻辑器件。如果您正在使用FPGA进行高速数据采集设计,您会听到新的流行词“JESD204B”。与LVDS和CMOS接口相比,这一较新的版本具有显著的优势,因为它包括更简单的布局和更少的引脚数。
    的头像 发表于 05-26 14:49 389次阅读
    <b class='flag-5'>JESD204B</b>是FPGA中的新流行语吗

    JED204B是什么?JESD204B的分类及优缺点介绍

    大部分的ADC和DAC都支持子类1,JESD204B标准协议中子类1包括:传输层,链路层,物理层。在少部分资料中也会介绍含有应用层,应用层是对JESD204B进行配置的接口,在标准协议中是不含此层,只是为了便于理解,添加的一个层。
    发表于 05-10 15:52 1626次阅读
    JED<b class='flag-5'>204</b>B是什么?<b class='flag-5'>JESD204B</b>的分类及优缺点介绍