搜索
bottom↓
回复: 0

《新起点V2之FPGA开发指南》第三十七章 双路高速AD实验

[复制链接]

出0入234汤圆

发表于 2021-10-13 17:58:58 | 显示全部楼层 |阅读模式
本帖最后由 正点原子 于 2021-10-30 10:44 编辑

1)实验平台:正点原子新起点V2FPGA开发板
2)  章节摘自【正点原子】《新起点之FPGA开发指南 V2.1》
3)购买链接:https://detail.tmall.com/item.htm?id=609758951113
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-328002-1-1.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子FPGA技术交流QQ群:712557122
1.png


2.jpg


3.png


第三十七章 双路高速AD实验

        ADC(Analog to Digital Converter即模数转换器)是大多数系统中必不可少的组成部件,用于将连续的模拟信号转换成离散的数字信号,它们是连接模电电路和数字电路必不可少的桥梁。在很多场合下,ADC的转换速度甚至直接决定了整个系统的运行速度。本章我们将使用双路高速AD模块采集外部模拟信号转换成数字信号,并在ILA中查看信号波形。
       本章包括以下几个部分:
             

       1.1简介
       1.2实验任务
       1.3硬件设计
       1.4软件设计
       1.5下载验证

1.1简介

       本章我们使用的高速双路AD模块是正点原子推出的一款高速双路模数转换模块(ATK_DUAL_HS_AD),高速AD转换芯片由恩瑞浦公司生产的,型号是3PA1030。
       ATK_DUAL_HS_AD模块的硬件结构图如下图所示。
第三十七章 双路高速AD实验358.png

图 37.1.1 ATK_DUAL_HS_AD模块硬件结构图

       3PA1030芯片的输入模拟电压转换范围是0V~2V,所以电压输入端需要先经过电压衰减电路,使输入的-5V~+5V之间的电压衰减到0V~2V之间,然后经过3PA1030芯片将模拟电压信号转换成数字信号。
       下面我们介绍下这个芯片。
        3PA1030芯片
        3PA1030是一款恩瑞浦推出的单电压芯片,10位,50 MSPS(Million Samples Per Second,每秒采样百万次)模数转换器,集成片上采样保持放大器和基准电压源。具有高性能低功耗的特点。
        3PA1030的内部功能框图如下图所示:
第三十七章 双路高速AD实验686.png

图 37.1.2 3PA1030内部功能框图

       3PA1030在时钟(CLK)的驱动下工作,3PA1030内置片内采样保持放大器(SHA),同时采用多级差分流水线架构,保证了50MSPS的数据转换速率下全温度范围内无失码;3PA1030内部集成了基准源,根据系统需要也可以选择外部高精度基准满足系统的要求。
       3PA1030输出的数据以二进制格式表示,当输入的模拟电压超出量程时,会拉高OVR信号;当输入的模拟电压在量程范围内时,OVR信号为低电平,因此可以通过OVR信号来判断输入的模拟电压是否在测量范围内。另外3PA1030有一个OE信号,当该信号为高电平时3PA1030输出呈高阻态,低电平则可以正常输出。
       3PA1030的时序图如下图所示:
第三十七章 双路高速AD实验1054.png

图 37.1.3 3PA1030时序图

       上图中,S1,S2,S3分别为三个采样点,可以看到,芯片在时钟的上升沿采样。需要注意的是,3PA1030芯片的最大转换速度是50MSPS,即输入的时钟最大频率为50MHz。
       3PA1030支持输入的模拟电压范围是0V至2V,0V对应输出的数字信号为0,2V对应输出的数字信号为1023。而DA经外部电路后,输出的电压范围是-5V~+5V,因此在3PA1030的模拟输入端增加电压衰减电路,使-5V~+5V之间的电压转换成0V至2V之间。那么实际上对我们用户使用来说,当3PA1030的模拟输入接口连接-5V电压时,AD输出的数据为0;当3PA1030的模拟输入接口连接+5V电压时,AD输出的数据为1023。
       当3PA1030模拟输入端接-5V至+5V之间变化的正弦波电压信号时,其转换后的数据也是成正弦波波形变化,转换波形如下图所示:
