FPGA驱动AD9240实现AD转换

您所在的位置:网站首页 adc驱动原理 FPGA驱动AD9240实现AD转换

FPGA驱动AD9240实现AD转换

2023-06-11 17:28| 来源: 网络整理| 查看: 265

文章目录 一、前言二、时序原理三、代码设计四、结果验证

一、前言

在做项目中,经常会用到AD转换模块。前段时间做毕业设计的时候需要用到FPGA驱动AD9240模块实现模拟数据的采集和转换,尽管相对来说AD9240算比较简单的驱动模块,但是也想记录下分析和设计过程。

二、时序原理

首先通过芯片手册可以看到AD9240是14位,最高速率可达10Mbps的模数转换器件。然后就是重要的时序转换图:

image-20230604205753260

可以看出:

在采样时钟第一个周期的上升沿芯片对当前模拟输入进行采样,然后在采样时钟第四个周期的下降沿完成模拟数值的转换和输出,这意味着整个输出的转换采样值滞后采样时钟4个周期。如果需要将模拟值与转换值相对应,这个延迟是需要注意的。

image-20230604210336555

根据时序参数要求,可以知道:

1、最小的Clock Period为100ns,符合最大的10M转换速率

2、由于高速分辨率的A/D对输入采样时钟的质量很敏感,AD9240的输入时钟占空比应该满足45%~55%,对于时钟低于10M的情况,可以偏离这个范围,但必须满足t C H _{CH} CH​和t C L _{CL} CL​的要求。

https://gitee.com/lgziyan/cloudimages/raw/master/img/image-20230604211515378.png

一般对于AD9240的电路设计如上,通过模拟信号单独输入到VINA中,然后CLK由FPGA提供,BIT1~BIT14为转换输出的14为数值。OTR为溢出标志位,代表输入数据是否低于或超过转换范围,一般不需要这个接口信号。

三、代码设计

由此可以设计FPGA驱动代码如下:

module AD9240 ( input clk, input n_rst, input adc_otr,//if(数据超过范围):1 else:0 input adc_clk, input [13:0] AD_data_in, output reg [15:0] AD_data_out ); reg [1:0] adc_clk_delayed; always @(posedge clk or negedge n_rst ) //将采样时钟进行打拍 begin if(n_rst==1'b0) adc_clk_delayed


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3