7.1XADC基本结构及寄存器_第1页
7.1XADC基本结构及寄存器_第2页
7.1XADC基本结构及寄存器_第3页
7.1XADC基本结构及寄存器_第4页
7.1XADC基本结构及寄存器_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章

FPGA进阶——XADC、BRAM原理及电压表、示波器设计7.1

XADC基本结构及寄存器XADC逻辑结构XADC对外连接说明XADC端口XADC状态寄存器和控制寄存器操作模式XADC操作时序7.2应用XADC实现多路电压采集及显示生成XADCIP核实例使用XADCIP核实现XADC序列模式访问模块A/D序列采集和显示实现序列采集及显示测试7.3应用XADC及BRAM实现多通道示波器块储存器BRAM原理块内存生成IP的使用及仿真验证多通道示波器的设计思路显示内存设计及其访问模块构建及仿真波形发生器模块设计及仿真VGA显示驱动模块设计及仿真加入逻辑分析仪模块及顶层模块实现功能测试关于XADC:ADC用于将模拟信号转化为数字信号。

每个Xilinx7系列FPGA具备2个双12位1MSPS(每秒钟采集1百万次)的模数转换器XADC。XADC功能存在于所有Artix®-7,Kintex®-7,Virtex®-7,andZynq®-7000器件,另外,部分的Spartan®-7系列器件也具备XADC。接下来分别从XADC的逻辑结构、对外连接说明、端口、寄存器、操作模式、操作时序来简单介绍XADC及如何使用。7.1XADC基本结构及寄存器7.1.1XADC的逻辑结构1为温度传感器。2为电压传感器。3为参考电压,当使用内部参考源时,产生1.25V的参考电压。4和5为多路选择器,选择16路辅助模拟输入通道及1路常规通道送到2个ADC(6和7)。8为2个寄存器,一个是控制寄存器,一个是状态寄存器,都是64个半字的寄存器。7.1.2XADC对外连接说明所有XADC专用引脚位于区0中,因此这些管脚具有_0后缀。除了专用模拟输入对(VP/VN)外,还可使用外部模拟输入双用途I/O。当XADC在设计中实例化时,这些FPGA数字I/O指定为模拟输入。将这些模拟输入称为辅助模拟输入,即_AD0P_到_AD15P,_AD0N_到_AD15N,最多可提供16个辅助模拟输入。通过连接XADC上的模拟输入来启用辅助模拟输入。当启用模拟输入时,这些管脚不可用作数字I/O。另外,通过JTAGTAP预配置也可以启用辅助模拟输入。所有模拟输入通道都是差分的,需要两个管脚。通常,辅助模拟输入分配在BANK15和35上。然而,在开发时需要参考7系列FPGA封装和引脚排列产品中的引脚分布信息。具备模拟能力的I/O在说明文件中的I/O名称上具有ADxP或ADxN后缀。例如,辅助模拟输入通道8具有关联的封装管脚名称AD8P和AD8N。管脚类型说明VCCADC_0电源电源高电平输入1.8VGNDADC_0电源电源地VREFP_0参考电压参考电压高电平输入,当使用内部参考,连接到地VREFN_0参考电压参考电压地VP_0专用模拟输入连接到模拟输入的正极,如果不用就应该接到地。VN_0专用模拟输入接模拟地_AD0P_到_AD15P辅助模拟输入/数字I/O这些是16个多功能引脚,可以用于模拟输入正端或常规的数字I/O。FPGA的I/O管脚如果具备模拟输入的功能,在它的管脚名称上就应该有_ADxP,例如IO_L1P_T0_AD0P_35可作为辅助模拟输入管脚VAUXP[0]。_AD0N_到_AD15N辅助模拟输入/数字I/O这些是16个多功能引脚,可以用于模拟地或常规的数字I/O。FPGA的I/O管脚如果具备模拟输入的功能,在它的管脚名称上就应该有_ADxN,例如IO_L1P_T0_AD0N_35可作为辅助模拟输入管脚VAUXN[0]。7.1.2XADC对外连接说明

7.1.3XADC端口

