xilinx ZYNQ 7000 XADC 片上模拟转数字模块

2023-05-16

在这里插入图片描述
上图所示,XADC 属于 PL部分的资源
XADC是一种硬逻辑实现,位于PL功率域。PS- xadc接口是PS的一部分,可以被PS APU访问,而不需要对PL进行编程。PL必须上电才能配置PS-XADC接口、使用PL- jtag或DRP接口以及操作XADC。
在这里插入图片描述
上面的机构图能够很清楚的表达XADC的互联结构和接口。
PS有两个接口可以访问XADC,一个是CPU通过APB ARM 的高速外设总线访问PS-XADC接口通过串行数据访问XADC。一个是AXI GP,必须通过AXI XADC IP Core访问,MISC高速接口。
JTAG和ABP接口公用通道,对XADC进行访问。
XADC可以采集的信号有内部温度传感器,内部电压信号。通过PL PIN接入的外部电压信号,PL PIN的指定需要PL 侧的配置(引脚分配就会产生Bitstream文件)。
在这里插入图片描述
XADC内部框图,有两个ADC 转换器,通过多路复用器采集不同端口的电压。
芯片硅片温度传感器和内部电源都连接到了ADC A上。ADC A/B通过复用器连接到外部模拟输入。
转换结果都存储在 Status Registers 中,64*16bit,通过DRP接口只读。
控制寄存器是可读可写通过DRP接口访问。
所有XADC专用引脚都位于BANK 0中 _0后缀的引脚
只要是ADC就必须关注参考电压。在这里插入图片描述
Vccadc 是ADC转换器内核的供电电源,使用Vccaux 1.8v供电。
参考电压的供给可以选择片外,1.25V供电,精度和温度偏移的性能可以做到很好。
右图是使用内部参考电压,需要把Vrefp接地。
UG480 P16 介绍了ADC相关引脚的说明
在这里插入图片描述

电源和地主要是ADC转换器的供电引脚,就算没有使用XADC也应该确保连接上1.8和地。

在这里插入图片描述
参考电压如上图所示

Xilinx 官方开发板ZC702
参考电压通过REF3012基准电压芯片提供。
在这里插入图片描述
模拟电压输入引脚如下所示在这里插入图片描述
ZC702
在这里插入图片描述

采样模式 有很多种,大体和MCU 片载ADC一样。

在开发XADC前,梳理一偏基本思路
1.XADC同普通ADC一样只是具有特殊的接口
2.XADC供电电源和参考电压按照UG480 进行配置
3.了解硬件电路板上,XADC的电路连接情况。

然后开始XADC的软件开发
在这里插入图片描述

如前所述,不需要在设计中实例化XADC来访问片上监视功能。但是,如果XADC在设计中没有实例化,那么访问该信息的唯一方法是通过JTAG测试访问端口(TAP)。为了允许从FPGA逻辑访问状态寄存器(测量结果),必须实例化XADC

XADC 实验
在这里插入图片描述
main函数部分

int main(void)
{

	int Status;

	/*
	 * Run the polled example, specify the Device ID that is
	 * generated in xparameters.h.
	 */
	Status = XAdcPolledPrintfExample(XADC_DEVICE_ID);
	if (Status != XST_SUCCESS) {
		xil_printf("adcps polled printf Example Failed\r\n");
		return XST_FAILURE;
	}
	xil_printf("Successfully ran adcps polled printf Example\r\n");
	return XST_SUCCESS;
}

获取XADC实体地址 XAdcInstPtr

/*
	 * Initialize the XAdc driver.
	 */
	ConfigPtr = XAdcPs_LookupConfig(XAdcDeviceId);
	if (ConfigPtr == NULL) {
		return XST_FAILURE;
	}
	XAdcPs_CfgInitialize(XAdcInstPtr, ConfigPtr,
				ConfigPtr->BaseAddress);

	/*
	 * Self Test the XADC/ADC device
	 */
	Status = XAdcPs_SelfTest(XAdcInstPtr);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}

设置ADC的采样工作模式

	/*
	 * Disable the Channel Sequencer before configuring the Sequence
	 * registers.
	 */
	XAdcPs_SetSequencerMode(XAdcInstPtr, XADCPS_SEQ_MODE_SAFE);
	/**
 * @name Channel Sequencer Modes of operation
 * @{
 */
#define XADCPS_SEQ_MODE_SAFE		0  /**< Default Safe Mode */
#define XADCPS_SEQ_MODE_ONEPASS		1  /**< Onepass through Sequencer */
#define XADCPS_SEQ_MODE_CONTINPASS	2  /**< Continuous Cycling Sequencer */
#define XADCPS_SEQ_MODE_SINGCHAN	3  /**< Single channel -No Sequencing */
#define XADCPS_SEQ_MODE_SIMUL_SAMPLING	4  /**< Simultaneous sampling */
#define XADCPS_SEQ_MODE_INDEPENDENT	8  /**< Independent mode */

