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

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

3天内不再提示

XADC IP核介绍

FPGA设计论坛 来源:FPGA设计论坛 2025-01-15 16:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. XADC介绍

xadc在 所有的7系列器件上都有支持,通过将高质量模拟模块与可编程逻辑的灵活性相结合,可以为各种应用打造定制的模拟接口,XADC 包括双 12 位、每秒 1 兆样本 (MSPS) ADC 和片上传感器。其中12位指的是ADC转换的精度,1MSPS说的是采样速率。如图所示,是XADC在FPGA内部电路的逻辑示意,注意区别于IP核形成的电路。

132f88c6-d22d-11ef-9310-92fbcf53809c.png

1.图中1部分是温度传感器和电压传感器,可监测如图所示的多组电压。

2.图中2部分是FPGA bank上的引脚。可以用来接模拟源,总共有17对差分组。其中VP-0与VAUXP有所区别,VP-0在不用来接模拟源时要接地,VAUXP在不用做模拟时,可与普通的数字IO一样使用。支持模拟输入的 FPGA I/O 在封装文件名中包含_ADxP_ 和 ADxN 标识,例如 IO_L1P_T0_ AD0P 35 是模拟辅助通道 VAUXP[0] 的输入引脚。IO_L1N_T0 AD0N _35 为模拟辅助通道 VAUXN[0] 的输入引脚。Kintex-7 设备不支持辅助通道 6、7、13、14 和 15。可以在 I/O 组中启用任意数量的辅助模拟输入,并将剩余的用作数字 I/O。如果一个组中混合有模拟和数字 I/O,则该 I/O 组必须由满足所用数字 I/O 标准规范所需的电源供电。在这种情况下,模拟输入信号不应超过 I/O Bank 电源电压 (V CCO )。

3.图中3部分是ADC部分所需的模拟电压的基准源,可以选择外部基准源,基准源电压是1.25V,也可以选择内部基准源,这时VRE管脚要接地。

134aebe8-d22d-11ef-9310-92fbcf53809c.png

4.图中4部分是两个12位精度的ADC模数转换器。其中ADC A接内部的温度、电压传感器,ADC B主要接外部输入的模拟源。

5.图中5部分是对外的接口,可以使用JTAG或者FPGA内部逻辑通过访问DRP接口来读写内部的控制寄存器和读取状态寄存器。

2.输入要求

ADC 的标称模拟输入范围为 0V 至 1V。在单极模式(默认)下,当输入电压为 1V 时,ADC 的模拟输入会产生FFFh (12 位)的满量程代码。在双极性模式下,ADC 使用二进制补码编码,并在 +0.5V 输入时产生7FFh的满量程代码,在 –0.5V 输入时产生800h的满量程代码。

如下图所示,是xilinx推荐的模拟源的外部电路示意。阻器 R1 和 R2 将 10V 电源分压至 1V,以便与 XADC 配合使用。R5 已与 R1 和 R2 的并联电阻进行阻抗匹配。模拟输入是高阻抗差分输入。差分输入方案可以抑制任何外部应用的模拟输入信号上的共模噪声。由于每个输入(例如 V P和 V N )的高阻抗,输入交流阻抗通常由传感器、驱动电路的输出阻抗或其他外部组件确定。

1367d9c4-d22d-11ef-9310-92fbcf53809c.png

3.输出

基于上述的了解,我们得出结论,配置好电路之后,AD转换之后的结果将会存在相应的寄存器中。然后通过专用的引脚去读寄存器就可以了。如图所示,温度传感器的寄存器地址为00h。但是温度需要一个转换的过程,例如读出的ADC采样的值为997h,他所对应的值应该是25℃。因为要符合用以下公式转换。

13770b06-d22d-11ef-9310-92fbcf53809c.png    

13864ee0-d22d-11ef-9310-92fbcf53809c.png

需要注意,读出的寄存器位宽16bit,但只有12bit数据有效,12 位数据对应于 16 位状态寄存器中的 12 个 MSB(最高有效位)。

13a4e2ec-d22d-11ef-9310-92fbcf53809c.png

DRP时序

