推荐给大家一款高性能的AD转换芯片,来自德州仪器的AZ6445(ADS6445),具有4个通道,每个通道都是14bit、125MHz的采样速率,数据传输采用LVDS接口,很适合高速传输数据。
首先来看一下ADS6445的器件手册,下图是ADS6445的器件结构图:

从上面的结构图可以看出4个通道的输入都是差分的输入信号,往往我们需要采集的信号都是单端的信号,所以将单端转差分,使用变压器或者单端转差分的运放都是可以的。这里我们采用的是单端转差分的运放。当然在器件手册里面这些信息都会给我们提供,我们就可以照图施工了。官方器件手册给的是THS4509,这里我使用的是ADI公司的AD8138芯片,使用哪一个都是可以的。下图为TI给出的参考电路:

时钟的输入也是差分的,在器件手册的相应部分也可以找到,使用变压器或者FPGA直接施加差分时钟信号都是可以的,这里我们使用的是使用FPGA来施加时钟信号。下图为时钟输入端的电路图,直接采用两个电容就可以了:

ADS6445的数据输出都是通过LVDS接口输出的,如下图所示为器件的输出数据的时序关系图:

具体该选择哪一种模式下工作,我们可以来配置芯片的寄存器,配置芯片的寄存器,ADS6445给出了两种方案,一种是并行配置方式,另一种是采用SPI 的串行配置方式。分别对应了芯片管脚上的CFG…和SCLK、SDATA…这里我们采用的是SPI的方式对每一个寄存器进行配置。配置寄存器的时序也非常简单,参照器件手册给出的时序就可以了,每一个寄存器对应的功能如下图所示:

通过以上的几个环节,我们就大致知道了芯片的外围电路如何设计以及程序如何编写了。接下来就分别来看一下器件的外围电路和程序的设计。
(1)器件外围电路:
器件的外围电路这里很简单,输入的差分时钟直接由FPGA来产生就可以了,输入的差分数据使用AD8138这个单端转差分的运放,具体的电路图如下图所示:

实际做好的板子:

电路板焊接好了之后就是测试模拟信号输入之后,前端的单端转差分的运放是否可以将输入的信号转化到ADS6445芯片可以接受的范围之内,经过测试使用AD8138是可以的。
(2)程序编写:
接下来就是对ADS6445进行编程。首先需要确定ADS6445的工作模式,所以需要配置寄存器,就是通过程序以SPI的接口时序往芯片里面的寄存器写数据,程序如下:

always@(posedge SPI_20M or negedge rst_n)beginif(!rst_n)beginSCLK <= 1'b1;SEN <= 1'b1;SDATA <= 1'b1;spi_data <= 'd0;endelse if(state_en)begincase(state_cnt)0:beginSCLK <= 1'b1;SEN <= 1'b1;SDATA <= 1'b1;spi_data <= spi_data;end1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31:beginSCLK <= 1'b1;SEN <= 1'b0;SDATA <= spi_data[15];spi_data <= spi_data;end2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32:beginSCLK <= 1'b0;SEN <= 1'b0;SDATA <= SDATA;spi_data <= spi_data << 1;end33:beginSCLK <= 1'b1;SEN <= 1'b1;SDATA <= 1'b1;case(data_state)0:spi_data <= 16'b01000_0000_00000_00;//Register B 增益设置1:spi_data <= 16'b01010_010_111_00000;//Register C 偏移二进制,正常模式_000_/测试模式_111_2:spi_data <= 16'b01101_100_0001_0101;//Register F 串行模式,字节,高位在前_2Vpp,上升沿_16X,DDR_2线default:spi_data <= spi_data;endcaseenddefault:beginSCLK <= 1'b1;SEN <= 1'b1;SDATA <= 1'b1;spi_data <= spi_data;endendcaseendelse beginSCLK <= 1'b1;SEN <= 1'b1;SDATA <= 1'b1;endend

配置好寄存器之后就可以根据芯片的输出管脚来抓取数据了,其中DCO、FCO以及每一路的LVDS引脚都需要进行使用,这里面需要使用FPGA里面的IO资源来操控这些引脚,主要是使用了SELECT IO里面的ISEDERSE原语来将每个通道的数据输出,其中ISEDERSE原语需要两个时钟,第一个时钟需要和DCO同频同相,第二个时钟需要和FCO同频,并借助FCO的上升沿和数据其实对齐来抓起每一个完整的数据字段。具体的程序很长,这里面值截取一段ISERDESE的原语来作为展示,大家可以自己动手尝试:

