0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Xilinx 7FPGA XADC如何获取模拟信号的信息

454398 来源:Xilinx 作者:Xilinx 2021-01-01 10:58 次阅读

Xilinx 7系列FPGA全系内置了一个ADC,称呼为XADC。

这个XADC,内部是两个1mbps的ADC,可以采集模拟信号转为数字信号送给FPGA内部使用。

XADC内部可以直接获取芯片结温和FPGA的若干供电电压(7系列不包括VCCO),用于监控FPGA内部状况。同时提供了17对差分管脚,其中一对专用的模拟差分输入,16对复用的模拟差分输入,不使用的时候可以作为普通的User I/O。

关于XADC具体的结构,功能和各个参数的含义,请参考相关文档。这里不做详细描述。另外有两点需要注意。

1.关于参考电压的设置,会影响误差范围及采样值的计算公式。

2.模拟差分输入对模拟信号幅值有要求,需要外边模拟电路进行一定程度的转换。

更多关于参考电压和外部模拟电路的实现,请参考设计文档UG480:http://link.zhihu.com/?target=https%3A//www.xilinx.com/support/documenta...

假设现在需要用XADC来获取几个模拟信号的信息,那么应该如何操作呢。下面解释一种个人偏爱设置方式。

pIYBAF9uE5iAaycEAACQoR0U1GE565.jpg

注意红框中的几点:

1.使用DRP端口获取数字信号,这样控制似乎更简单一些。

2.使用连续采样模式,ADC一直工作在数据采集模式,采集后就可以进行输出。

3.使用Channel Sequencer模式,由于只有两个XADC而需要采样的数据过多,所以让XADC依次陆续进行采样。

4.设置好DRP端口的时钟频率。

o4YBAF9uE5mAFTdpAABpV8cTipA507.jpg

IP设置第二页,主要是设置Calibration、平均值和外部MUX。这几个可以暂时跳过,等熟悉XADC的使用后在进行深入了解。

第三页设置告警参数,可以不用。如果需要的话,可以设置一下,便于使用。

pIYBAF9uE5uAIva6AAB477-LmEI940.jpg

第四页设置需要使用的通道,这里选择温度和三个供电电压,并选择一个专用的模拟输入通道和前三个复用的模拟输入通道。

最后一页是Summary,可以看看设置是否有问题,没有需要设置的地方。

这个时候最基本的一个多通道获取数据的XADC设置好了,至于设置中没有细说的地方,可以等熟练使用之后进行研究,找出最合适的使用模式。

下面是如何使用这个生成的IP。由于使用DRP端口来读取数据,所以需要设计一个DRP读写控制器。不过由于XADC本身就提供了一些信号,所以这个设计其实非常简单。
.di_in(di_in),
.daddr_in(daddr_in),
.den_in(den_in),
.dwe_in(dwe_in),
.drdy_out(drdy_out),
.do_out(do_out),
.dclk_in(dclk_in),