获取通道ADC值,下面看到有内部通道,还有外部16~31 通道

TempRawData = XAdcPs_GetAdcData(XAdcInstPtr, XADCPS_CH_TEMP);
/**
 * @name Indexes for the different channels.
 * @{
 */
#define XADCPS_CH_TEMP		0x0  /**< On Chip Temperature */
#define XADCPS_CH_VCCINT	0x1  /**< VCCINT */
#define XADCPS_CH_VCCAUX	0x2  /**< VCCAUX */
#define XADCPS_CH_VPVN		0x3  /**< VP/VN Dedicated analog inputs */
#define XADCPS_CH_VREFP		0x4  /**< VREFP */
#define XADCPS_CH_VREFN		0x5  /**< VREFN */
#define XADCPS_CH_VBRAM		0x6  /**< On-chip VBRAM Data Reg, 7 series */
#define XADCPS_CH_SUPPLY_CALIB	0x07 /**< Supply Calib Data Reg */
#define XADCPS_CH_ADC_CALIB	0x08 /**< ADC Offset Channel Reg */
#define XADCPS_CH_GAINERR_CALIB 0x09 /**< Gain Error Channel Reg  */
#define XADCPS_CH_VCCPINT	0x0D /**< On-chip PS VCCPINT Channel , Zynq */
#define XADCPS_CH_VCCPAUX	0x0E /**< On-chip PS VCCPAUX Channel , Zynq */
#define XADCPS_CH_VCCPDRO	0x0F /**< On-chip PS VCCPDRO Channel , Zynq */
#define XADCPS_CH_AUX_MIN	 16 /**< Channel number for 1st Aux Channel */
#define XADCPS_CH_AUX_MAX	 31 /**< Channel number for Last Aux channel */

