本文为明德扬原创文章,转载请注明出处!

一、背景

AD9144是一款支持jesd204b协议高速DAC芯片。AD9144-FMC-EBZ是基于AD9144的评估板(Evaluation Board),它是主要由AD9144,AD9516,与PIC16F单片机组成的系统。工程上使用AD9144具有时钟时序要求很高和寄存器配置复杂的难点。

配置AD9144-FMC-EBZ,有两种途径:

1、通过FPGA母板,经由FMC接口,使用SPI配置寄存器

2、通过ADI提供的软件工具,配合母板(ADS7)来配置寄存器,如图所示:

官方的指导说明链接:https://wiki.analog.com/resources/eval/dpg/ad9144-fmc-ebz

遇到问题:

我们在尝试第一种方法的时候,遇到了SPI寄存器写不进的情况和读写不一致的情况。

而第二种方法则需要ADS7用作母板。

二、调试

在明德扬潘老师的帮助下,完成了以KC705作为母板,正确配置AD9144,并输出62.5MHz正弦波。

整个流程需要先在KC705上运行提供的HDL工程,随后进入软件工具配置流程。这里的HDL工程主要完成的是:Jesd204发送端的配置与正弦余弦信号的输出。另外,这里的软件工具配置流程既使用ADI官方提供的工具对AD9144和AD9516分别进行配置。

在调试开始前,硬件链接如下图所示:

1、AD9516寄存器配置获得

AD9516的作用是对输入时钟分频,为AD9144分别提供:sysref(3.91M),和refclk(125M)。

这里使用了AD9516-Evaluation-Software完成配置。软件下载链接:

https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-ad9516-4.html#eb-relatedsoftware

在安装结束后,打开软件并选择正确的型号,这里选AD9516-1

分别按下图所示进行配置:输入时钟(来自KC705)设置为2500;分频系数如图设置:最后得到两组频率为120M和3.9063M的时钟;点击左下角的橙色框(RGISTER W/R)中的WRITE。

点击“file”,点击“Save Setup”,导出“stp”文件,如下图所示。

打开导出的.stp文件,如图:这个文件记录了寄存器地址与对应的值,将于后续步骤导入。

2、AD9144&AD9516寄存器配置:

A、首先到AD公司官网搜索DAC Software Suite和Analysis Control Evaluation软件,下载并安装;

B、打开已经安装好的ACE软件,界面如下图所示。在硬件连接正确的情况下,图中红圈会检测到所连接的硬件板卡,点击图中绿圈的LED状按钮,AD9144-FMC-EBZ板卡上的蓝色LED灯会随之闪烁,说明连接成功。

C、双击打开“AD9144-FMC-EBZ”板卡。在“initial configuration”界面中按如图所示进行设置,点击“summary”并“apply”,双击右侧红色图框中的AD9144芯片。

D、在打开的界面中按图中配置设置DAC calibration,选择“DAC3 DAC2”并点击“calibrate”。

E、点击上图右下角的“Proceed to memory map”,按照项目所需配置好AD9144相关的寄存器表的值,点击右上apply selected将对应的寄存器值写入AD9144芯片。

F、在电脑开始菜单>Analog Devices寻找“AD9144&AD9135&AD9136 SPI”并打开,软件界面如图所示:

G、在上方框中点击“read all registers”,然后点击“save registers to file”得到“.csv”文件,右键将其用记事本打开,如图所示,找到AD9516芯片开头的寄存器区域,将之前通过AD9516 Evaluation Software得到的stp文件中的寄存器值添加进.csv文件中并保存。

如图所示,第一列是AD9144/AD9516的芯片,第二列是对应芯片的寄存器地址,第三列是寄存器对应的值,将AD9516所有寄存器的值添加进来并保存。

H、打开“AD9144&AD9135&AD9136 SPI”软件并选择“restore registers from file”,将上一步中修改保存好的.csv文件导入。

I、将vivado中的工程bit流文件烧录到板子上,通过ila抓取并观察tx_sync信号,发现信号持续拉高,返回AD9144&AD9135&AD9136 SPI软件read all registers,观察如图区域,如果图中所示四个寄存器值都为0F,vivado tx_sync持续拉高,并且txdata有数值输出,则说明AD9144与JESD204B同步成功,此时用示波器测量AD9144板卡输出可观测到波形输出。


三、调试过程中遭遇问题

1.SPI配置失败问题?

2.AXI-Lite的参数设置?

通过在Analysis Control Evaluation软件中读取AD9144寄存器表值,查询0x453-0x45A寄存器值,得到关键参数L,SCR,F,K,M,N,N’,S,CF,HD等的值。

通过文档PG066 P27-P28中所示的值,计算出AXI协议所需要的每个寄存器地址的值。填入到vivado工程模块中的AXI协议部分。


Vivado工程中的AXI协议部分:地址填入PG066 P27-P28中的寄存器地址,值填入更据关键参数算出来的值。

以上就是AD9144的调试心得分享,持续关注明德扬可了解更多,也可加入明德扬QQ群进行深入讨论。

