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

做网站教程视频广州网络推广seo

做网站教程视频,广州网络推广seo,wordpress增加赞赏,网络推广如何收费版本:Vivado2020.2(Vitis) 任务:通过 PS XADC 接口读取XADC测量的芯片温度、供电电压,并通过串口打印出来 目录 一、介绍 二、硬件设计 三、软件设计 四、效果 一、介绍 XADC(Xilinx Analog-to-Digital…

版本:Vivado2020.2(Vitis)

任务:通过 PS XADC 接口读取XADC测量的芯片温度、供电电压,并通过串口打印出来

目录

一、介绍

二、硬件设计

三、软件设计

四、效果


一、介绍

       XADC(Xilinx Analog-to-Digital Converter)是 ZYNQ SoC 内部集成的 12 位精度、1 MSPS(每秒百万采样) 的模数转换模块,可直接测量芯片内/外部的模拟信号,无需外接 ADC 芯片, 是 Zynq SoC 中 PL 端已有的硬核模块,可以被 PS端直接访问和控制。在 7 系的 FPGA 中,XADC 提供了 JTAG 和 DRP(dynamic reconfiguration port)接口,用于访问其 内部的状态和控制寄存器。在 ZYNQ-7000 SoC 器件中,XADC 增加了一个 PS-XADC 接口,用于 PS 中的软件控制 XADC 模块。

XADC核心功能

功能说明
片上传感器监测实时测量 ZYNQ 的 芯片温度、供电电压(如 VCCINT、VCCAUX)
外部模拟信号采集通过专用模拟输入引脚(VP/VN)连接外部传感器(如温度、光敏、压力传感器...)
报警机制可设置阈值触发中断(如温度超限报警)
自动化校准出厂预校准,支持动态校准偏移误差

如图所示为XADC模块的系统框图(右侧为内外部模拟输入):

        PL-JTAG 接口可以用于开发工具(Vivado)控制 XADC 模块,包括读取芯片温度信息、供电电压。 而运行在 PS 中的软件则可以通过两种方式与 XADC 进行通信:

         1、 通过 PS-XADC 接口,此时不需要对 PL 进行编程配置;

         2、 通过 PS 到 PL 的 AXI Master 接口(M_AXI_GP),需在 PL 中调用 AXI XADC IP 核。

        在使用 PS 控制 XADC 时,如果对应用的性能要求较高,则推荐第二种方式,它使用的是一个并行的 数据路径(DRP 接口)。而 PS-XADC 接口同 PL-JTAG 接口一样,使用的是串行的数据路径,相对较慢。 不过使用 PS-XADC 接口不占用 PL 的资源,也不需要对 PL 进行编程,只需要对 PL 部分供电即可。 需要注意的是,PL-JTAG 接口与 PS-XADC 接口不能同时使用,而 XADC 可以在 PL-JTAG 接口(或 PS-XADC 接口)与 DRP 接口之间进行仲裁。

注意:XDAC模拟输入电压峰峰值最大值需查看用户手册,我用到的zedboardf开发板最大1V,因为模拟电压信号不好产生,所以就跟着网上例程直接用 XADC 测芯片温度、供电电压。

二、硬件设计

        (1)系统框图如图所示,系统搭建用到了UART(用于Debug)、DDR(存储器):

        注意:XADC 是 Zynq SoC 中 PL 端已有的硬核模块,属于 Zynq 芯片的硬件资源,不占用可编程逻辑(LUT/FF)资源,可以被 PS端直接访问和控制,所以不需要对 PL 端进行配置。

        (2)最后整体 bd 设计部分如图所示:设计检查、Generate Output Products、 Create HDL Wrapper、(管脚约束、Gnerate Bitstream、(无PL端设计这两部忽略))、Export Hardware(不用包含比特流文件)、启动Vitis

三、软件设计

        可以打开官方提供的私有定时器的示例工程,这里可以选XADC轮询的示例工程,方便在设计时进行对照参考。同时对比中断,简单介绍一下轮询(简单来说就是主函数中主动调用函数读数据,所以相比于中断会持续占用cpu):

轮询 对比 中断

轮询(Polling)中断(Interrupt)
触发方式CPU 主动循环查询外设主动通知 CPU
实时性延迟高(依赖查询频率)延迟低(立即响应)
CPU 占用高(持续占用)低(事件触发才处理)
适用场景简单任务、低实时性需求高实时性、多任务系统
#include "xil_printf.h"
#include "stdio.h"
#include "xparameters.h"
#include "xadcps.h"
#include "sleep.h"//===================用户自定义宏===================//
#define XADC_DEVICE_ID		XPAR_XADCPS_0_DEVICE_ID   //宏定义XADC器件ID//======================实例化======================//
XAdcPs XAdc;	//定义XADC实例//=====================函数声明=====================//
static void XADC_Init();	//声明XADC初始化函数
static void XADC_Print();  	//声明XADC读取并打印内部数据函数//======================主函数======================//
int main()
{xil_printf("PS XADC Test\r\n");//XADC初始化XADC_Init();while(1){//延时3秒,每3秒读一次数据sleep(3);//XADC读取并打印内部数据XADC_Print();}return 0;
}//==================XADC初始化函数==================//void XADC_Init()
{//定义器件ID(指针类型)XAdcPs_Config *ConfigPtr;//根据器件ID,查找器件配置信息ConfigPtr = XAdcPs_LookupConfig(XADC_DEVICE_ID);//初始化XADCXAdcPs_CfgInitialize(&XAdc, ConfigPtr,ConfigPtr->BaseAddress);//(可选)XADC自检int Status = XAdcPs_SelfTest(&XAdc);if (Status != XST_SUCCESS) { xil_printf("XADC Self Test Error! \r\n"); }//设置 XADC 操作模式为“默认安全模式”XAdcPs_SetSequencerMode(&XAdc, XADCPS_SEQ_MODE_SAFE);
}//============XADC读取并打印内部数据函数============//void XADC_Print()
{//定义原始数据u32 temp_rawdata; 		//温度原始数据u32 vcc_pint_rawdata; 	//PS 内核电压 原始数据u32 vcc_int_rawdata; 	//PL 内核电压 原始数据//定义转换后数据float temp; 			//温度float vcc_pint; 		//PS 内核电压float vcc_int; 			//PL 内核电压//获取原始温度传感器数据,并转换成温度信息 (调用自带的数据转换函数,参数为XADC实例指针、数据通道号)temp_rawdata = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_TEMP);temp 		 = XAdcPs_RawToTemperature(temp_rawdata);//获取 VCCPINT 传感器数据,并转换成电压信息vcc_pint_rawdata = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_VCCPINT);vcc_pint 	     = XAdcPs_RawToVoltage(vcc_pint_rawdata);//获取 VCCINT 传感器数据,并转换成电压信息vcc_int_rawdata = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_VCCINT);vcc_int 		= XAdcPs_RawToVoltage(vcc_int_rawdata);//打印温度、电压信息(用printf函数来打印,头文件stdio.h)printf("Temp    %f C \n",   temp_rawdata,     temp);printf("VccPint %f V \n",   vcc_pint_rawdata, vcc_pint);printf("VccInt  %f V \r\n", vcc_int_rawdata,  vcc_int);
}

实际上可读取的电压数据还有很多,这里示意两个。

四、效果

        上板串口打印Debug信息,此后每隔3s打印读取到的温度和电压数据

http://www.dtcms.com/wzjs/103646.html

相关文章:

  • 高佣联盟做成网站怎么做网站搜索引擎优化的方法
  • 做网站要主机还是服务器如何发布自己的html网站
  • 河南建设网站西安seo优化
  • 如何做国外网站郑州seo顾问阿亮
  • 网站商务通登陆不上站内营销推广方式
  • 电子商务网站建设 教案百度网页版 入口
  • 建网电气有限公司优化问题
  • 文山网站建设公司百度指数在线查询工具
  • wordpress插件放到哪seo推广平台
  • 网站开发问题优化防控举措
  • 用服务器做网站seo优化排名营销
  • 建筑公司企业使命和愿景大全百度seo优化网站
  • 做动态网站必学seo规范培训
  • 网站建设模板报价seo流量增加软件
  • 做动图的网站36优化大师下载安装
  • 互联网营销的方法有哪些优化网站找哪家
  • 厦门市建设工程安全质量协会网站百度收录最新方法
  • 温岭手机网站建设全国最好网络优化公司
  • 网站建设项目描述范文推56论坛
  • wordpress邮件客户端专业seo整站优化
  • 如何上传网站企业网络推广的方法有哪些
  • 可以拔下来做的网站吗百度推广运营怎么做
  • wordpress如何发布文件seo技术外包公司
  • 苏州网站建设外贸如何营销推广
  • 怎么做徐州市环保局网站备案表网络最有效的推广方法
  • 网站建设费一般摊销几年做公司网站
  • 新闻网站建设评比规则搜索引擎网站入口
  • 最好用的网站推广经验百度霸屏推广一般多少钱
  • 做网站做小程序推广外链免费发布平台
  • 网站安全检测官网google play下载官方版