2603|13

9691

帖子

21

资源

版主

成功使用ZYNQ驱动LTC2325-16 [复制链接]

 

                  这些天一直在弄ZYNQ(矿板)驱动LTC2325-16 ADC,感觉FPGA太难了,对于我这样的新手它不像单片机那样可以“轻松”使用试错的方法通过不断修改代码来完成想要的功能,这样做真的是太太太太费时间了。这些天基本上都是在听CPU风扇呼呼的响,电费多了、睡眠少了、头发也掉了不少,不过经过这几天的学习遇到很多编译错误倒是都能轻松解决了。

                  LTC2325-16是一个4通道165MSPSADC,支持串行LVDS输出,时序看起来并不复杂。板子是我自己画的自己焊的,之前因为使用了劣质的1117烧过电源芯片,所以我不确定它是不是好的。矿板的差分对不是成对出现的和LTC2325-16连接需要通过排线转换,一旦有问题,哪哪都可能有问题。

image-20201220132829-1.png

                  开始感觉很轻松就能读到ADC数据,但是不稳定,经常有错误的数据,后来经过几天的调试发现原来是一对LVDS时钟线的其中一条没压接好,LTC2325-16能读到时钟,只是经常出错,因为时钟是100MHz的,手里的示波器才100MHz的带宽,看数据也比较困难,刚开始测量发现时钟的n线没有输出还以为是FPGA没配置好,因为对FPGA不熟悉总怀疑代码没写好,各种改代码最后才发现是数据线断了。

                  数据线接好以后读到的数据好了那么一点,不过还是不正常,后边这些天基本一起在弄LTC2325-16的时序,时序看起来比较简单(是我想简单了),我没有使用官方提供的verilog,因为那个代码是altera的,有一些和芯片相关的代码所以才自己写。

                  因为没法测量FPGA实际输出的时序,不确定自己写的看起来非常完美的波形到底哪里不对,后来没办法了,只好使用官方提供的代码,研究它关于altera相关的部分,主要是一个时钟PLL的代码,一个110MHz输入,255MHz2110MHz,一个220MHz,一个5MHz输出,5MHz还有55MHz110MHz都有一路做了相位偏移。昨天开始弄的,理解完了觉得没问题了发现用ZYNQ弄不出来,原因是vivado里的clock wizard没法配置输出5MHz 相移1.624%占空比的时钟,占空比基本不能小于40%

                  后来经过不断测试,发现如果输入是10MHz输出也是10MHz时配置可以很灵活,只要把相称和占空比乘2,然后再写一个代码,把10MHz输出的时钟的奇数电平设置成0,功能终于可以实现了。最后的时钟树像下边这样。

 

image-20201220132829-2.png

                  时钟的问题解决了,剩下就是改改代码,把数据通过AXI-FULL发送到PS端,ADC的设置使用AXI-LITE通过PS配置,改好以后测试了一下数据,还是比较满意的。

                  因为还没有实现PS端到PC的数据发送,电脑的波形显示是通过JTAG实现的,Xilinx SDK可以XSCT输出内存数据,通过mrd加地址和长度就可以把数据输出到窗口。

image-20201220132829-3.png

复制输出的数据,通过EXCEL整理,然后再把十六进制转成十进制就能看到波形。开始我是这么做的,后来发现比较麻烦,就用上位机接收粘贴的数据通过代码进行整理,这样能方便很多,基本上是输出、复制、粘贴就能看到波形。再后来发现复制也比较麻烦,因为数据很长,要从头复制到结尾。最后使用mrd -bin -file D:/ mem.bin 0x100 1000,把内存数据输出到文件,上位机点一个按钮然后自动在这个文件里读出ADC数据,这样就能方便一些了。

                  因为手里一直没有信号发生器,只能简单看一下采集的数据噪声大不大,前两天买了一台还没到,等设备到了再继续弄。

 

 

image.png

此帖出自FPGA/CPLD论坛
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

4

帖子

0

资源

一粒金砂(初级)

本帖最后由 d1023 于 2020-12-21 08:45 编辑

好巧, 我正要请人帮忙做 ZYNQ驱动LTC2325-16, 就在Google搜索到这个帖子了

 

请问如何联系, 是否可以尝试交流一下, 我在深圳

点评

你好,我是FPGA新手,应该满足不了你的要求 LTC2325-16官方提供了CPLD的verilog代码 你找个开发FPGA的把它移到ZYNQ上就可以 对于成手来说应该很容易  详情 回复 发表于 2020-12-21 10:57

回复

9691

帖子

21

资源

版主

d1023 发表于 2020-12-20 22:54 好巧, 我正要请人帮忙做 ZYNQ驱动LTC2325-16, 就在Google搜索到这个帖子了   请问如何联系 ...

你好,我是FPGA新手,应该满足不了你的要求

LTC2325-16官方提供了CPLD的verilog代码

