FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch13】ADC实验_第1页
FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch13】ADC实验_第2页
FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch13】ADC实验_第3页
FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch13】ADC实验_第4页
FPGA开发实用教程-基于Xilinx和Verilog HDL(微课版) 课件 【ch13】ADC实验_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ADC实验卓越工程师培养系列FPGA开发实用教程——基于Xilinx和VerilogHDL第十三章01实验内容本章通过学习ADC,结合串口通信实验,实现FPGA输岀8位的正弦波数据,使得DAC模块输出一个正弦波信号。这个正弦波信号通过跳线帽,将DAC模块的输出和ADC模块的输入连接起来。然后使用信号采集工具,通过串口读取ADC的数据输出,在PC端中的信号采集工具中显示正弦波。实验内容02实验原理实验原理2Vpp单端配置输入如图13-1所示。A/D转换电路由模拟电压输入接口、衰减电路和高速AD芯片AD9280组成。AIN的输入电压峰峰值为2V,图13-2中的电路图根据图13-1设计。A/D转换及D/A转换电路原理图在FPGA高级开发系统上,XC6SLX16芯片与AD9280芯片的8位输出数据DO〜D7和时钟CLK连接,在模拟信号进入AD9280芯片之前,经过了AD8065芯片构建的衰减电路,衰减以后输入范围满足AD9280芯片的输入范围(0〜2V)。实验原理A/D转换硬件电路如图13-2所示。实验原理AD9280芯片是ADI公司生产的一款单芯片、8位、32MSPS(MillionSamplesPerSecond,每秒釆样百万次)模/数转换器,具有高性能、低功耗的特点。AD9280芯片AD9280芯片引脚如图13-3所示,表13-1是对AD9280芯片引脚的说明,该芯片有28个引脚。表13-1AD9280芯片引脚说明实验原理引脚编号引脚名称描述1AVSS模拟地2DRVDD数字驱动电源3,4DNC空引脚5〜12D0〜D78路模拟信号输出13OTR超出范围指示器14DRVSS数字地15CLK时钟输入16THREE-STATE该引脚接电源为高阻抗状态,接地为正常操作,接地即可17STBY该引脚接电源为断电模式,接地为正常操作,接地即可实验原理引脚编号引脚名称描述18REFSENSE参考选择,接地即可19CLAMP该引脚接电源为启用钳位模式,接地为无钳位,接地即可20CLAMPIN钳位基准输入,接地即可21REFTS顶部参考22REFTF顶部参考去耦23MODE模式选择,接电源24REFBF底部参考去耦25REFBS底部参考26VREF内部参考电压输出27AIN模拟输入28AVDD模拟电源AD9280芯片的内部功能框图如图13-4所示,AD9280芯片在时钟(CLK)的驱动下工作,用于控制所有内部转换的周期;AD9280芯片内置片内釆样保持放大器(SHA),同时采用多级差分流水线架构,保证了在32MSPS的数据转换速率下全温度范围内无失码;AD9280芯片内部集成了可编程的基准源,根据系统需要也可以选择外部高精度基准满足系统的要求。实验原理AD9280芯片输出的数据以二进制形式表示。当输入的模拟电压超出量程时,会拉高OTR(Out-of-Range)信号;当输入的模拟电压在量程范围内时,OTR信号为低电平。因此,可以通过OTR信号来判断输入的模拟电压是否在测量范围内。实验原理实验原理AD9280芯片在每个输入时钟CLOCK的上升沿对输入的模拟信号进行一次釆集,釆集数据由数据总线DATA输出,每个时钟周期ADC都会完成一次釆集。模拟信号转换成数字信号并不是当前周期就能转换完成的,从釆集模拟信号开始到输出数据为止需要经过3个时钟周期。在时钟CLOCK的上升沿釆集的模拟电压信号S1,经过3个时钟周期后(实际上再加上25ns的延迟),输出转换后的数据DATA1。注意,AD9280芯片的最大转换速率为32MSPS,即输入的时钟最大频率为32MHz。AD9280芯片的时序图如图13-5所示。实验原理实验原理AD9280芯片支持输入的模拟电压范围是0〜2V,0V对应输出的数字信号为0,2V对应输出的数字信号为255。而AD9708芯片经外部电路后,输出的电压范围是-5〜+5V,因此在AD9280芯片的模拟输入端增加电压衰减电路,使-5〜+5V的电压转换成0〜2V。那么实际上对于用户来说,当AD9280芯片的模拟输入接口连接-5V电压时,A/D输出的数据为0;当AD9280芯片的模拟输入接口连接+5V电压时,A/D输出的数据为255。当AD9280芯片模拟输入端接-5〜+5V的变化正弦波电压信号时,其转换后的数据也呈正弦波波形变化。ADC实验内部电路图由u_dac和u_adc模块组成,其中u_adc模块的作用是接收来自AD9280芯片的8位ADC信号,并且输出ADC时钟及将数据发送到主机进行处理。实验原理ADC实验内部电路图u_adc模块内部电路图分为u_clk_gen_125hz、u_rec_ad_data、u_pack和u_uart_trans模块。其中,u_clk_gen_125hz产生一个周期为125Hz的时钟,u_rec_ad_data模块的作用是接收AD9280芯片输出的A/D数据,u_pack模块对A/D数据进行打包处理,u_uart_trans模块则将打包好的数据发送到上位机。实验原理u_adc模块内部电路图如图13-7所示。03实验步骤实验步骤步骤1:复制工程文件夹并添加Verilog文件将“D:\Spartan6FPGATest\Material”目录中的expl2_adc文件夹复制到“D:\Spartan6FPGATest\Product”目录中。然后,双击运行“D:\Spartan6FPGATest\Product\expl2_adc\project”目录中的dac_to_adc.xise文件打开工程,该工程的顶层文件为dac_to_adc.v。步骤2:完善rec_ad_data.v文件将程序清单13-1中的相应代码输入rec_ad_data.v文件的信号定义和电路实现部分,并参考2.3节步骤5检查语法,下面对关键语句进行解释。实验步骤第9至18行代码:接收波形数据计数器,1个波形数据包包含5个点,每接收到一个A/D数据,s_wave_cnt加1,范围为0~4。第29至37行代码:产生数据准备就绪标志。在clk_i的上升沿,如果s_wave_cnt为000且s_wave_cnt_reg的值为100,表示波形数据包的5个A/D数据准备就绪,则输出pct_rec_rdy_o被置1;如果pct_send_rdy_i为高电平,即数据已成功发送到其他模块,则将输出pct_rec_rdy_o置0。第39至63行代码:输出模块ID和二级ID,将串行数据ad_data_i根据计数器的值分别输出到5个并行输出pct_datal_o~pct_data5_o,同时将数据包的第6个数据输出pct_data6_o置为0。实验步骤实验步骤步骤3:完善adc.v文件将程序清单13-2中的相应代码输入adc.v文件的信号定义、模块例化和电路实现部分,并参考2.3节步骤5检查语法。实验步骤实验步骤步骤4:仿真测试下面对工程中的dac_to_adc模块进行仿真。本实验已经提供了完整的测试文件dactoadctf.v,可以直接参考2.3节步骤7对dactoadc模块进行仿真,仿真结果如图13-8所示。因为本实验是将DAC产生的波形连接到ADC中,所以仿真模拟的ADC输入与DAC输出是一样的。可以看到,每接收到5个波形数据,uart_tx_i便

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论