FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战

这篇具有很好参考价值的文章主要介绍了FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​ 注:扫码关注小青菜哥哥的weixin公众号,免费获得更多优质的核探测器与电子学资讯~

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

本篇小青菜哥哥继续以ADI公司的16通道高速ADC—AD9249为实例,向大家演示FPGA是如何通过SPI接口向该ADC读写寄存器配置数据的。如下图所示为AD9249的功能框图,其为16通道、65MSPS、14bit精度的多通道高速ADC,且其SPI接口只为三线模式:

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

该ADC的SPI配置完全可以用上篇介绍的AD9639的配置方式完成。但本篇实现的方式由于采用的是kintex7系列的FPGA,且操作软件为vivado,因此小青菜哥哥在verilog代码实现上简化了很多,更容易让大家理解!

如下图所示为小青菜哥哥设计的80通道的FPGA数据采集系统,采用5片AD9249+kintex7 FPGA+网络+光纤传输的方式,本篇的SPI读写将以其中的一片ADC芯片为例,代码为verilog,vivado版本为2017.4。

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

该款ADC和ADI公司其他ADC的SPI配置方式相同,其数据传输的结构如下图所示:

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

每次事件传输24bit数据,MSB为读/写控制位,接下来2bit为一次传输数据的大小,一般写0即可,A12-A0为地址位,D7-D0为数据位。

当FPGA向ADC读写配置数据时,就需要完成上图的时序功能,每配置一个寄存器,就执行上图的逻辑功能一次,如果是配置多个寄存器,则反复执行上述逻辑即可。

本次的3线配置逻辑的顶层逻辑接口如下图所示:

这里需要注意的是,配置接口中多了一个Tri_en信号,该信号即为三态口控制信号,三态口的定义如下图所示:

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

本例程同样实现了3个寄存器的写和读,如下图所示:

当然,配置个数可以任意改动,只要改变Wr_n这个写参数和Rd_n读参数个数即可。RdData1~3为存储读到的3个寄存器的值,方便ILA逻辑分析仪观察。

具体的3线SPI读写过程,咱们在上一篇的AD9639已经说过了,本篇再次介绍ADI的AD9249配置,代码实现上的主要区别在于哪呢?就是在循环读写上!

如下如所示,上边为ise14.7实现的方式,下边为vivado实现的方式,可以看到,同样写入3个寄存器数据,显然vivado实现起来更加方便,便于扩展,改变n值即可。小青菜哥哥一直不明白为何右边的这种数组循环写法不能在ise14.7上运行,按理说verilog2001标准,ise和vivado都支持才对,如果有读者知道原因,请告诉小青菜哥哥一声~

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

同样的,在读寄存器数据阶段,循环代码也可以简化,简化前后如下图所示:

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

最后,在移位取数阶段,同样可以简化,简化前后如下图所示:

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

这样3线SPI的配置过程完成后。用上面介绍的代码在vivado2017.4上运行,并下载到电路板上,咱们观察的ILA逻辑分析仪吧!

如下图所示为分别读写3个寄存器的时序图,可以看到最终咱们读到的寄存器值分别为8’h92、8’h04、8’h42,与预期值完全一致,配置成功!

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

咱们再看看逻辑实现的写过程的具体时序图吧,下图所示为写WrtieReg2的实际时序,写入的数据为8’h04:

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

咱们再看读该寄存器(RdData3)的时序图,如下图所示:可以看到读到的数据为8’h42,和WrtieReg3写入的数据一致,OK!在vivado中,这里可以加入sdin,正如上篇所说,sdin和sdout其实都是SDIO信号,从时序图可以看出来:

FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战,FPGA配置高速ADC,笔记

AD9249的3线SPI实际操作就这样完成了,本篇的说明比较少,小青菜哥哥主要是想向大家演示,前两篇ise14.7平台实现的AD9639配置的代码,在vivado平台下其实可以更加简化,使用起来更加方便。

至于为什么同一段代码在vivado下可行,ise却不行,小青菜哥哥估计vivado支持的verilog标准更高一些吧,能够支持二维数组例化,毕竟对于二维数组操作来说,多年前的verilog是不支持例化的。

从下一篇开始,小青菜哥哥将以德州仪器(TI)的ADC芯片为例,介绍其FPGA的SPI配置方式~

今天的博文就到这里了,有问题请在小青菜哥哥的公众号留言,谢谢!文章来源地址https://www.toymoban.com/news/detail-822539.html