后面的部分没有什么好讲解的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xilinx ZYNQ 7000 XADC 片上模拟转数字模块 的相关文章

  • STM32--微项目14-手撸I2C通讯、实现MPU6050六轴传感器控制

    一 微项目实现目标 xff1a STM32通过两个GPIO端口 xff0c 通过代码配置成I2C通讯状态 xff0c 通过I2C通讯与MPU6050进行信息交互 xff0c 包括配置MPU6050寄存器配置 获取MPU6050寄存器状态 x
  • ubuntu-查看文件系统

    ubuntu 查看文件系统 查看文件系统 deepfuture 64 deepfuture laptop df 文件系统 1K 块 已用 可用 已用 挂载点 dev sda1 75481116 3926204 67720600 6 tmpf
  • TypeError: Expected Ptr<cv::UMat> for argument ‘img‘

    使用opencv过程中报错 xff1a TypeError Expected Ptr for argument 39 img 39 请检查img参数是否是numpy数组 xff0c 以及其数据类型 dtype是否是np uint8 如果这两
  • TX2超详细,超实用刷机教程(亲测有效,所有步骤都是博主亲自实践过)

    本篇主要对TX2刷机流程以及刷机过程中遇到的坑和相应的解决办法做个记录 xff0c 以便再次刷机时能做个参考 如果你刚好收到TX2开发者套件 xff0c 还没有进行开箱 xff0c 那么请移步到我的前一篇博客进行TX2的开机测试 博客链接
  • MicroStrategy 简介 【Business Intelligent】

    下载地址 xff1a https www microstrategy com us resources microstrategy for students students Capabilities that power the Inte
  • crontab permission denied 解决办法,crontab 进程存在就不执行的方法

    crontab permission denied 出现场景 出现情况 xff0c sh文件在本地Win下面开发 xff0c 每次修改 xff0c 提交后在Linux上pull下来 xff0c 却发现x权限消失 导致crontab 里面定时
  • ROS入门之通信架构+实践问题+python版本切换解决

    运行起来后是什么样的通信结构 PR2机器人 这么多东西 xff0c 怎么管理进行 xff0c 并且怎么通信 节点管理器 xff08 作为管家管理进程 xff0c master xff09 node首先要向master注册 xff0c 之后就
  • matlab---s函数讲解之二连杆动力学仿真

    matlab虽然后simulink xff0c 但是再复杂系统的仿真的时候简单的simulink中模块不能满足要求 xff0c 因此需要自己建立s函数 xff0c 作为仿真中的一个模块 在控制系统中分为控制器和被控对象 matlab s函数
  • 全球定位系统的组成

    一 空间部分 1 GPS卫星 Block xff08 试验卫星 xff09 Block xff08 以下均为工作卫星 xff09 14天导航电文 xff0c 实施SA和AS的能力 Block A 180天导航电文 xff0c 卫星互相通信能
  • 前端疑难杂症集锦

    一 webpack打包时Cannot resolve module 39 fs 39 在webpack config js中添加 node fs 34 empty 34 二 typescript找不到fs模块 code npm instal
  • 基于ROS的语音控制机器人(二):上位机的实现

    文章目录 目录 文章目录 前言 一 准备工作 1 python工作环境 2 ros环境 3 QT designer 二 界面程序设计 1 界面设计 2 ui文件转py文件 三 上位机程序编写 1 具体思路 2 具体实现 3 遇到的问题 1
  • "指定的文件格式无法识别或为不支持的二进制"

    次奥 xff0c 你没有正确设置启动项目 转载于 https www cnblogs com tupx p 3701598 html
  • Linux安装MySQL8.0.16

    1 下载安装包 https www mysql com 2 安装MySQL 将下载好的安装包上传到服务器 然后解压 tar xvf mysql 8 0 16 el7 x86 64 tar gz 然后将解压目录重命名为mysql 8 0 16
  • 硬件中断和软件中断的区别

    中断 中断指当出现需要时 xff0c CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程 即在程序运行过程中 xff0c 系统出现了一个必须由CPU立即处理的情况 xff0c 此时 xff0c CPU暂时中止程序的执行转而处理这
  • 嵌入式C语言自我修养笔记1-ARM体系结构与编译运行

    目录 ARM 体系结构ARM 体系结构ARM 汇编指令ARM 寻址方式ARM 伪指令C 与汇编混合编程 程序编译链接与安装运行预处理过程编译过程链接过程程序安装apt get链接静态库动态链接共享库插件工作原理Linux 内核模块运行机制L
  • Renode应用:在RISC-V核上运行FreeRTOS

    本篇记录通过Renode在RISC V核上运行FreeRTOS demo的情况 本来不准备写这一篇 xff0c 但是发现近期工作学习密度实在太大 xff0c 上周工作的中间结果这周竟然完全想不起来了 xff0c 不得不又花了一些时间从头摸索
  • VideoStream流媒体(VOD视频点播)系统平台

    软件介绍 xff1a VideoStream是集流媒体视频服务和流媒体应用管理为一体的综合流媒体服务系统 xff0c 本产品通过宽带IP网络为教育系统 各类运营商 政府企业等用户提供音视频服务的应用 系统特点 xff1a 1 采用WEB端口
  • c语言实现模拟FTP服务器项目

    下载源码后 xff0c 直接可以在ubuntu中编译运行 xff1a FTP服务器程序功能 xff1a 客户端 xff1a 1 输入命令 xff1a help 查看FTP服务器所支持的所有命令 2 输入名 xff1a ls 查看服务器上可以
  • 基于ArUco的视觉定位

    参考如下 博客 基于ArUco的视觉定位 1 3 https www freesion com article 4265319144 基于ArUco的视觉定位 4 https www pianshen com article 2491452
  • 伺服电机和步进电机的区别

    硬件型号 xff1a 三菱伺服电机HG KR43J 系统版本 xff1a 电机系统 1 控制的方式不同 步进电机 xff1a 通过控制脉冲的个数控制转动角度的 xff0c 一个脉冲对应一个步距角 伺服电机 xff1a 通过控制脉冲时间的长短