端口:动态可配置端口DPR、控制和时钟端口、模拟输入端口、报警端口、状态端口。7.1.3XADC端口

要对XADC进行设计及实现,需要使用VIVADO的IP核,必须熟悉XADC的端口。下表为关键的端口及说明:管脚输入输出说明DI[15:0]输入DRP的16位数据输入总线DO[15:0]输出DRP的16位数据输出总线DADDR[6:0]输入DRP的地址总线,7位地址可以访问的范围是128个寄存器。DEN输入DRP使能DWE专用模拟输入DRP写使能DCLK专用模拟输入DRP时钟DRDY输出DRP数据准备好RESET输入异步复位信号CONVST输入AD转换启动信号。该信号仅在事件驱动模式有效。CONVSTCLK输入AD转换启动时钟。VP,VN输入专用的模拟差分输入对。当不使用的时候,必须接地。VAUXP[15:0]VAUXN[15:0]输入辅助模拟差分输入对。ALM[7:0]输出报警输出OT输出过温报警输出MUXADDR[4:0]输出这些输出用于外部多路选择模式。指示下一要转换的通道的地址。CHANNEL[4:0]输出通道选择输出。在ADC转换结束后,当前要转换的通道的选择信号EOC输出转换结束信号EOS输出序列结束信号,当所有的通道转换完成发出该信号BUSY输出ADC忙信号。ADC转换过程或校准过程。7.1.4XADC状态寄存器和控制寄存器

如图为XADC寄存器及其接口。

对控制寄存器的设置:实现对XADC操作和控制;读取状态寄存器:获得XADC的各种状态。控制寄存器由32个16位的寄存器组成。这和DRP的16位数据总线是一致的。

通过DRP或JTAG就可以对这些寄存器进行写操作,也就是对XADC进行配置。

在FPGA最初的配置过程中,可以对这些寄存器赋初值。通过DRP接口,可以对控制寄存器进行写操作,对状态寄存器进行读操作。7.1.4XADC状态寄存器和控制寄存器

状态寄存器控制寄存器操作模式寄存器配置寄存器0的CH0~CH4配置寄存器1配置寄存器2通道定序寄存器通道选择寄存器(48H和49H)通道平均寄存器(4AH和4BH)通道模拟输入模式寄存器(4CH和4DH)采样建立时间寄存器(4EH和4FH)7.1.5操作模式

XADC包括几种最常用的操作模式。1.默认模式(SEQ3SEQ2SEQ1SEQ0=0000)。2.单序列模式(SEQ3SEQ2SEQ1SEQ0=0001)。3.连续序列模式(SEQ3SEQ2SEQ1SEQ0=0010)。4.单通道模式(SEQ3SEQ2SEQ1SEQ0=0011)。5.同时采样模式(SEQ3SEQ2SEQ1SEQ0=01XX)。6.独立ADC模式(SEQ3SEQ2SEQ1SEQ0=10XX)。7.1.6XADC操作时序

XADC的定时(timing)采用DRP时钟DCLK来同步,ADCCLK时钟是通过对DCLK的分频得到的,写42H寄存器可以修改分频值。ADCCLK是内部时钟,对外不可见,但对于描述时序是需要的。ADC可以工作在连续采样模式或事件驱动模式下,在连续采样模式下,当前AD转换周期完成后,ADC自动开始启动新的AD转换。ADC的工作有两个部分,采样和转换。在采样的过程中,获取电压值然后保持,这样在转换过程中电压是稳定的。之后进行模拟量到数字量的转换(analog-to-digitalconversion),下图连续采样模式的定时图。应用XADC实现多路电压采集及显示7.1.4XADC状态寄存器

状态寄存器:右表为按地址列出所有的状态并给出说明。(表中不列出非7系列芯片使用的寄存器。)状态寄存器地址从00H到3FH(DADDR[6:0]=00hto3Fh),一共有64个。寄

器地

址说