支持jesd204b协议高速DAC芯片AD9144-FMC-EBZ配置笔记相关推荐

  1. 数字插值滤波与数字正交上变频的仿真与实验----基于高速DAC芯片

    基于ADI公司的AD9144高速DAC芯片原理,可以对数字基带信号进行插值滤波然后使用NCO(numberically controlled oscillator)进行正交上变频. 关于ADC的可以参 ...

  2. 数字正交下变频与数字滤波抽取的仿真与实验----基于高速ADC芯片

    本篇内容的姊妹篇为:[1]数字插值滤波与数字正交上变频的仿真与实验----基于高速DAC芯片 关于正交变频的框图可以参考:[2]通信应用中数字上变频DUC与数字下变频DDC详细原理(带图) 本文的高速 ...

  3. 【转】借助第三方支持https协议的存储实现自己网站上扫描二维码安装IOS APP

    使用plist安装,一般是企业级开发者账号不需要登录到APP STORE的IOS设备应用发布时所用到的技巧. 准备: *一台运行着OSX的苹果电脑,最新版的XCODE,用于导出ipa和plist 一个 ...

  4. STM32管脚模拟协议驱动双路16位DAC芯片TM8211

    STM32管脚模拟协议驱动双路16位DAC芯片TM8211 TM8211是一款国产的低成本双路16位DAC驱动芯片,可以应用于普通数模转换领域及音频转换领域等.这里介绍STM32 HAL库驱动TM82 ...

  5. dac生成信号频率取决于_基于DAC芯片的信号源生成系统的制作方法

    本发明涉及干扰机技术领域,特别是基于DAC芯片的信号源生成系统. 背景技术: 随着现在通信技术的高速发展,对于装备的小型化.集成化.成本控制要求越来越高,如何设计出低成本.高集成度.小型化的装备是现阶 ...

  6. 基于 JESD204B 协议ARM+FPGA+AD多板卡多通道同步采集实现方法

    0 引言 随着数字化信号处理技术的不断进步,对数字信号 的处理已经成为当前大多数工程应用的基本方法.由于 模拟信号才是现实生活中的原始信号,为了工程研究实 现的可能,需将模拟信号转换为数字信号才能在工 ...

  7. 高速数据采集卡之FMC子板丨FMC接口AD/DA子卡丨坤驰科技

    FMC子板因为其多样性,灵活性及得到日益广泛的使用.坤驰科技做为高速数据采集产品和FMC子板的设计者,近几年发布了多多款FMC子板产品,它们包含高速AD板和高速DA板及混合AD/DA板.它们的电气与机 ...

  8. 【嵌入式硬件芯片开发笔记】4-20mA DAC芯片AD5421配置流程

    [嵌入式硬件芯片开发笔记]4-20mA DAC芯片AD5421配置流程 16位.串行输入.环路供电.4 mA至20 mA DAC 可用于HART协议相关电路 同AD5700配合使用 AD5421的SP ...

  9. 基于TM8211的DAC芯片的学习

    一.什么是DAC芯片 (1)DAC是数字模拟转换器(英语:Digital to analog converter,英文缩写:DAC).DAC就是把数字音频信号转换成模拟音频信号的芯片. (2)DAC的 ...

最新文章

  1. 钉钉被小学生逼疯,拍片在线求饶哈哈哈哈
  2. 一文解读苹果 M1 芯片电脑上的开源软件
  3. 使用Jquery获取thymeleaf中checkbox的值
  4. Flutter进度条Flutter圆形进度条Flutter条形进度条Flutter Progress进度条LinearProgressIndicator
  5. CSS cursor 和 opacity 属性
  6. find命令过滤 no such_Linux中find命令的用法入门
  7. 电机扭矩计算公式T=9550*P/n
  8. Python 与金融科技6|上证50的收盘价汇总
  9. 259-数据明文传输的安全问题
  10. 大学计算机实验基础第二版,大学计算机基础实验指导(第2版)
  11. 使用Dhtml和poi导出excle表格出现Error Type:LoadXMl Incorrect Json错误
  12. 子之错父之过什么意思_子不教父之过?
  13. 矩阵中的旋转(Rotation)
  14. 三张图解释静态NAT、动态NAT、PAT
  15. 啊哈添柴挑战Java1008. 输入两个整数,倒序输出
  16. 使用四种框架分别实现百万websocket常连接的服务器{转}
  17. 情感分析实战(中文)-共现语义篇
  18. M1芯片的MacBook安装docker
  19. MATLAB与Simulink介绍(附上完整联合仿真源码)
  20. Java程序中使用Spire Jar包报java.lang.NoSuchMethodError类型错误的解决方法

热门文章

  1. 共享打印机的几种方法
  2. TCP/IP分为哪几层
  3. oracle ogg端口,OGG报错 OGG-01223
  4. 测试时代(www.testage.net)。。。无语
  5. Linux下实现文件实时同步(rsync命令+rsync作为服务+xinetd托管rsync)
  6. windows下php swoole扩展,PHP安装Swoole Loader扩展教程,适用于Windows和Linux
  7. linux安装文件多大空间,你的Linux系统上安装了多少内存?又使用了多少?
  8. 32位系统与64位系统各数据类型所占空间大小
  9. get,set方法的理解
  10. PyTorch GPU 利用率低?常见原因分析及优化