码迷,mamicode.com
首页 > 其他好文 > 详细

Zynq片内XADC应用笔记

时间:2015-07-30 17:07:38      阅读:434      评论:0      收藏:0      [点我收藏+]

标签:xilinx zynq   xadc   设计应用   高温保护   

Zynq片内XADC应用笔记

Hello,panda

应用笔记简要描述Xilinx Zynq XADC的相关资源及若干种应用。参考文档:

u    ug480:7Series_XADC.pdf;

u    xapp795:driving-xadc.pdf

u    xapp554:xadc-layout-guidelines.pdf

u    xapp1203:post-proc-ip-zynq-xadc.pdf

u    xapp1183:zynq-xadc-axi.pdf

u    xapp1182:zynq_axi_xadc_mon.pdf

u    xapp1172:zynq_ps_xadc.pdf

u    pg019:axi_xadc.pdf

u    pg091:xadc-wiz.pdf

u    ug953:vivado-7series-libraries.pdf

u    ug585:Zynq-7000-TRM.pdf

1 XADC概述

XADC是位于Zynq系列器件Pakage正中心位置的12bit 1MSPS,内置温度传感器,可实时监测片内结温,各路电压数据并可输出告警信号。图1是XADC原语结构。

技术分享

图1 XADC原语结构

由图1可以看出,XADC模拟输入包括专用模拟输入VP/VN和16组复用模拟信号输入VAUX(15:0);XADC转换结果可以通过动态重配接口(DRP)或者JTAG接口输出;告警信号可通过ALM(7:0)输出,并有专用的温度告警信号OT。

因此,控制XADC和获得结果数据最终方式必然是通过DRP或JTAG接口,无论它外面作了何种接口的封装,但最终都要转换为DRP或JTAG实现和XADC直接相连。

应用笔记仅讨论对XADC的控制和读取结果编程的内容,其他内容请参照:

①   用户手册:UG480;

②   前端模拟驱动电路设计:xapp795;

③   PCB Layout设计:xapp554。

2  XADC访问

XADC访问路径结构如图2所示,用户可以通过PL-JTAG、PS-XADC和AXI-GP Master接口访问XADC,前面两个在PL逻辑中无需调用XADC原语即可直接访问,后者需要调用XADC IP核。

技术分享

图2 XADC互联路径图

如图2,PS-XADC将DRP命令串行化后发送给XADC模块,它和PL-JTAG二选其一,通过寄存器位devcfg.XADCIF_CFG[31]来选择,DRP接口总是有效。

2.1  通过PL-JTAG访问

这种方式为系统默认方式,可以直接在Vivado的Hardware Manager中获得温度电压曲线等,如图3所示。

技术分享

图3 工具读取XADC绘制曲线界面

2.2  通过PS-XADC访问

通过PS-XADC访问先要将devcfg.XADCIF_CFG[31]置1来选择PS-XADC路径,让后将按照指定的命令格式组织“Command Register”的DRP地址和数据写到“devcfg.XADCIF_CMD_FIFO”中;读数据通过读取“devcfg.XADCIF_RDFIFO”即可,低16bit即为DRP寄存器的值。详细参见gu585第“30.3 PS-XADC InterfaceDescription”的描述。

针对这种访问方式,Xilinx提供了完整的SDK包,Linux驱动和基于Webserver的GUI图形界面。

①   SDK包资源(2015.2):在../SDK/2015.2\data\embeddedsw

\XilinxProcessorIPLib\drivers\xadcps_v2_2路径下;

②    Linux驱动和Webserver GUI参见应用文档XAPP1172。

2.3 通过AXI-GP Master访问

这种访问方式其实是将AXI接口装换为DRP接口访问XADC,需要调用逻辑IP XADC_WIZ,Vivado 2015.2的版本是V1.0,用户手册和DataSheet分别参见Xilinx官方文档:

①   pg091:xadc-wiz.pdf;