首先理一下DRP端口,主要7个信号。由于仅仅是读取数据,所以输入部分没有使用的必要。
.di_in (16'b0),
.dwe_in (1'b0),

时钟信号连接DRP所使用的时钟即可,注意频率需要和XADC IP中的设置一样。
.daddr_in ({2'b00,CHANNEL_OUT}),
.den_in (EOC_OUT),
.do_out (DO_OUT),
.drdy_out (DRDY_OUT),

.eoc_out (EOC_OUT),
.channel_out (CHANNEL_OUT),

余下四个DRP端口,两个输出两个输入。两个输出直接引出来,其中do_out就是最终需要的数据。这个端口是16bit,取高12bit即可(对应XADC中宣称的12位)。

XADC的IP端口中还有两个,名为eoc_out和channel_out。将eoc_out连接到DRP端口的den_in端口,含义是当多路采样的某一路完成采样后,则启动DRP端口操作,开始进行读取数据。将channel_out补两位之后送入daddr_in作为DRP端口操作的地址信号。这样就完成了DRP的读写操作。

不过这样输出的数据,会周期性的在几个端口数据之间变化。所以通常在后端加一个过滤设置,具体行为是,当代表DRP操作完成的drdy_out拉高的时候,根据channel_out的值来判断是哪一个通道的。
always @(posedge clk)begin
if(DRDY_OUT == 1'b1 && CHANNEL_OUT ==5'd0)begin
Temperature end else begin
Temperature end
end

关于每个采样通道的具体地址,可以参考手册

o4YBAF9uE5yADAL-AAFKB_7Bgwk224.jpg

至于模拟差分输入Pin,直接送到顶层的相对应管脚即可。注意Vivado工具可能需要对复用的模拟Pin进行电平约束,根据VCCO的电压值选择相应的lvcmos即可,例如1.8V的VCCO就选择lvcmos18即可。

这样就可以获取对应的模拟采样数据了。由于绝大部分情况下需要检测的模拟信号变化相对较慢,使用XADC是足够用于检测的。

涉及到XADC的使用问题还有MIG IP。MIG是Memory Interface的IP,也就是DDR3之类的DDR存储器IP。由于此类接口一般速率过高,会需要温度信息对接口做一定的矫正。在MIG IP的配置中,会默认启动XADC。

pIYBAF9uE52AZXZrAABrYIlGoug649.jpg

此时的XADC仅仅需要提供温度信息就可以了。当需要提供更多信息,就需要独立配置XADC,这样工程中就会生成两个XADC;或者例化了两个MIG IP,这样各自就会需要一个XADC。由于硬件中只有一个XADC模块,当发现工程中需要多个XADC模块的时候,工具就会提示出错。

解决方案也非常简单,MIG IP中去掉XADC。然后在设计中独立例化XADC IP。根据上文的做法获取温度信息后送往MIG。MIG IP去掉XADC后会生成一个温度端口用来接收数据。这样就不会发生冲突。

另外一个非常便捷的获取温度信息的方案就是使用Hardware Manager。在Hardware Manager中打开XADC就能看到温度信息。

o4YBAF9uE56AQNUKAABCb-kRuBk752.jpg

其实XADC所有通道数据都可以通过这个方法获取。

pIYBAF9uE6CAMSvjAABcslU3Eio899.jpg

更多的使用细节,可以参考UG480文档。

编辑:hfy


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1598

    文章

    21265

    浏览量

    592749
  • Xilinx
    +关注

    关注

    70

    文章

    2117

    浏览量

    119318
  • 模拟信号
    +关注

    关注

    8

    文章

    953

    浏览量

    51794
收藏 人收藏

    评论

    相关推荐

    xilinx FPGAXADC怎么用?

    各位大神好,最近在学习xilinx公司的ZYNQ7000系列的开发板,学习XADC,有没有用过的大神,求给一些学习指导。真不太会用啊!
    发表于 03-24 05:35

    如何在PS中调用Zynq内部的XADC模块进行片内温度和电源电压测量

    应该是“Xilinx模拟混合信号模块”,是FPGA中的一个硬核。在7系列FPGA中,
    发表于 12-27 06:18

    模拟信号的调制与解调

    模拟信号的调制与解调3.1 模拟信号的线性调制 3.2 模拟信号的非线性调制 3.3 模拟调制方式的性能比较
    发表于 10-22 13:30 0次下载

    基于FPGA模拟信号源系统设计

    提出了一种基于现场可编程门阵列(FPGA)的全球定位系统(GPS)卫星信号模拟源系统的设计方案。FPGA作为一种常用的可编程器件,将其应用到模拟信号
    发表于 05-26 20:40 33次下载

    什么是模拟信号?什么叫数字信号?

    什么是叫模拟信号? 信号在时间和数值上都是连续变化的信号称为模拟信号.模拟信号是指用连续变化的物理量表示的
    发表于 08-22 15:05 6.3w次阅读

    模拟信号与数字信号

    模拟信号与数字信号 一、模拟信号   模拟信号是一种不仅再时间上连续、数值上也连续的物理量,具有无穷多的数值,其数学表达是必较复
    发表于 04-06 23:34 1.5w次阅读
    <b class='flag-5'>模拟信号</b>与数字<b class='flag-5'>信号</b>

    模拟信号,模拟信号是什么意思

    模拟信号,模拟信号是什么意思 什么是模拟信号
    发表于 03-06 09:30 2965次阅读

    模拟信号和数字信号有什么区别

    模拟信号与数字信号的联系在于它们都是用来传递信息的,而且在一定条件下,模拟信号可以转换为数字信号传输。数字
    发表于 02-26 08:54 19w次阅读
    <b class='flag-5'>模拟信号</b>和数字<b class='flag-5'>信号</b>有什么区别

    Xilinx-ZYNQ7000:如何用XADC测外部温度值

    XADC模拟输入包括专用模拟输入VP/VN和16组复用模拟信号输入VAUX(15:0);XADC转换结果可以通过动态重配接口(DRP)或者J
    发表于 02-14 17:30 1.1w次阅读
    <b class='flag-5'>Xilinx</b>-ZYNQ7000:如何用<b class='flag-5'>XADC</b>测外部温度值

    Xilinx 7系列FPGA内置ADC XADC获取模拟信号

    XADC内部可以直接获取芯片结温和FPGA的若干供电电压(7系列不包括VCCO),用于监控FPGA内部状况。同时提供了17对差分管脚,其中一对专用的
    发表于 03-03 10:58 1.8w次阅读
    <b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b>内置ADC <b class='flag-5'>XADC</b><b class='flag-5'>获取</b><b class='flag-5'>模拟信号</b>

    模拟信号和数字信号的区别是什么

    模拟信号是什么?模拟信号是一种信号信息的不断变化的物理量表示。例如,一个无线电信号,或信号,等
    发表于 08-13 17:40 9.3w次阅读

    xilinx fpga开发软件

    今天咱们来聊一聊FPGA里面的XADC功能。XADCXilinx公司的FPGA里集成的一个ADC模块、温度传感器、电压传感器的集合。在7系
    的头像 发表于 11-23 16:02 4698次阅读
    <b class='flag-5'>xilinx</b> <b class='flag-5'>fpga</b>开发软件

    学会Zynq(22)XADC测量片内温度与电源电压

    应该是“Xilinx模拟混合信号模块”,是FPGA中的一个硬核。在7系列FPGA中,XADC提供
    发表于 01-05 14:26 10次下载
    学会Zynq(22)<b class='flag-5'>XADC</b>测量片内温度与电源电压

    如何用FPGA XADC获取几个模拟信号信息呢?

    Xilinx 7系列FPGA全系内置了一个ADC,称呼为XADC
    发表于 08-15 09:19 757次阅读
    如何用<b class='flag-5'>FPGA</b> <b class='flag-5'>XADC</b>来<b class='flag-5'>获取</b>几个<b class='flag-5'>模拟信号</b>的<b class='flag-5'>信息</b>呢?

    模拟信号是什么意思?怎么判断数字信号模拟信号

    模拟信号是什么意思?常见的模拟信号有哪些?怎么判断数字信号模拟信号模拟信号是指采用连续变化的物理量来传输
    的头像 发表于 11-22 16:32 3583次阅读