Xilinx 7系列FPGA内置ADC

news2024/11/12 8:17:50

 Xilinx 7系列FPGA全系内置了一个ADC,称之为XADC。这个XADC,内部是两个1mbps的ADC,可以采集模拟信号转为数字信号送给FPGA内部使用。

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

01

XADC Pinout Requirements模块管脚需求:

    所有的XADC模块的专用管脚都属于Bank0,所以都加上后缀_0,上图1-2表示了XADC的基本输入输出需求:上面有两种配置需求,左边使用的是Vccaux(1.8V)供电,并且使用外部的1.25V的参考源,使用外部参考源在精度和热漂移方面可以获得更好的性能,且使用一个磁珠用以隔离模拟地和数字地,以避免模拟和数字共地而把噪声带入模拟电路;右边使用的是片内的参考源,此时,VREFP脚必须按照图示连接到地。下表列出了XADC Package的管脚信息:

注:XADC模块有一专用的支持差分输入的模拟通道输入引脚(VP/VN),另外还最多有16个辅助的模拟通道输入引脚(ADxP or ADxN,x为0到15),Kintex-7不支持辅助通道6,7,13,14,15。Zynq-7000 AP SoC器件由于封装不通可能不会支持所有的辅助通道,具体要查询封装文件。

02  XADC模块的操作方式

    单通道模式,在这种模式下,用户必须通过写控制寄存器40H的CH4到CH0比特来选择一个要采样的通道。另外控制寄存器40H的BU(analog input mode) 和ACQ(settling time )两个参数也必须设置。

    独立ADC模式,在这种模式下, ADC A是固定用来实现一个类似于缺省模式的“监控模式”,报警输出功能是有效的,用户必须设置正确的报警门限;ADC B只能用来测量外部的模拟输入。 

    Single Pass 模式,在这种模式下,按用户选择的采样顺序序列顺序采样一遍后停止ADC。采样顺序序列是由用户写序列通道选择寄存器48H和49H 来设定的。 

    Continuous Sequence 连续序列模式,这种模式和Single Pass 模式很相似,区别是采样完一遍后系统自动重新开始序列采样,故为连续采样。 

    模式选择是由控制寄存器41H 的SEQ3到SEQ0比特决定,具体如下图示:

03  IP核设置

Basic 设置

    关于XADC具体的结构,功能和各个参数的含义,需要注意的是:

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

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

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

    注意红框中的几点:

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

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

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

    4.设置好DRP端口的时钟频率,50或100M都可以,无特殊要求。

ADC Setup 设置

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

Alarms 设置

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

channel 设置

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

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

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

04

Port 例化

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

    余下四个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的值来判断是哪一个通道的。

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

    温度换算公式和曲线如下图所示:

    电压换算公式和变化曲线如下图所示:

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

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

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

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

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

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

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

    可以看到上图界面温度信息Temp 60.3℃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

麒麟KylinV10SP1(2203)推荐安装一些硬件监控类软件与使用

目录 前言 1、tlp 电源管理 (1)查看电池容量、使用量、为Thinkpad设定电池充电开始结束阈值 (2)查看硬盘比如NVME SSD的型号种类、当前温度、读写量等信息; (3)查看CPU型号以及频率上下限、…

软件测试简单么,发展前景如何?

随着人工智能时代的到来,IT行业受到了越来越多人的重视。软件测试作为把控软件质量必不可少的环节,其重要性可见一斑。 软件测试可以说是算得上IT行业里相对简单的语言,但是也只是相对哈,如果想学习下去还是要看个人的学习能力的…

软件测试工作内容和职责有哪些

目前,在IT行业中测试的职位数量仅次于开发,可以说是第二大技术就业岗位。然而许多人对测试师工作的理解还停留在,只需要像用户一样使用产品,然后发现有问题提交报告就行了。其实这是极其不准确的,软件测试师在测试产品…

通过Dnspy调试解决powershell使用Install-module指定的转换无效的问题

之前运行Install-module -Name NtObjectManager出现以下错误: PackageManagement\Install-Package : Package NtObjectManager failed to be installed because: 指定的转换无效。 At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.…

Shell编程之排序

目录 一、冒泡排序 二、选择排序 三、插入排序 基本思想: 四、反转排序 基本思想: 五、睡眠排序 六、希尔排序 基本思想: 举例 一、冒泡排序 冒泡排序,该排序的命名非常形象,即一个个将气泡冒出。冒泡排序一…

ChatDOC工具——使用ChatGPT高效阅读技术科研论文

ChatDOC是一款功能强大的人工智能阅读辅助工具,专为帮助用户快速理解论文内容而设计。使用ChatDOC,您可以通过上传PDF版论文文献,利用先进的ChatGPT技术,只需三个简单步骤,便可以高效地阅读论文,提高阅读效…

