赞
踩
实现Vivado工程为"ps_xadc"
ZYNQ7020的XADC内嵌在PS端,容许CPU或其他主机连接XADC,而不用使用PL端。XADC最大采样率为1MSPS,精度为12bits,内置电压和温度传感器,可监测芯片的电压及温度信息。
电压传感器可监测芯片的有VCCINT、VCCAUX、VCCBRAM等,VP_0和VN_0为一对专用的ADC模拟输入口。VAUXP[*]和VAUXN[]也是ADC输入口,但是不用做ADC输入口时,可用作普通IO使用。在AX7015/AX7021/AX7010/AX7020/AX7Z035/AX7Z100开发板上这些引脚均未引出。因此本实验主要测量温度传感器Temperature Sensor以及电压传感器Supply Sensors的值。
本实验介绍三种读取传感器信息的值的方法。首先需要新建Vivado工程,同样以"ps_hello",工程为基础,另存一个工程。
一、打开工程,连接好开发板电源,JTAG下载器,并将开发板调整为JTAG模式,开发板上电,点击
Open Hardware Manager,再点击Auto Connect,发现硬件。
二、右键选择XADC,新建Dashboard
修改名称,点击OK
默认会有温度
点击+将电压值添加到窗口
显示如下
此方法优点是图形化显示,较为直观,但缺点是无法得到数据值。下面介绍PS读取XADC信息。
三、打开SDK,新建应用程序名字为"ps_xadc_test”
main.c
/* ------------------------------------------------------------ */ /* Include File Definitions */ /* ------------------------------------------------------------ */ #include <stdio.h> #include "xil_printf.h" #include "xadcps.h" #include "sleep.h" #include "xscugic.h" #define ADC_DEVICE_ID XPAR_PS7_XADC_0_DEVICE_ID XAdcPs XAdc ; int main() { u16 raw_data ; float Temp ; float vccint ; float vccaux ; float vccbram ; float vccpint ; float vccpaux ; float vccpdro ; XAdcPs_Config *Config ; int Status ; Config = XAdcPs_LookupConfig(ADC_DEVICE_ID) ; Status = XAdcPs_CfgInitialize(&XAdc, Config, Config->BaseAddress) ; if (Status != XST_SUCCESS) return XST_FAILURE ; while(1) { raw_data = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_TEMP) ; Temp = XAdcPs_RawToTemperature(raw_data) ; raw_data = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_VCCINT) ; vccint = XAdcPs_RawToVoltage(raw_data) ; raw_data = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_VCCAUX) ; vccaux = XAdcPs_RawToVoltage(raw_data) ; raw_data = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_VBRAM) ; vccbram = XAdcPs_RawToVoltage(raw_data) ; raw_data = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_VCCPINT) ; vccpint = XAdcPs_RawToVoltage(raw_data) ; raw_data = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_VCCPAUX) ; vccpaux = XAdcPs_RawToVoltage(raw_data) ; raw_data = XAdcPs_GetAdcData(&XAdc, XADCPS_CH_VCCPDRO) ; vccpdro = XAdcPs_RawToVoltage(raw_data) ; printf("Temperature : %.2fC\t\nVCCINT : %.2fV\t\nVCCAUX : %.2fV\t\n" "VBRAM : %.2fV\t\nVCCPINT : %.2fV\t\nVCCPAUX : %.2fV\t\nVCCPDRO : %.2fV\t\n", Temp, vccint, vccaux ,vccbram,vccpint, vccpaux,vccpdro) ; sleep(1) ; } }
点击Run Configure
点击run
连接好串口,COM2,波特率115200
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。