1.png

图 37.1.4 3PA1030正弦波模拟电压值(左)、数据(右)

        由上图可知,输入的模拟电压范围在-5V至5V之间,按照正弦波波形变化,最终得到的数据也是按照正弦波波形变化。


1.2实验任务

       本节实验任务是使用新起点开发板及双路AD扩展模块(ATK_DUAL_HS_AD模块)实现双路模数的转换,并在signaltap中查看波形。本实验我们模拟输入源来双路DA扩展模块,两路模拟信号分别接在双路AD模块的模拟信输入端。
1.3硬件设计
       ATK_DUAL_HS_AD模块电路主要包括扩展口,AD芯片,电源电路模块和低通滤波器,衰减电路。下面是扩展口电源电路部分。
第三十七章 双路高速AD实验1840.png

图 37.3.1 扩展口及电源电路

       由上图可知,双路AD模块使用到的管脚连接到P7扩展口上,这些管脚包括十位的数据,时钟以及电源等信号。U2用于将5V电压转成VCC+(2.8V)供U1使用,U1将VCC+转成了VCC-(-2.8V),±2.8V电压供双电源运放TPH2501使用。U3负责将5V电压转成VCC(3.3V)。
       衰减电路原理图如下图所示。
第三十七章 双路高速AD实验2061.png

图 37.3.2 3PA1030原理图

        上下两个电路是一样的,我们以上面的电路为例。上图中输入的模拟信号IN1(V1)经过衰减电路后得到AD_IN1(VO)信号,两个模拟电压信号之间的关系是VO=VI/5+1,即当VI=5V时,VO=2V;VI=-5V时,VO=0V。
        ATK_DUAL_HS_AD模块的实物图如下图所示。
第三十七章 双路高速AD实验2268.png

图 37.3.3 ATK_DUAL_HS_AD模块实物图

       本实验中,各端口信号的管脚分配如下表所示。
2.png


表 37.3.1双路高速AD转换实验管脚分配

         对应的QSF约束语句如下所示:
  1. set_location_assignment PIN_M2 -to sys_clk

  2. set_location_assignment PIN_R14 -to ad0_oe
  3. set_location_assignment PIN_P6 -to ad0_data[9]
  4. set_location_assignment PIN_N8 -to ad0_data[7]
  5. set_location_assignment PIN_K9 -to ad0_data[5]
  6. set_location_assignment PIN_L10 -to ad0_data[3]
  7. set_location_assignment PIN_N9 -to ad0_data[1]

  8. set_location_assignment PIN_T14 -to ad0_clk
  9. set_location_assignment PIN_N6 -to ad0_otr
  10. set_location_assignment PIN_M8 -to ad0_data[8]
  11. set_location_assignment PIN_P8 -to ad0_data[6]
  12. set_location_assignment PIN_L9 -to ad0_data[4]
  13. set_location_assignment PIN_M9 -to ad0_data[2]
  14. set_location_assignment PIN_P9 -to ad0_data[0]

  15. set_location_assignment PIN_R7 -to ad1_oe
  16. set_location_assignment PIN_R8 -to ad1_data[9]
  17. set_location_assignment PIN_R9 -to ad1_data[7]
  18. set_location_assignment PIN_R10 -to ad1_data[5]
  19. set_location_assignment PIN_R11 -to ad1_data[3]
  20. set_location_assignment PIN_R12 -to ad1_data[1]

  21. set_location_assignment PIN_T7 -to ad1_clk
  22. set_location_assignment PIN_T8 -to ad1_otr
  23. set_location_assignment PIN_T9 -to ad1_data[8]
  24. set_location_assignment PIN_T10 -to ad1_data[6]
  25. set_location_assignment PIN_T11 -to ad1_data[4]
  26. set_location_assignment PIN_G2 -to ad1_data[2]
  27. set_location_assignment PIN_T13 -to ad1_data[0]
复制代码

