sync是同步还是非同步_高速AD项目学习笔记——实现sync同步的经验
作者:就业班学员黄同学
本文为明德扬原创文章,转载请注明出处!
以下是我在做高速AD项目的调试经验,现在分享出来,希望可以给大家提供一定的帮助。如果发现sync一直没有同步上,即一直为低,那么就需要检查同步条件,具体操作如下。
1、检查是时钟的正确性
1)需要使用示波器测量时钟的正确性,示波器设置如下
2)表笔设置,使用前需要自行校准表笔,校准方法这里不再赘述,不会的同学可以在网上搜索方法。
3)测量点
接着对参考时钟和同步时钟进行测量,这两个测量点都是AD9516给AD9144的时钟,给FPGA的时钟需要直接测量芯片引脚,比较危险,不建议测。主要测量有无输出和时钟频率是否正确。
AD9516的配置软件生成的寄存器值不一定正确,部分寄存器的值需要自行修改。之前就遇到过同步时钟的输出频率不对的问题,修改了AD9516的0x19B寄存器的值,问题得到解决。分频系数=M+N+2,其它寄存器的分频系数计算方式与此相同。
参考时钟在开发板上的位置如下:
同步时钟在开发板上的位置如下:
2、AD9144的寄存器正确设置
ACE软件生成出来的值基本是正确的,但是要注意一下几点:
1)正确设置DAC PLL,如下图所示,其中Ref_clk = 参考时钟;Fin = 这个时钟作用不清楚;FDAC = DAC每通道的实际工作频率,这个值包含插值。
注意:要点应用
2)正确设置采样率如下图所示,
因为乘法器输出的频率范围是6-12GHZ,所以DAC的工作频率要≥375MHZ,如果不够,可以通过增加插值的方式来提高频率,同时也可以不用PLL(此方法未测试)
AD9144对寄存器的配置顺序有要求,具体顺序可以阅读数据手册或者看明德扬潘老师的上位机代码。配置的顺序特别注意一个0X300的寄存器,这个寄存器第一次配置要设置为0,第二次配置设置为1
AD9144的要在AD9516配置完成之后等待一段时间才能开始配置,具体等待输出时钟稳定的时间可以看AD9516的数据手册,程序里面的延时是调出来的。AD9144的寄存器的配置速度不能太快,不然也会出现无法同步的现象,具体原因未知,程序里面的延时也是调出来的。
3、IP核设置
公式计算和IP核设置的F,S,K,Lane,等参数是由选择的DAC工作模式确定的,其他参数如SCR等,需要怎么设置在AD9144数据手册里面第50页(不同版本的数据手册页数可能会有偏差)开始有详细介绍。 IP核是高电平复位的,这里要注意:如果复位住了这几个会一直等于0,并且无法同步
4、AXI总线配置
具体配置方法参考明德扬潘老师的文档,经过一次简单的测试,这个可以不配置也能正常工作,具体没有详细测试。
5、时钟
IP核的tx_core_clk需要PLL产生一个合适的时钟并且经过BUFG给JESD204B IP核使用;Drp_clk动态调整时钟我这里没有用到,但是必须给一个时钟,并且要和IP核里面设置的频率相同;AXI时钟频率和IP核内设置的相同即可。
6、参数计算
参考明德扬潘老师的文档,特别注意是要 * 还是 。
举个例子:20MHZ正弦波,16个点组成一个正弦波,2通道,16bit,插值=2(使用DAC PLL的时候频率必须≥375MHZ,这例子速率不够所以要X2)。
1)有效传输:20MHZ*16个点*2通道*16bit=10.24Gbit;
2)实际经过8b/10b编码的速率是:10.24Gbit * 1.25=12.8Gbit这就是4条Lane总共要传输的速率;
3)单通道的DAC采样率(sample_clock):20MHZ*16个点=320MHZ(因为插值=2所以这个值填入ACE的时候要*2=640MHZ,计算的时候依旧使用320MHZ);
4)帧频率(frame_clock):sample_clock / S=320 / 1 = 320MHZ(S值由DAC模式决定);
5)字符频率(character_clock):frame_clock*F=320MHZ*1=320MHZ(F值由DAC模式决定);
6)Bit频率(bit_clock):character_clock*10=320MHZ*10=3.2Gbit;
7)多帧频率(multi_frame_clock):frame_clock / K=320MHZ / 32 =10MHZ(K由DAC模式决定);
8)同步时钟(sysref_clock):multi_frame_clock / R =5MHZ(R=2),AD9144数据手册规定,同步时钟的最大值是:fdata / (K * S) fdata是哪个没有细看;
9)设置时钟(device_clock):multi_frame_clock * D =80MHZ(D取8);
10)Ref_clk:每条Lane的速率/ 40 =3.2Gbit / 40 = 80MHZ;
11)device_clock要≥ref_clk,最好是等于;
12)实际上设置的频率是160MHZ主要是考虑到插值=2,实际上应该设为80MHZ也能工作(未测试)。
7、实现同步
经过上面的设置应该就能同步上了,具体表现为tx_sync信号持续为高电平
8、DAC输出波形
必须拉高DAC的输出使能引脚,不然会没有波形输出!!!
AD9144是电流型输出DAC,并且板子上使用变压器进行放大,所以,不能输出直流波形只能输出交变的波形,目前已经测试能输出正弦波。三角波 和 方波可能无法输出或者输出失真。
9、DAC的数据映射
用一个示例展示给大家。
2路DAC输出 4调lane
波形数据是:
30FB
5A81
7640
7FFF
7640
5A81
30FB
0
CF05
A57F
89C0
8001
89C0
A57F
CF05
0
输入到IP核的数据(tx_tdata)00057fc000cfa58900057fc000cfa589
00 05 7f c0
00 cf a5 89
00 05 7f c0
00 cf a5 89
第2路 DAC(顺序得看数据手册)
00 05 7f c0 lane 3
00 cf a5 89 lane 2
0x0000 0xcf05 0xa57f 0x89c0
第1路 DAC(顺序得看数据手册)
00 05 7f c0 lane 1
00 cf a5 89 lane 0
0x0000 0xcf05 0xa57f 0x89c0
以上就是高速AD项目中实现sync同步的小经验,不同情况遇到的问题有所不同,希望我的思路可以给大家带来帮助,同学们也可以在留言评论中与我进行讨论。
sync是同步还是非同步_高速AD项目学习笔记——实现sync同步的经验相关推荐
- 不逼自己一把都不知道自己还能这么优秀(小鹅通学习记录大批量队列同步)
不逼自己一把都不知道自己还能这么优秀-小鹅通学习记录大批量队列同步实战日志 前言 一.编程语言介绍 1.php是世界上最好的语言 2.第三方API对接的苦恼 3.为什么说好的项目进度表都是画饼 二.炫 ...
- 【初阶】unity3d官方案例_太空射击SpacingShooter 学习笔记 显示分数时,如何让函数之间相互交流...
[初阶]unity3d官方案例_太空射击SpacingShooter 学习笔记 显示分数时,如何让函数之间相互交流 一.关于 显示分数时,如何让函数之间相互交流 这是一个非常好的逻辑问题 1 思路:主 ...
- 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实战
系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...
- 多层高速PCB设计学习笔记(四)四层板实战(上)之常见模块要求
系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...
- ubuntu 安装Pangolin 过程_余辉亮的学习笔记的博客-CSDN博客_pangolin安装
ubuntu 安装Pangolin 过程_余辉亮的学习笔记的博客-CSDN博客_pangolin安装
- 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析
系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...
- 多层高速PCB设计学习笔记(五)四层板实战(下)之阻抗控制计算(SI9000)
系列文章目录 多层高速PCB设计学习(一)初探基本知识(附单层设计补充) 多层高速PCB设计学习笔记(二)基本设计原则及EMC分析 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实 ...
- 多人网络游戏服务器开发基础学习笔记 II: 帧同步 | 游戏客户端预测原理分析 | FPS 游戏状态同步
这篇是对书本 网络多人游戏架构与编程 的学习第二篇(第一篇:多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | ...
- 5G NR - RACH学习笔记2 - 上行同步/Timing Advance
UE在获取下行同步(PSS/SSS)后, 需要通过RACH过程(随机接入过程)接入到基站(gNodeB),这个时候基站由于尚未与UE达到上行同步,因此首先需要执行上行同步. 那么怎么达到上行同步? - ...
- goodnote笔记同步 Android,GoodNotes 5 for Mac(智能手写笔记软件) +iCloud同步
原标题:GoodNotes 5 for Mac(智能手写笔记软件) +iCloud同步 GoodNotes Mac版是 Mac 平台上的一款非常好用和实用的笔记软件.如果你在生活中有比较多的场景是需要 ...
最新文章
- c++中的vector的常见使用
- 1130 - Host ‘win7' is not allowed to connect to this mysql server
- 【原创】构建高性能ASP.NET站点 开篇
- 队列的顺序数组c语言代码,队列-队列的顺序表示和实现
- openlayer xyz加载_webGIS实践:3_1_openlayer展绘点线面注记
- or函数 java_Java OptionalInt orElseGet()用法及代码示例
- 简单又复杂的人工神经网络
- mysql拷贝文件安装_Mysql5.7.18的安装与主从复制图文详解
- 向Spark集群提交任务
- TestNG基础教程 - IntelliJ IDEA中配置TestNG.xml, 查看TestNG Report
- java编程思想之并发(线程之间的协作)
- 【电力电子】【2012.07】基于功率因数校正的三相整流器设计与仿真
- 测试自己移动速度的软件,Superspeed一键测速脚本 测试服务器到国内电信/联通/移动速度...
- 50 岁的程序员该何去何从?
- 网络笔记--交换机和路由器
- Mentor Graphics LP Wizard 软件使用----创建零件BGA封装库
- 收集一些可以发外链的网站
- 【bat】bat文件修改注册表
- 怎样重装系统(win7/)
- S7-200 PID指令功能