当前位置: 首页 > news >正文

Xilinx IP核(3)XADC IP核

在这里插入图片描述

文章目录

  • 1. XADC介绍
  • 2.输入要求
  • 3.输出
  • 4.XADC IP核使用
  • 5.传送门

1. XADC介绍

xadc在 所有的7系列器件上都有支持,通过将高质量模拟模块与可编程逻辑的灵活性相结合,可以为各种应用打造定制的模拟接口,XADC 包括双 12 位、每秒 1 兆样本 (MSPS) ADC 和片上传感器。其中12位指的是ADC转换的精度,1MSPS说的是采样速率。如图所示,是XADC在FPGA内部电路的逻辑示意,注意区别于IP核形成的电路。
在这里插入图片描述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管脚要接地。
在这里插入图片描述
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 )的高阻抗,输入交流阻抗通常由传感器、驱动电路的输出阻抗或其他外部组件确定。
在这里插入图片描述

3.输出

基于上述的了解,我们得出结论,配置好电路之后,AD转换之后的结果将会存在相应的寄存器中。然后通过专用的引脚去读寄存器就可以了。如图所示,温度传感器的寄存器地址为00h。但是温度需要一个转换的过程,例如读出的ADC采样的值为997h,他所对应的值应该是25℃。因为要符合用以下公式转换。
在这里插入图片描述在这里插入图片描述
需要注意,读出的寄存器位宽16bit,但只有12bit数据有效,12 位数据对应于 16 位状态寄存器中的 12 个 MSB(最高有效位)。
在这里插入图片描述
DRP时序
如果DWE为逻辑低,则执行DRP读操作。当 DRDY 变高时,该读操作的数据在 DO 总线上有效。因此,应使用 DRDY 来捕获 DO 总线。对于写操作,DWE 信号为逻辑高电平,DI 总线和 DRP 地址 (DADDR) 在 DCLK 的下一个上升沿被捕获。当数据成功写入 DRP 寄存器时,DRDY 信号变为逻辑高电平。在 DRDY 信号变低之前,无法启动新的读或写操作。
在这里插入图片描述

4.XADC IP核使用

可以使用原语来读取ADC转换后的值,也可以使用IP核。本文实现使用XADC IP核读取FPGA内部温度。
在这里插入图片描述

  • 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摄氏度。
    在这里插入图片描述
    部分代码如下,有每个引脚含义的注释可供参考