1.4程序设计
        根据本章的实验任务,高速双路AD模块同时采集两路外部模拟信号,在模块内部实现模数转换,将转换后的数字信号传给FPGA管脚,FPGA内部逻辑分析仪通过抓取数据将外部的模拟信号呈现出来。
        图 37.4.1是根据本章实验任务画出的系统框图。我们事先准备两路模拟信号源,本实验我们使用信号发生器产生模拟输入源。接到双路AD芯片的信号输入端,在双路AD内部实现AD转换,将转换后的信号送给FPGA,在这里,FPGA只需要给AD芯片输出驱动时钟信号(AD_CLK)和使能信号(AD_OE),AD芯片便可完成模拟采集并转换成数字信号。
       高速双路AD实验的系统框图如图 37.4.1所示:

3.png

图 37.4.1 双路AD系统框图

       通过对系统框图的分析,我们输出一个时钟,然后在signaltap中抓取芯片的输出信号。我们给出顶层模块代码如下所示:
  1. 1  module hs_dual_ad(
  2. 2      input                 sys_clk     ,  
  3. 3      //AD0
  4. 4      input     [9:0]       ad0_data     ,   //AD0数据
  5. 5      input                 ad0_otr      ,   //输入电压超过量程标志
  6. 6      output                ad0_clk      ,   //AD0(AD9280)采样时钟
  7. 7      output                ad0_oe       ,
  8. 8      //AD1
  9. 9      input     [9:0]       ad1_data     ,  //AD0数据
  10. 10     input                 ad1_otr      ,  //输入电压超过量程标志
  11. 11     output                ad1_clk      ,  //AD1(AD9280)采样时钟  
  12. 12     output                ad1_oe      
  13. 13     );
  14. 14     
  15. 15  //*****************************************************
  16. 16 //**                    main code
  17. 17 //*****************************************************   
  18. 18 //  ad0_oe=0,正常模式;ad0_oe=1,高阻
  19. 19 wire clk_50m;
  20. 20 wire clk_50m_deg;
  21. 21 assign ad0_oe =  1'b0;
  22. 22 assign ad1_oe =  1'b0;
  23. 23 assign  ad0_clk = clk_50m_deg;
  24. 24 assign  ad1_clk = clk_50m_deg;
  25. 25
  26. 26
  27. 27 pll u_pll(
  28. 28  .inclk0 (sys_clk),
  29. 29  .c0 (clk_50m_deg),
  30. 30  .c1 (clk_50m)
  31. 31  );
  32. 32
  33. 33 endmodule
复制代码

       代码第21到22行产生双路AD的两个输出使能信号,ad0_oe和ad1_oe,请注意,它们是低电平有效,所以我们直接赋值0。23行到24行,产生驱动AD芯片的时钟,ad0_clk和ad1_clk,他们都是由clk_50m偏移90°得来的,这是为了在signaltap采集数据时不会采集到数据边沿,使采到的数据更正确。其中clk_50m由时钟模块产生,大小是50M。
1.5下载验证
       将高速双路AD模块插入新起点开发板P6扩展口,连接时注意扩展口电源引脚方向和开发板电源引脚方向一致,然后将下载器一端连接电脑,另一端与开发板上对应端口连接,最后连接电源线并打开电源开关。
新起点开发板硬件连接实物图如下图所示:
第三十七章 双路高速AD实验6321.png

图 37.5.1 新起点开发板硬件连接实物图

      将工程生成的sof文件下载到FPGA中后, 连接后在signaltap中观察ad_data数据的变化,观察到的波形如下图所示。
第三十七章 双路高速AD实验6453.png

图 37.5.2 AD数据接收模块采集到的signaltap波形图

       由上图可知,输入的ad_data数据分别为2路正弦波,说明双路AD实验验证成功。
       另外,在这里介绍一下如何将数据设置成波形图显示。首先选中signaltap波形图中的ad_data,右键选择Bus Display Format,然后选择Unsigned即可,如下图所示:
第三十七章 双路高速AD实验6668.png

图 37.5.3 signaltap波形显示设置界面




阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 07:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表