DC2395A_CPLD_Source_Code.zip (256.59 KB, 下载次数: 30)

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

4

帖子

0

资源

一粒金砂(初级)

littleshrimp 发表于 2020-12-21 10:57 你好,我是FPGA新手,应该满足不了你的要求 LTC2325-16官方提供了CPLD的verilog代码 你找个开 ...

谢谢


回复

1

帖子

0

资源

一粒金砂(初级)

方便发一下完整的block design截图吗

点评

我建了2个 BD,一个是LTC2325-16的。 [attachimg]589655[/attachimg]  另一个是ZYNQ,因为是第一次弄FPGA,这个东西写的还有很多不是很合理的地方,AXI和网络部分都参考或使用了黑金的相应工程。[attachi  详情 回复 发表于 2022-2-24 09:53

回复

9691

帖子

21

资源

版主

奔向太平洋 发表于 2022-2-22 23:34 方便发一下完整的block design截图吗

我建了2个 BD,一个是LTC2325-16的。

image.png

 另一个是ZYNQ,因为是第一次弄FPGA,这个东西写的还有很多不是很合理的地方,AXI和网络部分都参考或使用了黑金的相应工程。 image.png  

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

614

帖子

0

资源

纯净的硅(中级)

问下楼主,这个ADC要自已建库,还是在EDA里调用? 我也正在学FPGA, 所以学习下.


回复

9691

帖子

21

资源

版主

Fred_1977 发表于 2022-2-24 14:06 问下楼主,这个ADC要自已建库,还是在EDA里调用? 我也正在学FPGA, 所以学习下.

image.png  

 

https://www.analog.com/cn/design-center/packaging-quality-symbols-footprints/symbols-and-footprints/LTC2325-16.html

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

3

帖子

0

资源

一粒金砂(中级)

博主您好 能发一下原理图看一下么 ?打扰您了

点评

原理图我参考的官方评估板,拆掉CPLD和ADC驱动器  详情 回复 发表于 2022-3-26 23:48

回复

9691

帖子

21

资源

版主

33566 发表于 2022-3-26 21:28 博主您好 能发一下原理图看一下么 ?打扰您了

原理图我参考的官方评估板,拆掉CPLD和ADC驱动器


回复

3

帖子

0

资源

一粒金砂(中级)

littleshrimp 发表于 2022-3-26 23:48 原理图我参考的官方评估板,拆掉CPLD和ADC驱动器

博主您好!我有个问题想咨询您一下,就是LTC2325-16 CLKOUT引脚,这个引脚的信号 参考书上说 是SCK信号的一个延迟,那么这个信号是怎么产生的呢? 我可以理解为 产生SCK以后 ADC芯片会自动延迟一段时间 然后在CLKOUT引脚 输出给FPGA么?  打扰您了

点评

我理解的CLKOUT是为了方便在DDR模式下读取数据用的。SDR模式下如果上升沿更新数据可以在下降沿读取,DDR上升和下降沿都更新数据就需要有一个延迟,在数据稳定时读取数据。  详情 回复 发表于 2022-3-28 11:34

回复

9691

帖子

21

资源

版主

33566 发表于 2022-3-28 11:14 博主您好!我有个问题想咨询您一下,就是LTC2325-16 CLKOUT引脚,这个引脚的信号 参考书上说 是SCK信号的 ...

我理解的CLKOUT是为了方便在DDR模式下读取数据用的。SDR模式下如果上升沿更新数据可以在下降沿读取,DDR上升和下降沿都更新数据就需要有一个延迟,在数据稳定时读取数据。


回复

3

帖子

0

资源

一粒金砂(中级)

littleshrimp 发表于 2022-3-28 11:34 我理解的CLKOUT是为了方便在DDR模式下读取数据用的。SDR模式下如果上升沿更新数据可以在下降沿读取,DDR ...

在进行编程时CLKOUT属于input 输入信号,那么这个信号是怎么产生的呢?那我们在编程时该怎么配置这个引脚呢?还是说这个引脚上的信号是LTC2325芯片自动产生的,只需要把他交给FPGA就行了   感谢博主的回答,我的水平比较菜 麻烦博主了

点评

CLKOUT是ADC输出给FPGA用来读取数据用的时钟,FPGA把它作为输入时钟来读数据就可以。 官方提供的例程里好像没有使用这个时钟,对应的时钟是FPGA自己生成的,所以它可以悬空不管。  详情 回复 发表于 2022-3-28 16:32

回复

9691

帖子

21

资源

版主

33566 发表于 2022-3-28 15:58 在进行编程时CLKOUT属于input 输入信号,那么这个信号是怎么产生的呢?那我们在编程时该怎么配置这个引脚 ...

CLKOUT是ADC输出给FPGA用来读取数据用的时钟,FPGA把它作为输入时钟来读数据就可以。

官方提供的例程里好像没有使用这个时钟,对应的时钟是FPGA自己生成的,所以它可以悬空不管。

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表