reg [31:0]tim_cnt;
always @(posedge clk_100 or negedge clk_rst) beginif(!clk_rst)begintim_cnt <= 0;den_in <= 0;endelse beginden_in <= 0;tim_cnt <= tim_cnt + 1;if(tim_cnt == 32'd100_000_000)begintim_cnt <= 0;den_in <= 1;endend
endxadc_wiz_0 xadc_fun (.di_in(di_in),              //  Input data 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
);

5.传送门

  • 我的主页
  • FPGA开发必备技能专栏汇总导航
END

💎文章原创,首发于CSDN论坛。
💎欢迎点赞💖收藏✨打赏💷!
💎欢迎评论区🎤或私信指出错误🎤,🗣️提出宝贵意见或疑问。


相关文章:

Xilinx IP核(3)XADC IP核

文章目录 1. XADC介绍2.输入要求3.输出4.XADC IP核使用5.传送门 1. XADC介绍 xadc在 所有的7系列器件上都有支持&#xff0c;通过将高质量模拟模块与可编程逻辑的灵活性相结合&#xff0c;可以为各种应用打造定制的模拟接口&#xff0c;XADC 包括双 12 位、每秒 1 兆样本 (MSP…...

计算机网络socket编程(2)_UDP网络编程实现网络字典

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络socket编程(2)_UDP网络编程实现网络字典 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…...

c#窗体列表框(combobox)应用——省市区列表选择实例

效果如下&#xff1a; designer.cs代码如下&#xff1a; using System.Collections.Generic;namespace 删除 {public partial class 省市区选择{private Dictionary<string, List<string>> provinceCityDictionary;private Dictionary<string,List<string&…...

Nginx 架构与设计

Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;同时也可以用作邮件代理和通用的 TCP/UDP 负载均衡器。它的架构设计以高并发、高可扩展性和高性能为目标&#xff0c;充分利用操作系统提供的多路复用机制和事件驱动模型。以下是 Nginx 的架构和设计特点&#xff1a; 1…...

python Flask指定IP和端口

from flask import Flask, request import uuidimport json import osapp Flask(__name__)app.route(/) def hello_world():return Hello, World!if __name__ __main__:app.run(host0.0.0.0, port5000)...

多线程 相关面试集锦

什么是线程&#xff1f; 1、线程是操作系统能够进⾏运算调度的最⼩单位&#xff0c;它被包含在进程之中&#xff0c;是进程中的实际运作单位&#xff0c;可以使⽤多线程对 进⾏运算提速。 ⽐如&#xff0c;如果⼀个线程完成⼀个任务要100毫秒&#xff0c;那么⽤⼗个线程完成改…...

【数据结构】—— 线索二叉树

引入 我们现在提倡节约型杜会&#xff0c; 一切都应该节约为本。对待我们的程序当然也不例外&#xff0c;能不浪费的时间或空间&#xff0c;都应该考虑节省。我们再观察团下图的二叉树&#xff08;链式存储结构)&#xff0c;会发现指针域并不是都充分的利用了&#xff0c;有许…...

uni-app 发布媒介功能(自由选择媒介类型的内容) 设计

1.首先明确需求 我想做一个可以选择媒介的内容&#xff0c;来进行发布媒介的功能 &#xff08;媒介包含&#xff1a;图片、文本、视频&#xff09; 2.原型设计 发布-编辑界面 通过点击下方的加号&#xff0c;可以自由选择添加的媒介类型 但是因为预览中无法看到视频的效果&…...

How to update the content of one column in Mysql

How to update the content of one column in Mysql by another column name? UPDATE egg.eggs_record SET sold 2024-11-21 WHERE id 3 OR id 4;UPDATE egg.eggs_record SET egg_name duck egg WHERE id 2;...

URL在线编码解码- 加菲工具

URL在线编码解码 打开网站 加菲工具 选择“URL编码解码” 输入需要编码/解码的内容&#xff0c;点击“编码”/“解码”按钮 编码&#xff1a; 解码&#xff1a; 复制已经编码/解码后的内容。...

Python3 爬虫 Scrapy的安装

Scrapy是基于Python的分布式爬虫框架。使用它可以非常方便地实现分布式爬虫。Scrapy高度灵活&#xff0c;能够实现功能的自由拓展&#xff0c;让爬虫可以应对各种网站情况。同时&#xff0c;Scrapy封装了爬虫的很多实现细节&#xff0c;所以可以让开发者把更多的精力放在数据的…...

QT中QString类的各种使用

大部分的QString使用可以参考:QT中QString 类的使用--获取指定字符位置、截取子字符串等_qstring 取子串-CSDN博客 补充一种QString类的分离:Qt QString切割(Split()与Mid()函数详解)_qstring split-CSDN博客 1. Trimmed和Simplified函数(去除空白) trimmed&#xff1a;去除了…...

linux 网络安全不完全笔记

一、安装Centos 二、Linux网络网络环境设置 a.配置linux与客户机相连通 b.配置linux上网 三、Yum详解 yum 的基本操作 a.使用 yum 安装新软件 yum install –y Software b.使用 yum 更新软件 yum update –y Software c.使用 yum 移除软件 yum remove –y Software d.使用 yum …...

uniapp将图片url转换成base64支持app和h5

uniapp将图片url转换成base64支持app和h5 imageToBase64支持app和h5, app内使用plus.io.resolveLocalFileSystemURL方法转换 h5内使用uni.request方法转换 // 图片转base64 export const imageToBase64 (path) > {// #ifdef APP-PLUSreturn new Promise((resolve, rejec…...

odoo17 档案管理之翻译2

翻译格式&#xff1a;#: model_terms:对象名称,arch_db:模块名.xml_id #. module: dms #: model_terms:ir.ui.view,arch_db:dms.view_dms_directory_kanban #: model_terms:ir.ui.view,arch_db:dms.view_dms_file_kanban #: model_terms:ir.ui.view,arch_db:dms.view_dms_tag_…...

风尚云网前端学习:制作一款简易的在线计算器

风尚云网前端学习&#xff1a;制作一款简易的在线计算器 简介 在前端开发的学习过程中&#xff0c;实现一个简单的在线计算器是一个常见的练习项目。它不仅能够帮助我们熟悉HTML、CSS和JavaScript的基本用法&#xff0c;还能够加深我们对事件处理和DOM操作的理解。今天&#…...

Android蓝牙架构,源文件目录/编译方式学习

Android 版本 发布时间 代号&#xff08;Codename&#xff09; Android 1.0 2008年9月23日 无 Android 1.1 2009年2月9日 Petit Four Android 1.5 2009年4月27日 Cupcake Android 1.6 2009年9月15日 Donut Android 2.0 2009年10月26日 Eclair Android 2.1 2…...

ubuntu中使用ffmpeg和nginx推流rtmp视频

最近在测试ffmpeg推流rtmp视频&#xff0c;单独安装ffmpeg是无法完成推流的&#xff0c;需要一个流媒体服务器&#xff0c;常用nginx&#xff0c;可以直接在ubuntu虚拟机里面测试一下。 测试过程不涉及编译ffmpeg和nginx&#xff0c;仅使用基本功能&#xff1a; 1 安装ffmpeg …...

strongswan测试流程

测试shell脚本文件testing/do-tests&#xff0c;测试配置文件testing/testing.conf。do-tests脚本不加参数&#xff0c;将依次执行testing/tests/目录下的所有测试用例。do-tests脚本有两个参数-v和-t&#xff0c;前者在测试中记录详细信息&#xff0c;后者在输出信息中增加时间…...

[CKS] CIS基准测试,修复kubelet和etcd不安全项

目前的所有题目为2024年10月后更新的最新题库&#xff0c;考试的k8s版本为1.31.1 ​ 专栏其他文章: [CKS] K8S Admission Set Up[CKS] CIS基准测试&#xff0c;修复kubelet和etcd不安全项[CKS] K8S NetworkPolicy Set Up[CKS] 利用Trivy对image进行扫描[CKS] 利用falco进行容器…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...