明Temperature00H存储芯片温度,高12位对应于芯片的温度。温度T(°C)=转换结果×503.975/4096–273.15VCCINT01H内核电压,FFFH对应3V。VCCAUX02H辅助电路电源电压,FFFH对应3V。VP/VN03H专用通道转换结果。VREFP04H参考输入VREFP电压。VREFN05H参考输入VREFN电压。VCCBRAM06HBRAM电源电压未定义07H未用SupplyAoffset08HADCA的电源校准偏移ADCAoffset09HADCA的校准偏移ADCAgain0AHADCA的增益误差未定义0BH-0CH未用VAUXP[15:0]/VAUXN[15:0]10H-1FH辅助模拟通到转换结果。Maxtemp20H芯片启动后的最高温度MaxVCCINT21H内核启动后的最高电压MaxVCCAUX22H辅助电路电源的最高电压MaxVCCBRAM23HBRAM电压的最高值Mintemp24H芯片启动后的最低温度MinVCCINT25H内核启动后的最低电压MinVCCAUX26H辅助电路电源的最低电压MinVCCBRAM27HBRAM电压的最低值SupplyBoffset30HADCB的电源校准偏移ADCBoffset31HADCB的校准偏移ADCBgain32HADCB的增益误差Flag3FH

存储状态信息。位11为1表示禁止JTAG访问。位10表示JATG访问位只读。位9位1表示使用内部参考。位3位1表示过温。B7B6B5B3B2B1B0分别对应报警输出ALM[6:0]。7.1.4XADC状态寄存器

通过状态寄存器可以获得XADC当前的工作状态,以及获取AD转换的结果。

例如,ADC通道0是对温度传感器进行采样的通道,转换结果存储在地址为00H的状态寄存器中。通道1负责对内核电压VCCINT进行测量转换,转换结果存储在地址为01H的状态寄存器中。因此,要读取芯片的温度,读寄存器00的值就可以实现。寄存器00H的温度为:温度(°C)=00H寄存器高12位值×503.975/4096–273.15。例如如果00H的高12位为9D8(十进制2520),温度为36.9度。寄存器01的内核电压计算方法为:内核电压(V)=01H寄存器高12位值×3/4096。当01H寄存器的高12位为9D8时对应的内核电压值为1V。寄

器地

址说

明Temperature00H存储芯片温度,高12位对应于芯片的温度。温度T(°C)=转换结果×503.975/4096–273.15VCCINT01H内核电压,FFFH对应3V。7.1.4XADC状态寄存器

XADC具备校准的功能,通过相应的寄存器就可以读取的校准参数。例如寄存器08H就存储了ADCA的电源偏移系数。校准寄存器如下图详细描述:ADCA的电源偏移校准寄存器地址为08H,高12位以二进制补码的形式存储了校准值,即偏移系数。对于偏移系数,例如,如果ADC的偏移是+10LSBs(最低有效位)(大约10x250μV=2.5mV),偏移系数记录的是–10LSBs即FF6h,寄存器08H的值为111111111100XXXXB。7.1.4XADC控制寄存器

XADC具备32个控制寄存器,要对XADC进行控制(配置)就需要通过写控制寄存器完成,具体来说就是通到DRP接口对这些寄存器进行写操作。控制寄存器地址从40h到5Fh。另外,在FPGA在最初配置的时候,即XADC实例化时,可以通过XADC的IP核的参数对这些寄存器进行初始化。寄存器的内容有些和操作模式有关,关于操作模式将在后续说明。控制寄存器列在下表中:寄存器地址说明Configurationregister040H配置寄存器0,详见图7-7。

Configurationregister141H配置寄存器1,详见图7-7。

Configurationregister242H配置寄存器2,详见图7-7。

Testregisters0-443H-47H测试寄存器0-4,测试寄存器的初始值是0000H,工厂测试用。Sequenceregisters48H-4FH序列寄存器。这8个寄存器用于设置采集序列,和操作模式有关。Alarmregisters50H-5FH16个警告寄存器,用于设置报警门限。7.1.4XADC控制寄存器

(1)操作模式寄存器:从40H到42H的3个控制寄存器决定了XADC的操作模式,下图为这3个寄存器的按位定义:7.1.4XADC控制寄存器