ISERDESE2 #(.DATA_RATE("DDR"),           // DDR, SDR.DATA_WIDTH(8),              // Parallel data width (2-8,10,14).DYN_CLKDIV_INV_EN("FALSE"), // Enable DYNCLKDIVINVSEL inversion (FALSE, TRUE).DYN_CLK_INV_EN("FALSE"),    // Enable DYNCLKINVSEL inversion (FALSE, TRUE).INIT_Q1(1'b0),.INIT_Q2(1'b0),.INIT_Q3(1'b0),.INIT_Q4(1'b0),.INTERFACE_TYPE("NETWORKING"),// MEMORY, MEMORY_DDR3, MEMORY_QDR, NETWORKING, OVERSAMPLE.IOBDELAY("NONE"),           // NONE, BOTH, IBUF, IFD.NUM_CE(2),                  // Number of clock enables (1,2).OFB_USED("FALSE"),          // Select OFB path (FALSE, TRUE).SERDES_MODE("MASTER"),      // MASTER, SLAVE.SRVAL_Q1(1'b0),.SRVAL_Q2(1'b0),.SRVAL_Q3(1'b0),.SRVAL_Q4(1'b0) )ISERDESE2_DA1 (.O(),                        // 1-bit output: Combinatorial output.Q1(WA_data1[0]),          // Q1 - Q8: 1-bit (each) output: Registered data outputs.Q2(WA_data1[1]),.Q3(WA_data1[2]),.Q4(WA_data1[3]),.Q5(WA_data1[4]),.Q6(WA_data1[5]),.Q7(WA_data1[6]),.Q8(WA_data1[7]),.SHIFTOUT1(),.SHIFTOUT2(),.BITSLIP(R_bit_slip),           .CE1(1'b1),.CE2(1'b1),.CLKDIVP(1'b0),              // 1-bit input: TBD.CLK(W_dc_clk),              // 1-bit input: High-speed clock.CLKB(~W_dc_clk),            // 1-bit input: High-speed secondary clock.CLKDIV(W_fc_clk),           // 1-bit input: Divided clock.OCLK(1'b0),                 // 1-bit input: High speed output clock used when INTERFACE_TYPE="MEMORY" .DYNCLKDIVSEL(1'b0),         // 1-bit input: Dynamic CLKDIV inversion.DYNCLKSEL(1'b0),            // 1-bit input: Dynamic CLK/CLKB inversion.D(WA_LVDS1),           // 1-bit input: Data input.DDLY(1'b0),                 // 1-bit input: Serial data from IDELAYE2.OFB(1'b0),                  // 1-bit input: Data feedback from OSERDESE2.OCLKB(1'b0),                // 1-bit input: High speed negative edge output clock.RST(~rst_n),            // 1-bit input: Active high asynchronous reset.SHIFTIN1(1'b0),.SHIFTIN2(1'b0) );

最终的实现效果如下图所示,由于输入信号接线紧张,信号发生器只能输出两路,所以只能两个两个来测,如下图为1和4通道,2和3不接信号:

如下图为2和3通道,1和4通道不接数据输入:

通过以上的过程就完成了对一款四通道的AD芯片的使用,频率可以达到125MHz,足以满足很多场合的应用了。

如果有同学这款芯片的使用感兴趣,或者正好有项目需要。电路板资料和程序资料,也有做好的板子,可以联系QQ:2859340499。