如果DWE为逻辑低,则执行DRP读操作。当 DRDY 变高时,该读操作的数据在 DO 总线上有效。因此,应使用 DRDY 来捕获 DO 总线。对于写操作,DWE 信号为逻辑高电平,DI 总线和 DRP 地址 (DADDR) 在 DCLK 的下一个上升沿被捕获。当数据成功写入 DRP 寄存器时,DRDY 信号变为逻辑高电平。在 DRDY 信号变低之前,无法启动新的读或写操作。

13b6afc2-d22d-11ef-9310-92fbcf53809c.png

4.XADC IP核使用

可以使用原语来读取ADC转换后的值,也可以使用IP核。本文实现使用XADC IP核读取FPGA内部温度。

13c47594-d22d-11ef-9310-92fbcf53809c.png

A.选择DRP接口,如果不需要读出具体的AD转换之后的数值,则选择none;IP核的实际电路比上述XADC的电路多了AXI-Lite用于配置寄存器。在没有软核和PS端时,用DRP更为方便。

B.选择连续采样模式,包括了电压采集和电压转换两个阶段。在连续采样模式下,ADC 在当前转换周期结束时自动启动新的转换。在事件采样模式下,您必须在当前转换周期结束后使用 CONVST 或 CONVSTCLK 输入启动下一次转换,适用于精准时刻采集。

C.通道选择,这里选择单一通道,只工作在单一通道监测温度即可。° Simultaneous Selection允许同时监测两个通道。° Independent ADC独立监视外部通道,同时监测温度和电压。Channel Sequencer 任意监视多个通道。

其余关于DRP的配置、是否勾选AXI-Stream、以及复位信号的选择保持默认即可。

第二页配置一些ADC的增益、补偿、没有深入研究,保持默认。Alarms页配置相关通道的报警信息,本次演示不需要,只看到温度值即可,这里不勾选。由于前面选了单一配置,这里channel页也无需配置直接生成IP即可。

如下图所示为实测结果,在den_in有效时向地址为0的寄存器下发读取指令,在drdy_out为高时,do_out输出有效,可以看到寄存器中16bit的值为39392,右移4为的值2462带入上述温度转换的式子得到当前FPGA温度值为29.77摄氏度。

13d1320c-d22d-11ef-9310-92fbcf53809c.png

部分代码如下,有每个引脚含义的注释可供参考

reg [31:0]tim_cnt;

always @(posedge clk_100 or negedge clk_rst) begin

if(!clk_rst)begin

tim_cnt<= 0;

den_in<= 0;

end

elsebegin

den_in<= 0;

tim_cnt<= tim_cnt + 1;