到了这里,关于FPGA配置高速ADC篇(8)_AD9249三线SPI配置实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 MCO+SPI获取24位模数转换(24bit ADC)高速芯片ADS1271采样数据

    STM32大部分芯片只有12位的ADC采样性能,如果要实现更高精度的模数转换如24位ADC采样,则需要连接外部ADC实现。ADS1271是 TI公司一款高速24位Σ-Δ型模数转换器(ADC) ,数据率达到105K SPS, 即一秒可以采样105000次。 这里介绍基于ADS1271的24位ADC采样实现。采用STM32CUBEIDE开发工具,以S

    2024年02月16日
    浏览(29)
  • STM32-SPI1控制AD7705(Sigma-Delta-ADC芯片)

    该芯片需要晶振(Y2)和参考电源电压(U3) AD7705与国产TM7705型号差不多,也就是可以参考国产的手册。 AD7705利用 Σ-Δ 转换技术实现了 16 位无丢失代码性能。选定的输入信号被送到一个基于模拟调制器的增益可编程专用前端。片内数字滤波器处理调制器的输出信号。通过片

    2024年02月19日
    浏览(31)
  • FPGA高速A/D数据采集(AD9226)

    FPGA驱动AD9226采集模拟信号并读取转换结果至寄存器。 文章目录 前言 一、AD9226时序图 二、 具体思路 1. 需求分析 2. 代码示例 总结 AD9226是一种流水线形式的单通道ADC模数转换器。它支持12位宽、65MHz的采样精度和速度。 FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的

    2024年02月16日
    浏览(39)
  • FPGA模块——AD高速转换模块(并行输出转换的数据)

    AD9280/3PA9280芯片的引脚功能: 工作电压2.7到5.5v 数据对应: AD9280 支持输入的模拟电压范围是 0V 至 2V,0V 对应输出的数字信号为 0,2V 对应输出的数字信号为 255。而 AD9708 经外部电路后,输出的电压范围是-5V到+5V,因此在 AD9280 的模拟输入端增加电压衰减电路,使-5V到+5V 之间的

    2024年02月04日
    浏览(38)
  • STM32模拟SPI协议获取24位模数转换(24bit ADC)芯片AD7791电压采样数据

    STM32大部分芯片只有12位的ADC采样性能,如果要实现更高精度的模数转换如24位ADC采样,则需要连接外部ADC实现。AD7791是亚德诺(ADI)半导体一款用于低功耗、24位Σ-Δ型模数转换器(ADC) ,适合低频测量应用,提供50 Hz/60 Hz同步抑制。 这里介绍基于AD7791的24位ADC采样实现。 AD7791的管脚

    2024年02月09日
    浏览(47)
  • FPGA对高速采集ADC(8路并行数据)进行峰值检测,并记录峰值位置

              本模块主要是ADC(2Gsps)采集信号波形进行峰值检测,主要是检测单音信号或者脉冲信号中的所有峰峰值信号(对噪声大信号适用性不是很好),并记录峰值点的位置。         1. 峰值检测8路并行数据端口 2.连续3点检测峰值,被例化8次,                

    2024年02月16日
    浏览(54)
  • 半导体运动台基于dsp+fpga+ad+endac的高速数据采集FPGA设计(二)

    4 系统 FPGA 程序的设计 4.1 设计方法及逻辑设计概述 4.1.1 开发环境与设计流程 Quartus II 是 Altera 公司综合开发工具,它集成了 FPGA/CPLD 开发过程中所设计 的所有工具和第三方软件接口,支持多时钟分析, LogicLock 基于块的设计,片上可编 程系统 SOPC, 内嵌在线逻辑分析仪 Signal

    2024年02月12日
    浏览(38)
  • AD9680+JESD204B接口+FPGA FMC高速率数据采集板卡

    板卡概述: 【FMC_XM155】 FMC_XM155 是一款基于 VITA57.1 标准的,实现 2 路 14-bit、500MSPS/1GSPS/1.25GSPS 直流耦合 ADC 同步采集 FMC 子卡模 块。 该模块遵循 VITA57.1 规范,可直接与 FPGA 载卡配合使用,板 卡 ADC 器件采用 ADI 的 AD9680 芯片,该芯片具有两个模拟输入通道和两个 JESD204B 输出数

    2024年02月14日
    浏览(39)
  • 基于vivado+Verilog FPGA开发 — 基于AD9767高速DAC的DDS信号发生器

    目录  一、功能定义 二、设计输入  1、主模块 2、DDS模块 3、 按键消抖模块 三、功能仿真  四、综合优化 五、布局布线 六、时序仿真 七、板级调试  代码规范:Verilog 代码规范_verilog代码编写规范-CSDN博客 开发流程:FPGA基础知识----第二章 FPGA 开发流程_fpga 一个项目的整个

    2024年03月18日
    浏览(59)
  • 基于dsp+fpga+AD+ENDAC的半导体运动台高速数据采集电路仿真设计(四)

    整个调试验证与仿真分析分三个步骤:第一步是进行 PCB 检查及电气特性测试,主 要用来验证硬件设计是否正常工作;第二步进行各子模块功能测试,包括高速光纤串行 通信的稳定性与可靠性测试, A/D 及 D/A 转换特性测试, EnDat 串行通信相关时序测试 与验证等,主要用来验

    2024年02月01日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包