四通道数据采集卡(ADS6445、4 channel、14bit、125MHz)相关推荐

  1. STM32+MCGS触摸屏四通道数据采集

    ​1.想做一个数据采集系统,然后将数据存储起来,方便查看选择了STM32+MCGS触摸屏. 2.原理图绘制,选择立创的绘图软件,简单方面.用到了ADC采集模块与RS485通讯. ​ ​ ​ 3.PCB ...

  2. Labview软件、NI数据采集卡、汽车发动机数据采集学习总结(四)-------发动机上的传感器详解

    系列文章目录 第一章:汽车发动机数据采集上位机环境的搭建 第二章:Labview中的DAQ助手中器件详解 第三章:利用labview和NI数据采集卡采集汽车发动机中温度传感器的电压信号并处理 第四章: ...

  3. 16bit高精度、250MSPS采样率,支持4通道同步采集、2通道同步输出的高速数据采集卡

    N-LINX 是南科复华信息科技研发的一款同时具备交流耦合程控放大器和支持单.双极性宽带信号输入的高速数据采集卡:板载FPGA具备实时信号处理能力,这些特性使N-LINX成为激光雷达.光电倍增管应用以 ...

  4. 4通道并行同步模拟输入,1MSps、16Bit数据采集卡

    简 介  PCI-1616数据采集卡是4通道同步并行数据采集卡,采用16Bit高精度A/D,每通道最高采样率可同时达到1MSps,高精度DDS 数字频率合成:配有最高512M字节DDR板载缓存及16K ...

  5. 高速数据采集卡10bit 5GSPS

    高速数据采集卡10bit 5GSPS --西安慕雷电子发布全球顶级高速数据采集记录存储系统, 采样率高达5GSPS,模拟带宽3GHZ,记录存储带宽高达6GB/S! 一.产品特性 1.采样率5GSPS, ...

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

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

  7. 第三方数据采集卡在LabVIEW中使用Express VI简化编程范例

    什么是Express VI? Express VI是NI LabVIEW中提供的快捷的编程方法,用很少量的操作替代复杂.底层的代码,常见的如:DAQ助手ExpressVI和仿真信号Express VI ...

  8. 2018年新发布的高速数据采集卡汇总

    技术不停的迭代,研究不断深入,对测试测量中的数据采集卡要求也越来越高,为了应对工程师们各种苛刻的要求,产品需要不断的推陈出新,下面是这一年来新推出产品的汇总. 1.M2p.49系列--80MS/s 1 ...

  9. 2019高速数据采集卡动态

    科研工作者对信号的获取与分析的需求从不停歇,而采集卡的形态.样式也在推陈出新,新的处理手段--如多核CPU.并行GPU,FPGA处理能力也日新月益,推动整个数据采集行业不断进步.对于获取物理界中的信号 ...

最新文章

  1. 全球买全球卖 国际化的技术挑战
  2. Windows2003利用×××+NAT+静态路由表建立网通电信双线×××服务器
  3. 一文看懂Python(四)-----os.path模块篇
  4. (转载)GET和POST两种基本请求方法的区别
  5. ABAP和Java的destination和JNDI
  6. nodejs异步测试_异步过程的自动化测试
  7. 博客七----tensorflow-gpu安装满满填坑
  8. linux之移动或重命名文件:mv
  9. url伪静态、url重写
  10. 【javaWeb学习笔记】HTML,CSS,JS
  11. 文件指针移动(完整版)
  12. jQ模拟下拉框以及向下三角
  13. nginx配置主域名跳转www域名并支持ssl
  14. Prove the EXACT 4SAT is NP-complete.
  15. MacBookpro连不上WiFi,网络增加新的位置解决
  16. android miui连接开发者选项,(最详细)MIUI11系统的Usb调试模式在哪里开启的步骤
  17. 数据分析 —— 数据挖掘是什么、能干嘛、怎么做
  18. Click Once使用总结
  19. border-radius 兼容 IE8浏览器
  20. “大数据”挖出老鼠仓的政治价值

热门文章

  1. 智能水泵控制器,如何选型?
  2. SpringBoot整合RabbitMQ之 典型应用场景实战一
  3. python位置参数要按顺序传吗,中国大学MOOC: 在Python调用函数时,明确指定哪个值传递给哪个参数,实参顺序和形参顺序不一致时,按位置顺序传递数据。 答案:错...
  4. CAD中的相对坐标和绝对坐标
  5. CSDN-markdown写博客使用LaTeX语法编写数学公式(再也不怕手写公式,以后博客手写复杂公式就靠它了!)
  6. 中国三相电子负载限制器行业运营状况与需求前景预测报告(2022-2027)
  7. less 经典范例 bootstrap 的 less 版本 常用 less 代码
  8. 升级NodeJs版本
  9. silvaco学习之物理模型
  10. 神经网络与深度学习作业10:(LSTM | GRU)