if(tim_cnt== 32'd100_000_000)begin

tim_cnt<= 0;

den_in<= 1;

end

end

end

xadc_wiz_0 xadc_fun (

.di_in(di_in), // Inputdata bus for the dynamic reconfiguration port (DRP).

.daddr_in(daddr_in), //input wire [6 : 0] daddr_in

.den_in(den_in), //Enable signal for the dynamic reconfiguration port.

.dwe_in(dwe_in), //Write enable for the dynamic reconfiguration port.

.drdy_out(drdy_out), //Data ready signal for the dynamic reconfiguration port.

.do_out(do_out), //Output data bus for the dynamic reconfiguration port.

.dclk_in(clk_100), //input wire dclk_in

.reset_in(~clk_rst), //input wire reset_in

.vp_in(vp_in), //input wire vp_in

.vn_in(vn_in), //input wire vn_in

.channel_out(channel_out), //Channel selection outputs. 只是正在采样的通道

.eoc_out(eoc_out), //End of Conversion signal.

.alarm_out(alarm_out), //output wire alarm_out

.eos_out(eos_out), //End of Sequence

.busy_out(busy_out) //ADC busy signal

);

原文链接:

https://blog.csdn.net/weixin_40615338/article/details/143944324

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

    关注

    1655

    文章

    22282

    浏览量

    630059
  • IP核
    +关注

    关注

    4

    文章

    339

    浏览量

    51702
  • XADC
    +关注

    关注

    0

    文章

    9

    浏览量

    3722

原文标题:XADC IP核

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ise中的iP

    请问哪位高手有ise软件中的各个ip的功能介绍
    发表于 10-08 16:41

    【Z-turn Board试用体验】+XADC应用

    的应用,关于XADC的设计原理,可以直接百度。这里先科普下:ZYNQ将ADC集成到ZYNQ器件内部,使得可编程逻辑器件的应用扩展到数模混合。XADC IP主要由AXI-Lite接口模块、XAD
    发表于 06-09 01:20

    vivado 调用IP 详细介绍

    大家伙,又到了每日学习的时间了,今天咱们来聊一聊vivado 调用IP。首先咱们来了解一下vivado的IPIP
    发表于 05-15 12:05

    【FPGA DEMO】Lab3:XADC采样输出实验

    `项目名称:XADC使用。 具体要求:实现xadcip采集输入数据,并输出采样结果。 系统设计:Artix-7系列 FPGA内含有两个12位、1 MSPS的模数转换器,可以配置为同
    发表于 07-30 11:37

    USB设备接口IP的设计

    USB设备接口IP的设计:讨论了用Verilog硬件描述语言来实现USB设备接口IP的方法,并进行了FPGA的验证。简要介绍USB系统的
    发表于 01-08 18:15 22次下载

    基于Wishbone总线的UART IP设计

    本文介绍的基于Wishbone总线的UART IP的设计方法,通过验证表明了各项功能达到预期要求,为IP接口的标准化设计提供了依据。此外
    发表于 06-10 11:47 4164次阅读
    基于Wishbone总线的UART <b class='flag-5'>IP</b><b class='flag-5'>核</b>设计

    FPGA中IP的生成

    FPGA中IP的生成,简单介绍Quartus II生成IP的基本操作,简单实用挺不错的资料
    发表于 11-30 17:36 12次下载

    FPGA频率测量-基于XADC源码

    基于FPGA的外部正弦波频率测量,采用软件AD转换,即XADCIP,基于赛灵思basys3开发版。
    发表于 06-20 17:48 12次下载

    Xilinx Vivado的使用详细介绍(3):使用IP

    IPIP Core) Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。
    发表于 02-08 13:08 3062次阅读
    Xilinx Vivado的使用详细<b class='flag-5'>介绍</b>(3):使用<b class='flag-5'>IP</b><b class='flag-5'>核</b>

    基于Linux的XADC控制器模块的两种形式配置

    中提到的the PS-XADC interface for the PS software to control the XADC,另一种是位于PL内部,通过IP的方式实现。目前常用
    发表于 06-30 14:24 4048次阅读
    基于Linux的<b class='flag-5'>XADC</b>控制器模块的两种形式配置

    vivado调用IP详细介绍

    大家好,又到了每日学习的时间了,今天咱们来聊一聊vivado 调用IP。 首先咱们来了解一下vivado的IPIP
    的头像 发表于 05-28 11:42 3.9w次阅读

    Zynq片内XADC应用笔记

    .pdf;  xapp795:driving-xadc.pdf  xapp554:xadc-layout-guidelines.pdf  xapp1203:post-proc-ip-zynq-xadc
    发表于 09-22 18:36 14次下载
    Zynq片内<b class='flag-5'>XADC</b>应用笔记

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

    本文将介绍如何在PS中调用Zynq内部的XADC模块进行片内温度和电源电压测量。先了解XADC的相关知识,再通过实例体会XADC的用法,学习XADC
    发表于 01-05 14:26 10次下载
    学会Zynq(22)<b class='flag-5'>XADC</b>测量片内温度与电源电压

    如何申请xilinx IP的license

    在使用FPGA的时候,有些IP是需要申请后才能使用的,本文介绍如何申请xilinx IP的license。
    的头像 发表于 10-25 16:48 2124次阅读
    如何申请xilinx <b class='flag-5'>IP</b><b class='flag-5'>核</b>的license

    Vivado中FFT IP的使用教程

    本文介绍了Vidado中FFT IP的使用,具体内容为:调用IP>>配置界面介绍>>
    的头像 发表于 11-06 09:51 5353次阅读
    Vivado中FFT <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用教程