1)配置寄存器0的CH0~CH4(配置寄存器的DI0~DI4)用于在单通道模式选择ADC输入通道。下表描述了通道说明。ADC通道CH4~CH0说明00芯片温度11VCCINT22VCCAUX33VP,VN44VREFP(1.25V)55VREFN(0V)66VCCBRAM88执行校准16~3116~31辅助通道0~15VAUXP[0:15],VAUXN[0:15]CAVG为校准过程的平均抑制,当CAVG为1时将在校准过程中不执行平均。例如,如果寄存器40H的值是16'h9000,即16‘b1001000000000000,那么CAVG=1,校准过程中不执行平均。AVG1AVG0=1,每16次采样计算一次平均值。ACQ用于单通道模式,当ACQ置位,增加ADC的采样保持时间6个ADCCLK周期。EC用于切换连续采样模式或事件驱动采样模式,如果置位将工作于事件驱动采样模式,如果清0则工作于连续采样模式。BU用于单通道模式,选择是单极性或双极性操作,1对应双极性模式。MUX若置位为1将使能外部多路复用器模式。AVG0、AVG1用于设置在单通道模式或序列模式的每次平均操作的采样次数。当AVG1AVG0=0时,不执行平均;当AVG1AVG0=1时,每16次采样后进行平均;当AVG1AVG0=2时,每64次采样后进行平均;当AVG1AVG0=3时,每256次采样后进行平均。7.1.4XADC控制寄存器2)配置寄存器1主要用于报警、校准及通道序列设置:ALM6,ALM5,ALM4在图中标注有note1,表示普通的7系列芯片不存在这个功能。ALM3,ALM2,ALM1,ALM0置1对应于除能temperature(温度)、VCCINT(内核电压)、VCCAUX(辅助设备电源电压)、VCCBRAM(块内存电源电压)的超范围报警。CAL0~CAL3用于使能ADC的校准。CAL0为ADC偏移校正使能,CAL1为偏移和增益校正使能,CAL2为电源偏移校正使能,CAL3为电源偏移和增益校正使能。SEQ0~SEQ3使能通道序列功能。下表为序列操作设置说明。OT位设置为1将除能过温度信号,禁止发生过温报警。SQ3SQ2SQ1SQ0说明0000缺省设置0001单序列0010自动排序模式0011单通道模式(序列关闭)01XX同时采样模式10XX独立ADC模式11XX默认模式7.1.4XADC控制寄存器2)配置寄存器1:除了对配置寄存器的全局配置,通道设置寄存器可以配置每个通道是否加入采样序列、是否平均及是否增加额外的建立时间。自动信道序列器可以设置一系列预定义的操作模式,包括使用几个通道(包括片上传感器和外部输入),以及这些通道如何排序。当一个通道转换和存储完成,排序器会自动选择下一个通道进行转换,包括设置平均,配置模拟输入通道,设置采集所需的建立时间,并存储转换结果。在基于一次关闭设置的状态寄存器中,通过写入设置到配置寄存器1中的SEQ3,SEQ2,SEQ1和SEQ0位为0010即可设置这种模式。例如,如果寄存器41H的值是16'h2ef0,即16‘b0010111011110000,那么采样模式将采用自动排序模式。允许温度、VCCINT,VCCAUX,VCCBRAM的报警。使能ADC的各种校准。7.1.4XADC控制寄存器3)配置寄存器2主要用于除能和分频设置:PD0、PD1为XADC除能位,当PD1=PD0=1时,整个XADC都除能(不能使用);PD1=1并且PD0=0时,ADCB单独除能。CD7~CD0用于配置DRP时钟DCLK和ADC时钟ADCCLK的分频时间,即设置ADCCLK的时钟频率。当其值小于等于2时,是2分频。当其值大于2时,若其值为N,进行N分频。例如,如果寄存器42H的值是16'h0400,那么ADCA和ADCB都可以使用,ADCCLK的时钟是DRP时钟DCLK的4分频。7.1.4XADC控制寄存器