TypeScript初识

目录 介绍 定义 优点 类型声明 ts文件编译选项 自动编译 编译选项的各个属性 include compilerOptions 介绍 定义 TS(TypeScript)是一种由微软开发的编程语言,它是 JavaScript 的一个超集,提供了静态类型检查、类、接…

Linux系统编程——多线程[中]:互斥与同步

0.关注博主有更多知识 操作系统入门知识合集 目录 1.并发过程中的问题 2.互斥 2.1互斥锁 2.2如何看待互斥锁 2.3加锁和解锁的本质 2.4对锁做一个封装 2.5可重入函数与线程安全 2.6死锁 3.同步 3.1条件变量 1.并发过程中的问题 我们知道,同一个进程中的…

【SpringBoot】过滤器,监听器,拦截器介绍

文章目录 一、简介1、过滤器2、拦截器3、监听器 二、如何创建1、过滤器2、监听器3、拦截器 三、总结 一、简介 通过两幅图我们可以理解拦截器和过滤器的特点 1、过滤器 过滤器是在请求进入tomcat容器后,但请求进入servlet之前进行预处理的。请求结束返回也是&…

模拟IC与数字IC设计该怎么选?哪个岗位薪资高?

很多同学想要入行IC,但不知道数字和模拟方向怎么选? 如果没有亲身体会过模拟设计,并有发自内心的自信或者兴趣,一般不看好纯小白去学模拟电路设计。 模拟设计想做好,没有数学功底,没有电路分析的功底&…

面试题30天打卡-day24

1、Redis 为什么快? Redis 之所以快,主要是因为它具有以下特点: 纯内存操作:Redis 的数据存储在内存中,因此读写速度非常快,而无需像传统数据库一样从硬盘读取和写入数据。与此同时,Redis 支持…

【算法】动态规划算法求(编辑距离)

目录 编辑距离: 举例: 代码如下 调试: 核心代码: 画图演示上述代码: 编辑距离: 是一种计算两个自符串之间差异程度的方法,它通过比较两个字符串之间的插入,删除和 替换操作的数…

深度神经网络模型部署——Docker学习

容器技术中有三个核心概念:容器(Container)、镜像(Image),以及镜像仓库(Registry) 从本质上来说,容器属于虚拟化技术的一种,和虚拟机(Virtual Mac…

CentOS7安装vsftpd

CentOS7安装vsftpd 最近又用到ftp了,摸索了一下终于安装成功,记录下安装过程,本次使用的操作系统为 CentOS7,ftp使用vsftpd。 安装vsftpd yum install -y vsftpd配置vsftpd vsftpd的配置文件路径为:/etc/vsftpd/vs…

软件测试基础面试题大全(上)

1. 软件生命周期是什么? 软件生命周期:需求调研(可行性研究)、需求分析(需求规格说明书)、设计(系统架构、模块设计、表结构设计、接口设计等,产出概要设计文档和详细设计文档&…

表达式求值问题-双栈模板化实现

好久不见,真的很久都没有更新博客了,最近很多事情,所以比较忙碌,没有时间每天都学算法,但是我会挤时间尽量做到,每两三天就更新博客,我会努力的,加油~ 前言:计算器都见过…

加码本地生活、成为“万能入口”,抖音完成了百度曾经的梦想

文|螳螂观察 作者| 小别 前有美团点评,后有阿里巴巴,本地生活服务从来就不平静。 并没有在最好的时间出发的抖音,还是顺着短视频的内容优势,从团购、本地游、外卖再到近期推出商城频道,逐步完善了本地生活服务的布局…

浅谈jmeter性能测试步骤入门

一、Jmeter简介 1 概述 jmeter是一个软件,使负载测试或业绩为导向的业务(功能)测试不同的协议或技术。 它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。 它主要对 Apache JServ(现在称为如 Apache Tomca…

linux命令文本命令之~~~ sort ~~ tr ~~cut ~~ uniq

目录 一. sort命令二. uniq 命令三. tr命令四. cut命令 一. sort命令 以行为单位对文件内容进行排序,也将他根据不同的数据类型来排序 比较原则是从首字符向后,依次按ASCII码进行比较,最后按照升序输出排序 语法格式: sort 【选…

Web自动化测试:selenium的使用以及关于driver=webdriver.Firefox()无驱动报错问题

Selenium 1.什么是Selenium? Selenium是一个用于Web应用程序测试的工具。 主流的自动化测试工具有: web自动化测试:selenium、robot frameworkApp端自动化测试:Appium、Monkeyrunner、UIautomationPC客户端(win32&…