②   pg019:axi_xadc.pdf。

 

  通过AXI接口访问Xilinx官方提供了两种模型,一种是数据和命令都通过同一个AXI_GP接口读出;一个是控制命令通过AXI接口下发,数据通过AXI Stream接口直接DMA到DDR中。

2.3.1   数据和命令通过同一AXI接口

这种实现方式Xilinx提供了官方参考应用XAPP1182,实现的系统架构如图4所示。

技术分享

图4 同一AXI接口实现架构

该架构通过AXI GP接口下发指令和获取AD转换结果,并通过千兆网将Webserver GUI结果在PC机上显示。

针对这种访问方式,Xilinx提供了完整的SDK包,Linux驱动和基于Webserver的GUI图形界面。

①   SDK包资源(2015.2):在../SDK/2015.2\data\embeddedsw

\XilinxProcessorIPLib\drivers\ sysmon_v7_1路径下;

②   Linux驱动和Webserver GUI参见应用文档XAPP1182。

2.3.2  数据和命令通过不同AXI接口

这种实现方式Xilinx提供了官方参考应用XAPP1183,实现的系统架构如图5所示。

技术分享

图5不同AXI接口实现架构

该架构通过AXI GP0 Master控制XADC IP核,AXI DMA IP核等,AD转换结果通过一系列算法运算后数据通过DMA写到DDR中。最后计算的结果通过串口发送到“AMS101 evaluator GUI”显示。这种连接方式的好处是可以对AD转换数据进行一些列的处理后再写入到DDR。

针对这种访问方式,Xilinx提供了完整Linux驱动和基于built-in LabView的GUI图形界面。

Linux驱动和GUI应用参见文档XAPP1183。

2.4  片上传感器应用简要

本节描述片上传感器与AD装换结果码之间的关系及关键寄存器设置的注意事项。

2.4.1  片上传感器转换关系

片上温度传感器和电压传感器的转换对应关系如表1所示。

                       表1 片上传感器结果对应关系

传感器

AD转换结果换算

备注

温度传感器

T  = (ADC Code * 503.975)/4096 – 273.15

 

电压传感器

V  = (ADC Code / 4096)*3

 

2.4.2   自动关机保护

XADC具有自动关机保护功能,使用这项功能必须:

①   寄存器使能:OT upperalarm register(53H)的低四位必须是0011b;

②   设置门限:OT upperalarm register(53H)和OT lower alarm register(57H);

③   使能信号:设置ConfigurationRegister 1(41H)的OT位为0,或使用约束:

set_property  BITSTREAM.CONFIG.OVERTEMPPOWERDOWN Enable  [current_design]

 自动关机保护的原理是:当温度超过高温门限时,等待10ms后进入关机序列,并将GHIGH(参见UG470)信号置高,当温度低于OT lower时,GHIGH置低,同时进入启动重配状态,系统重新加载重启。

 当进入高温保护状态后,XADC自动使用内部晶振产生时钟,但其他的状态不变。为提升INL和SNR性能,可以使用约束语句来实现:

set_property  BITSTREAM.GENERAL.XADCENHANCEDLINEARITY  On  [current_design]

3  总结

总结XADC的三种访问方式,通过PL-JTAG接口访问可以在开发工具上直接得到装换结果曲线,调试用着很方便;通过PS-XADC接口访问,无需任何额外的逻辑资源即可直接得到结果,但速度相对较慢,适合系统检测获取温度电压等低速数据;通过AXI接口访问可以获得更高的访问效率,并且可以在AXI接口输出数据端添加一些列的数字信号处理算法后再将最终结果输出,可以得到最优的实现方案。

使用XADC还具有高温自动关机保护功能,能有效的保护器件高温烧毁。


有任何Zynq设计方面的问题,欢迎加入QQ群:300148644一起探讨。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Zynq片内XADC应用笔记

标签:xilinx zynq   xadc   设计应用   高温保护   

原文地址:http://blog.csdn.net/haoxingheng/article/details/47150669

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!