(2)通道定序寄存器(48H~4FH)使用通道定序功能的八个控制寄存器是48H至4FH寄存器。这8个寄存器可以被看作是4对16位寄存器。每对寄存器控制一个方面功能。这8个寄存器的每一位对对应了一个通道,因此是通道定序的寄存器。7.1.4XADC控制寄存器

1)通道选择寄存器(48H和49H):48H和49H配置通道的选择,配置选择哪些通道加入到采样系列中来。每对寄存器(32位)中的各个位能够进行特定的设置。因此,可以将48H和49H称为ADC通道选择寄存器,被启用的通道加入到采样序列中。两个16位寄存器用于启用或禁用相关通道。逻辑1启用逻辑0关闭。序列顺序从48h寄存器的LSB(位0)开始到寄存器49h的MSB(位15)结束。7.1.4XADC控制寄存器

1)通道选择寄存器(48H和49H):下表是48H寄存器各位的说明。这里由于7系列相对于Zynq-7000器件缺少一些采集信号,因此顺序号是不同的。另外,无效的位未列出。顺序号7系列/Zynq-7000位号ADC通道号说明1/108XADC校准

-/2513VCCPINT-/3614VCCPAUX-/4715VCCO_DDR2/580芯片温度3/691VCCINT4/7102VCCAUX5/8113VP,VN6/9124VREFP7/10135VREFN8/11146VCCBRAM假设写48H寄存器4701H,即二进制的0100011100000001,那么就是设置因为最低位为1,因此要执行XADC校准;位8为1,要执行芯片温度测量;位9为1,要执行VCCINT的测量,位10为1,要执行VCCAUX的测量;位14为1,要执行BRAM电压的测量。当序列模式测量的时候,这些通道加上在49H寄存器中设置的通道,在一个大的采集周期里,都会被测量一遍,结果写道对应的寄存器中去。然后再开始下一个测量周期。7.1.4XADC控制寄存器

1)通道选择寄存器(48H和49H):辅助通道选择寄存器的地址是49H,位和序号排列很规律,因此表格做了省略:假设写49H寄存器5180H,即二进制的0101000110000000,那么辅助通道14(通道号30)、辅助通道12(通道号28)、辅助通道8(通道号24)、辅助通道7(通道号23)也被加入采样及转换序列。顺序号7系列/Zynq-7000位号ADC通道号说明9/12016VAUXP[0],VAUXN[0],辅助通道010/13117VAUXP[1],VAUXN[1],辅助通道1…………24/271531VAUXP[15],VAUXN[15],辅助通道157.1.4XADC控制寄存器

2)通道平均寄存器(4AH和4BH):在自动通道排序模式,除了设置采集哪些通道,还可以单独的设置哪个通道需要通过多次采样求平均值(averaging)。对于需要求平均值的通道,可以设置同道平均寄存器,4AH和4BH,而这两个寄存器的对应位和片内通道选择寄存器48H和49H的顺序是一致的。对于不需要求平均的同道,设置该通道的对应位为0,那么每次采样和转换后,都修改对应的状态寄存器,而对于需要求平均的通道,只有在采样次数达到后,求平均之后才更新对应的状态寄存器。根据配置寄存器0的配置,多次采样后求平均的通道,采样的次数是16,64,256之后求平均值。7.1.4XADC控制寄存器

3)通道模拟输入模式寄存器(4CH和4DH):可以对每个通道单独设置模拟输入模式,寄存器4CH和4DH用于完成这种功能。而这两个寄存器的对应位和片内通道选择寄存器48H和49H的顺序也是一致的。然而,只有外部模拟通道可以通过这两个寄存器来配置。设置为0表示该通道采用单极性模式,1表示差分输入。7.1.4XADC控制寄存器

4)采样建立时间寄存器(4EH和4FH):通过配置寄存器0可以延长4个周期的建立时间,每个通道的而外建立时间可以通过寄存器4EH和4FH来设置,设置为1可另外延长10个ADCCLK周期的建立时间。而这两个寄存器的对应位和片内通道选择寄存器48H和49H的顺序也是一致的。7.1.5操作模式

1.默认模式(SEQ3SEQ2SEQ1SEQ0=0000):

最基本的操作模式称为默认模式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论