随机推荐

  • ubutnu更换国内源后,更新一直出现404,Not Found的问题

    1 问题 题主系统是ubuntu16 04 64位系统 尝试更换国内各种源 连ubuntu官方源都尝试了 sudo vim etc apt sources list修改为 deb https mirrors tuna tsinghua ed
  • Python+Flask实现股价查询系统。Python绘制股票k线走势

    文章目录 一 实现效果图二 实现思路1 获取数据 2 可视化数据三 源码获取 一 实现效果图 打开默认显示半年线 xff0c 可以通过可视化类型选择可视化k线图 高低点等 xff08 目前只完成了初版 xff0c 当查询的股票数据返回为空时
  • Failed to fetch http://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/main/g/gcc-5/g++-5_5.4.0-6ubuntu1~16

    今天在ubutun中在安装redis过程中 xff0c 安装gcc时遇到了Failed to fetch http mirrors tuna tsinghua edu cn ubuntu pool main g gcc 5 g 43 43
  • 切换日语输入法找不到MicrosoftIME键盘选项了

    去微软官方下载一个 Microsoft IME office 2010后 xff0c 安装解决 转载于 https www cnblogs com tupx p 3816026 html
  • msgid 属性

    Android源码中的String xml文件 xff0c msgid这个属性是干嘛的 xff1f 全局资源 xff0c 方便引用 比如在布局的text和activity中用到 转载于 https www cnblogs com Ph on
  • 2017年09月23日普级组 数列

    Description 小S今天给你出了一道找规律题 xff0c 题目如下 xff1a 有如下的数列1 xff0c 11 xff0c 21 xff0c 1211 xff0c 111221 xff0c 312211 xff0c 小S问你这个数
  • python 机器学习实战:信用卡欺诈异常值检测

    今晚又实战了一个小案例 xff0c 把它总结出来 xff1a 有些人利用信用卡进行诈骗等活动 xff0c 如何根据用户的行为 xff0c 来判断该用户的信用卡账单涉嫌欺诈呢 xff1f 数据集见及链接 xff1a 在这个数据集中 xff0c
  • Virtual Serial Port Driver 虚拟串口工具软件 使用介绍

    一般来说 xff0c 电脑的外部设备可以用过各种端口和电脑连接 常见的有USB xff0c VGA xff0c DVI等等 在工业领域或者是软件开发领域 xff0c 我们常常需要用简单低成本快捷的方式 xff0c 完成电脑和设备的连接 那么
  • Freertos 源码分析 队列queue

    队列queue xff08 零 xff09 队列的基础概念和形态 xff08 一 xff09 Freertos 队列 queue c FreeRTOS Kernel 10 4 6 include queue h Freertos队列模块包含
  • Freertos 任务TASK(一) 任务创建

    任务的创建 Freertos 的任务创建难点 1 xff09 堆栈生长的方向 2 xff09 64字节的对齐 3 xff09 任务堆栈初始化 Freertos 的任务使用任务控制块来进行管理 xff0c 是对任务的抽象 任务本身就是一段可执
  • Freertos Cortex-M3上下文切换

    上下文切换是操作系统实现虚拟化的核心功能 xff0c 操作系统对任务的管理通过上下文切换完成 Freertos 在STM32F103上的上下文切换是本文介绍的内容 STM32F103 采用 Cortex M3 内核 上下文切换的本质是对现场
  • STM32CubeMX配置freertos配置任务(一)

    使用STM32CubeMX 配置Freertos 生成一个任务点亮LED stm32cubemx STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具 xff0c 允许用户使用图形化向导生成C 初始化
  • STM32 精准采集ADC电压,误差分析

    ADC模块采集电压流程 数字世界和模拟世界的桥梁 xff0c 对于嵌入式软件而言 xff0c 大家止于采集功能的实现 本文目的在于深入理解ADC xff0c 积累技术做出更加稳定优秀的产品 STM32 大部分系列都是使用SAR 逐次逼近型电
  • STM32 编码器驱动/旋转编码器旋钮encoder

    本文已比较纯粹的方式介绍编码器和驱动的编写 编码器最少有两个输出信号 xff0c 一种典型的结构如上图所示 AB是编码器的输出引脚 当触点和黄色的金属片接触的时候信号发生跳变沿 xff0c 可以上上升沿也可以是下降沿 xff0c 具体根据A
  • UTC 转 LocalTime

    使用unsigned const char 纯碎是为了配合项目 xff0c 改成char 会比较通用些 BOOL CDllSuiteEngine Time StrToType unsigned const char lpszValue SY
  • CubeMX 图形配置工具 (UART) H743

    本文分两部分 1 图形操作步骤 2 自动生成代码结构分析 3 自动代码生成的坑 一 xff1a 使用CubeMX 配STM32H743 串口模块LPUSART 1 使能调试口 xff0c 以免使用SWD下载需要手动复位 2 配置 时钟树 x
  • LWIP (1.1) ETH Module以太网模块

    STM32 以太网 ETH模块说明 1 overview 2 ETH module in stm32h743 STM32H743 为例 开局一张图 ETHER 模块 红框所示 以STM32H743为例 32 BIt AHB为内部高速总线 D
  • UML(二)component 组件图

    组件图即是用来描述组件与组件之间关系的一种UML图 组件图在宏观层面上显示了构成系统某一个特定方面的实现结构 组件图适用于基于组件的开发模式 xff08 Component Based Development CBD xff09 xff0c
  • xilinx ZYNQ 7000 AXI GPIO

    0AXI GPIO 第一部分 PS 和 PL之间的通讯有一个接口称为AXI AXI总线具体的内容这边不去深究 xff0c 可以理解为一种特殊协议的通讯方式 AXI GPIO是什么意思 xff1f PL是FPGA它可以做成任何你想要的东西 x
  • xilinx ZYNQ 7000 XADC 片上模拟转数字模块

    上图所示 xff0c XADC 属于 PL部分的资源 XADC是一种硬逻辑实现 xff0c 位于PL功率域 PS xadc接口是PS的一部分 xff0c 可以被PS APU访问 xff0c 而不需要对PL进行编程 PL必须上电才能配置PS