alinx001 发表于 2021-3-4 13:17:37

【紫光同创国产FPGA教程】【第十九章】ADDA测试例程

本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com)。适用于板卡型号:PGL22G/PGL12G1. 实验简介本实验练习使用ADC和DAC,实验中使用的ADDA模块型号为AN108,ADC最大采样率32Mhz,精度为8位,DAC最大采样率125Mhz,精度为8位。实验中用DAC输出正弦波,然后使用ADC采集并把波形在HDMI显示器显示。https://pic4.zhimg.com/80/v2-0039e670c9d6bce4ed13ea1dc7668c7f_720w.jpgADDA模块https://pic4.zhimg.com/80/v2-6ae01d29fcc9e006141dd8ce2eefd9e3_720w.jpg实验预期结果2. 实验原理https://pic3.zhimg.com/80/v2-02a288f8b553bcfb724534f1ebd694b2_720w.jpg2.1 数模转换(DA)电路如硬件结构图所示,DA电路由高速DA芯片、7阶巴特沃斯低通滤波器、幅度调节电路和信号输出接口组成。我们使用的高速DA芯片是AD公司推出的AD9708。AD9708是8位,125MSPS的DA转换芯片,内置1.2V参考电压,差分电流输出。芯片内部结构图如下图所示https://pic1.zhimg.com/80/v2-77ed3f9bf79a225160e7181ce17d98f0_720w.jpgAD9708芯片差分输出以后,为了防止噪声干扰,电路中接入了7阶巴特沃斯低通滤波器,带宽为40MHz,频率响应如下图所示https://pic1.zhimg.com/80/v2-ac24ef15bf3c608f92d8c7ab4169e380_720w.jpg滤波器参数如下图所示https://pic4.zhimg.com/80/v2-668906c778c08e2b6989d8258549641f_720w.jpg滤波器之后,我们使用了2片高性能145MHz带宽的运放AD8056,实现差分变单端,以及幅度调节等功能,使整个电路性能得到了最大限度的提升。幅度调节,使用的是5K的电位器,最终的输出范围是-5V~5V(10Vpp)。注:由于电路器的精度不是很精确,最终的输出有一定误差,有可能波形幅度不能达到10Vpp,也有可能出现波形削顶等问题,这些都属正常情况。模数转换(AD)电路如硬件结构图中所示,AD电路由高速AD芯片、衰减电路和信号输入接口组成。我们使用的高速AD芯片是由AD公司推出的8位,最大采样率32MSPS的AD9280芯片。内部结构图如下图所示https://pic3.zhimg.com/80/v2-73559ad583f0e01c609fe64d79145f16_720w.jpg根据下图的配置,我们将AD电压输入范围设置为:0V~2Vhttps://pic2.zhimg.com/80/v2-706d0bde6eb4559eb0956e3b24b3806d_720w.jpg在信号进入AD芯片之前,我们用一片AD8056芯片构建了衰减电路,接口的输入范围是-5V~+5V(10Vpp)。衰减以后,输入范围满足AD芯片的输入范围(0~2V)。转换公式如下:https://pic4.zhimg.com/80/v2-c2a3cd878c4622cb4d10ed85136dfa87_720w.jpg当输入信号Vin=5(V)的时候,输入到AD的信号Vad=2(V);当输入信号Vin=-5(V)的时候,输入到AD的信号Vad=0(V);3. 程序设计本实验显示部分是基于前面的已有的实验,在彩条上叠加网格线和波形。timing_gen_xy模块完成视频图像的坐标生成,x坐标,从左到右增大,y坐标从上到下增大。
信号名称方向宽度(bit)说明
clkin1系统时钟
rst_nin1异步复位,低电平复位
i_hsin1视频行同步输入
i_vsin1视频场同步输入
i_dein1视频数据有效输入
i_datain24视频数据输入
o_hsout1视频行同步输出
o_vsout1视频场同步输出
o_deout1视频数据有效输出
o_dataout24视频数据输出
xout12坐标x输出
yout12坐标y输出
timing_gen_xy模块端口grid_display模块主要完成视频的网格线叠加,本实验将彩条视频输入,然后叠加一个网格后输出,提供给后面的波形显示模块使用。
信号名称方向宽度(bit)说明
pclkin1像素时钟
rst_nin1异步复位,低电平复位
i_hsin1视频行同步输入
i_vsin1视频场同步输入
i_dein1视频数据有效输入
i_datain24视频数据输入
o_hsout1带网格视频行同步输出
o_vsout1带网格视频场同步输出
o_deout1带网格视频数据有效输出
o_dataout24带网格视频数据输出
grid_display模块端口wav_display显示模块主要是完成波形数据的叠加显示,模块内含有一个双口ram,写端口是由ADC采集模块写入,读端口是显示模块。
信号名称方向宽度(bit)说明
pclkin1像素时钟
rst_nin1异步复位,低电平复位
wave_colorin24波形颜色,rgb
adc_clkin1adc模块时钟
adc_buf_wrin1adc数据写使能
adc_buf_addrin12adc数据写地址
adc_buf_datain8adc数据,无符号数
i_hsin1视频行同步输入
i_vsin1视频场同步输入
i_dein1视频数据有效输入
i_datain24视频数据输入
o_hsout1带网格视频行同步输出
o_vsout1带网格视频场同步输出
o_deout1带网格视频数据有效输出
o_dataout24带网格视频数据输出
wav_display模块端口ad9226_sample模块主要完成ad9226输入数据顺序调整,因为ad9226输入的数据MSB在最低位。再把有符号数转换为无符号数,最后位宽转换到8bit。
信号名称方向宽度(bit)说明
adc_clkin1adc系统时钟
rstin1异步复位,高复位
adc_datain12ADC数据输入,MSB在最低位,需要倒序
adc_buf_wrout1ADC数据写使能
adc_buf_addrout12ADC数据写地址
adc_buf_dataout8无符号8位ADC数据
ad9226_sample模块端口在本例程中仅介绍如何使用波形数据生成工具,在软件工具及驱动文件夹下找到工具,其图标如下所示:https://pic2.zhimg.com/80/v2-1a831e38b6ef0102761237e5fd0e1285_720w.jpg1)双击.exe打开工具,打开界面如下:https://pic3.zhimg.com/80/v2-0795846ee1d863e908609cde4edd3502_720w.jpg2) 可以根据需要自选波形,本例程中选择正弦波,数据长度和位宽保持默认https://pic3.zhimg.com/80/v2-797edc00f6b0bbfc3f93b47df89f4eaa_720w.jpg3)点击保存按钮,将生成的数据文件保存到工程目录文件下(注意保存的文件类型.dat):https://pic1.zhimg.com/80/v2-26c0847cb586f346c8ef5c50adabc4b4_720w.jpg4) 保存后出现如下对话框表示保存成功,点击确定后关闭工具https://pic3.zhimg.com/80/v2-51a1b9bc701262d4c147005e3e9dfd16_720w.jpg将 .coe文件保存到生成的Rom IP核中即可,这里不再重复介绍4. 实验现象1)将AN108模块插入开发板的扩展口J8,注意1脚对齐,不要插错、插偏,不能带电操作。2)采用AN108的环路测试,连接AN108的DACOUT端到模块的AD IN端,这里使用的是专用屏蔽线,如果使用其他线可能会有较大干扰。https://pic3.zhimg.com/80/v2-71baab0149520f161d13a1032db9bbca_720w.jpgAN108连接示意图3)连接HDMI显示器,注意:连接的是显示器,不是笔记本电脑HDMI接口https://pic4.zhimg.com/80/v2-fa32c43d569b67f35e5dad518ee6b3db_720w.jpgHDMI接口连接示意图4)下载程序,旋转AN108模块上的旋钮,可以看到波形幅度在变化,波形如下图所示,黄色网格最上面横线代表5V,最下面横线代表-5V,中间横线代表0V,每个竖线间隔是10个采样点。https://pic4.zhimg.com/80/v2-6ae01d29fcc9e006141dd8ce2eefd9e3_720w.jpg
页: [1]
查看完整版本: 【紫光同创国产FPGA教程】【第十九章】ADDA测试例程