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

8 - PS XADC接口实验

文章目录

  • 1 实验任务
  • 2 系统框图
  • 3 软件设计

1 实验任务

本实验任务是通过PS侧的XADC接口,读取PL侧的XADC硬核测量的芯片温度、供电电压等信息, 并通过串口打印出来。

2 系统框图

在这里插入图片描述

3 软件设计

注意事项:无。

/***************************** Include Files ********************************/
#include "stdio.h"
#include "xparameters.h"
#include "xadcps.h"
#include "xstatus.h"
#include "sleep.h"
/************************** Constant Definitions ****************************/
#define XADC_DEVICE_ID 		XPAR_XADCPS_0_DEVICE_ID
/**************************** Type Definitions ******************************/

/***************** Macros (Inline Functions) Definitions ********************/

/************************** Function Prototypes *****************************/
int XadcInit(XAdcPs* XadcInstPtr);
/************************** Variable Definitions ****************************/
XAdcPs XadcInst;
/****************************************************************************/

int XadcInit(XAdcPs* XadcInstPtr)
{
	//
	int Status;
	XAdcPs_Config* XadcConfigPtr;
	//
	XadcConfigPtr = XAdcPs_LookupConfig(XPAR_XADCPS_0_DEVICE_ID);
	if (XadcConfigPtr == NULL) {
		return XST_FAILURE;
	}

	Status = XAdcPs_CfgInitialize(XadcInstPtr, XadcConfigPtr, XadcConfigPtr->BaseAddress);
	if (Status != XST_SUCCESS) {
		return XST_FAILURE;
	}
	//
	XAdcPs_SetSequencerMode(XadcInstPtr, XADCPS_SEQ_MODE_SAFE);
	//
	return XST_SUCCESS;
}

int main()
{
	//
	int Status;

	u32 TempRawData;		// 温度			原始数据
	u32 VccPintRawData;		// PS侧内核电压	原始数据
	u32 VccPauxRawData;		// PS侧辅助电压	原始数据
	u32 VccoDdrRawData;		// PS侧DDR电压	原始数据
	u32 VccIntRawData;		// PL侧内核电压	原始数据
	u32 VccAuxRawData;		// PL侧辅助电压	原始数据
	u32 VccBramRawData;		// PL侧BRAM电压	原始数据

	float TempRealData;		// 温度			真实数据
	float VccPintRealData;	// PS侧内核电压	真实数据
	float VccPauxRealData;	// PS侧辅助电压	真实数据
	float VccoDdrRealData;	// PS侧DDR电压	真实数据
	float VccIntRealData;	// PL侧内核电压	真实数据
	float VccAuxRealData;	// PL侧辅助电压	真实数据
	float VccBramRealData;	// PL侧BRAM电压	真实数据
	//
	printf("PS XADC Test\n");
	//
	Status = XadcInit(&XadcInst);
	if (Status == XST_FAILURE) {
		printf("PS XADC Initialization Failed.\n");
	}
	//
	while(1) {
		sleep(5);
		//
		printf("\n\n");
		// 获取温度
		TempRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_TEMP);
		TempRealData = XAdcPs_RawToTemperature(TempRawData);
		printf("温度 = %f C.\n", TempRealData);
		// 获取PS侧内核电压
		VccPintRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCPINT);
		VccPintRealData = XAdcPs_RawToVoltage(VccPintRawData);
		printf("PS侧内核电压\t\t= %.3f V.\n", VccPintRealData);
		// 获取PS侧辅助电压
		VccPauxRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCPAUX);
		VccPauxRealData = XAdcPs_RawToVoltage(VccPauxRawData);
		printf("PS侧辅助电压\t\t= %.3f V.\n", VccPauxRealData);
		// 获取PS侧DDR电压
		VccoDdrRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCPDRO);
		VccoDdrRealData = XAdcPs_RawToVoltage(VccoDdrRawData);
		printf("PS侧DDR电压\t\t= %.3f V.\n", VccoDdrRealData);
		// 获取PL侧内核电压
		VccIntRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCINT);
		VccIntRealData = XAdcPs_RawToVoltage(VccIntRawData);
		printf("PL侧内核电压\t\t= %.3f V.\n", VccIntRealData);
		// 获取PL侧辅助电压
		VccAuxRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VCCAUX);
		VccAuxRealData = XAdcPs_RawToVoltage(VccAuxRawData);
		printf("PL侧辅助电压\t\t= %.3f V.\n", VccAuxRealData);
		// 获取PL侧BRAM电压
		VccBramRawData = XAdcPs_GetAdcData(&XadcInst, XADCPS_CH_VBRAM);
		VccBramRealData = XAdcPs_RawToVoltage(VccBramRawData);
		printf("PL侧BRAM电压\t= %.3f V.\n", VccBramRealData);
	}
	//
	return 0;
}

相关文章:

  • Java 大视界 -- Java 大数据机器学习模型的可解释性增强技术与应用(107)
  • nist关于rsa中p,q的要求
  • 【数据挖掘】Pandas
  • 【开源免费】基于SpringBoot+Vue.JS网络海鲜市场系统(JAVA毕业设计)
  • 看得见摸得着的AI:具身智能
  • 【Java】多线程篇
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_fd_info
  • redis slaveof 命令 执行后为什么需要清库重新同步
  • 阿里云oss文件上传springboot若依java
  • 用C语言实现一个链表(四)
  • 深度学习原理与Pytorch实战
  • VS Code 如何搭建CC++开发环境
  • 【C语言】字符函数与字符串函数
  • 【动手实验】TCP半连接队列、全连接队列实战分析
  • 军事理论综合版参考答案
  • 计算机三级网络技术备考(3)
  • 大白话React 虚拟 DOM,好处在哪里?跟vue有什区别
  • Linux上用C++和GCC开发程序实现两个不同MySQL实例下单个Schema稳定高效的数据迁移到其它MySQL实例
  • Linux 检测内存泄漏方法总结
  • linux中断调用流程(arm)
  • 建设工程质量协会网站/学网络营销有用吗
  • 企业微信有哪些功能/关键词优化报价查询
  • 建设部幼儿园网站首页/新闻发稿软文推广
  • 北京网站建设报价/产品推广的目的和意义
  • 忻州网站建设培训/seo培训学院官网
  • 新网站优化怎么做/怎么建立自己的网站平台