没有合适的资源?快使用搜索试试~ 我知道了~
首页XILINX7代XADC中文手册.pdf
XILINX7代XADC中文手册.pdf
需积分: 5 366 浏览量
更新于2023-05-27
评论
收藏 1.23MB PDF 举报
对xilinx XADC 官方文档UG480和PG091进行翻译整理,重点放在介绍和理解 XADC 控制寄存器的操作方式。最后展示了在 Vivado 和 SDK 开发环境下的一个简单 XADC 应用实例。 希望此文能帮助有兴趣的读者能在较短时间内能掌握和应用 XADC。
资源详情
资源评论
资源推荐

1
XADC 功能介绍和应用指南
宋祈真
2019-01-25
一、XADC 功能介绍
XADC 是内嵌在 Xilinx 7 系列 FPGA 芯片和 Zynq7000 可编程 SOC 芯片中的的高速 AD 转换器模块。
该模块内有两个 12 位 AD 转换器(确保 10 位可靠精度),采样速率达到每秒 1 兆次。XADC 可测量多
达 17 个外部模拟通道的输入信号,同时还能对芯片的温度和供电电压进行监测和报警。XADC 能自动
循环扫描所有的模拟输入通道,大大地减轻了主机的负担。特别是 Zynq7000 芯片内部集成了 2 个 ARM9
处理机芯片、FPGA 逻辑和 AD 转换器,丰富的资源构成完整的信号采集和处理系统,特别适合对精度
要求不是太高但对成本又较敏感的测控仪器仪表等方面的应用,既可简化设备又可提高性价比,因
此很受业界欢迎。
有关 XADC 的官方资料主要包含在
Xilinx
的“
7 Series FPGAs XADC Guide
(
UG480
)”和“
XADC
Wizard v3.3 LogicCORE IP Product Guide
(
PG091
)”等技术文档中。这些资料内容丰富,但也比
较庞杂,用户需要耗费大量时间才能消化理解。同时已有资料对应用实例的介绍又不太详尽。笔者
主要对这两份资料的内容进行了梳理和精简,省略了仿真和 JTAG 方面的内容,重点放在介绍和理解
XADC 控制寄存器的操作方式。最后展示了在 Vivado 和 SDK 开发环境下的一个简单 XADC 应用实例。
希望此文能帮助有兴趣的读者能在较短时间内能掌握和应用 XADC。
本文在短时间内完成,加上笔者水平有限,错误和缺漏难于避免,敬请原谅和批评指正。
UG480
图 1-1 XADC 原理框图
本文的参考资料主要来自
Xilinx
的
UG480
和
PG091
等技术文档,为便于读者对照原文查阅更详
细的信息,本文引用的表格或插图仍采用原文的编序。

2
1. XADC 的属性介绍
内含两个 12 位、每秒 1 兆采样(1MSPS)的 AD 转换器 ADC A 和 ADC B。
XADC 含片上温度传感器,可测试和监控芯片的温度,实现超温报警(OT)。默认的超温报警温
度是 125°C,用户可以在发生过热报警时及时切断芯片供电以避免损失。用户还可以设定自己
定义芯片工作温度范围,当芯片温度超出用户设定的界限时予以报警。
XADC 内含 6 个芯片供电电压传感器,可对芯片供电电源监测和报警。(PL 是 FPGA 逻辑电路,
PS 是 CPU 系统)被监测的电源电压如下:
VCCINT: PL 内核电压(1.0V)
VCCAU: PL 辅助电压(1.8V)
VCCBRAM: PL BRAM 电压(1.0V)
VCCPINT: PS 内核电压(1.0V)
VCCPAUX: PS 辅助电压(1.8V)
VCCO_DDR: DDR RAM 电压(1.5V)
用户可以为这些电压设定上、下限,当电压超出用户设定的界限时报警。
XADC 有一路专用的差分模拟输入通道 Vp/Vn,如果不使用 Vp/Vn 时,应该将 Vp/Vn 连接到 GNDADC
引脚。
XADC 另有 16 路辅助模拟输入通道。这些输入通道与 Vp/Vn 不同之处是,他们的引脚是模拟/数
字复用引脚。如果其中某个引脚被用做模拟输入,该引脚的数字 I/O 功能就不可再用。如果辅
助模拟输入通道所在的 BANK 中混合有模拟和数字 I/O,该 I/O BANK 必须由满足所用数字 I/O
标准所需的电压供电。
辅助模拟输入通道既可以设置成单极性输入,也可以设置成双极性输入。但所有片上传感器(温
度和电压)都采用单极性工作模式。
XADC 可对 ADC 转换结果自动计算和输出平均值,以抑制信号和 PCB 板上的噪音。用户可从无平
均值计算、16 个样本平均,64 个样本平均或 256 个样本平均等四个选项中选取。
XADC 允许延长采样充电时间,将采样充电时间从 4 个 ADCCLK 延长至 10 个 ADCCLK。当信号源内
阻或模拟通道多路器内阻过大影响采样电容获得的信号精度时,加长采样时间可以提高精度。
XADC 内部含有 1.25V 的参考电压源。将 VREF_P0 接模拟地 GNDADC 就能启用片上参考电压。如果
希望得到更高的精度,可以将 VREF_P0 连接外部精密电压参考 IC。
XADC 可基于已知的参考电压源对传感器、ADC A 和 ADC B 的偏移和增益偏差进行校准计算,得
到的校准系数存储在 XADC 的只读状态寄存器中。随后可以利用这些系数对 ADC 转换结果进行补
偿。

3
XADC 有 128 个 16 位寄存器(见图 1-1),其中前 64 个(DADDR[6:0]=00h~3Fh)为只读寄存器。
用来存放片上传感器、专用模拟通道和辅助模拟通道的当前模数转换结果,同时存储芯片自本
次上电以来测量到的最高和最低电压值,分别用 ADC A 和 ADC B 测量的电源传感器偏差、以及
ADC A 和 ADC B 的自身偏移和增益的校准系数。最后一个地址(3Fh)Flag 寄存器存储当前报警
状态。
地址 40h 至 7Fh 是可读/写寄存器。其中前 3 个是 XADC 配置和控制寄存器、接着的 8 个是辅助
模拟通道选择寄存器、再后面是 16 个报警阈值预设寄存器。用户通过配置这些寄存器来控制
XADC 的行为。剩下的其他寄存器用于工厂测试或未定义,用户不必关注。
为了减轻 PS 处理器或 FPGA 中其他控制系统的负担,XADC 提供了一个叫作 Sequencer 的模拟通
道自动扫描器。Sequencer 按预定的顺序自动地逐个接通用户选择的模拟输入通道,执行 ADC
转换并把结果存进 XADC 的只读状态寄存器。
FPGA 或 Synq7000 中的 PL 逻辑可以通过 16 位宽的动态重配置接口(DRP)访问 XADC 的状态和控
制寄存器,通过 JTAG 口也可以访问这些寄存器。但 Zynq7000 的 PS 是通过 AXI4-Lite 或 AXI4
Stream 接口访问 XADC 寄存器的。在 Vivado 开发环境中用户不需要关心 PS 和 XADC 互联的细节,
只需在运行 XADC Wizard 时选择 AXI4-Lite 或 AXI4 Stream 就可以了,系统将自动建立两者的
互连关系。
2.XADC 的引脚
所有 XADC 的专用引脚都在 BANK0 中,引脚名都以_0 后缀。
UG480
图 1-2 展示了 XADC 的 2 种基
本连接方法。XADC 由 VCCAUX(1.8V)供电,VCCAUX 上的低通滤波器用来滤除高频干扰以提高 ADC 性
能。
图中左边的电路采用外部 1.25V 精密参考 IC 做参考电压,外部参考能提供更好的精度和热漂移
性能。铁氧体磁珠用于隔离 GNDADC 和系统地 GND。
UG480
图 1-2 右边电路采用片上自带的参考电压
源。将 VREFP 引脚接到 GNDADC 引脚就能激活片上参考源。如果只需进行基本的片上温度和电源监测,
片上参考已能提供良好性能。100 nF 退耦电容器应尽可能靠近芯片的 BGA 引脚,以减小寄生电感。
UG480 图 1-2 XADC 引脚

4
UG480
表 1-1 XADC 引脚
引 脚
用 途
说 明
V
CCADC_0
供电电压
这是 XADC 中 ADC 和其他模拟电路的模拟电源引脚。它可
以连接到 1.8V VCCAUX 电源;但是,在混合信号系统中,
电源最好应连接到独立的 1.8V 模拟电源(如果可用)。
此引脚不应连接到 GND。即使 XADC 不用,也应将该管脚
连接到 VCCAUX 上。
GNDADC_0
供电电压
这是 XADC 中 ADC 和其他模拟电路的接地参考引脚。如图
1-2 所示,它应通过隔离铁氧体磁珠与系统接地 GND 连接。
在一个混合信号系统中,如果可能的话,此引脚应该连
到在一个模拟的接地平面上,在这种情况下就可以不需
要铁氧体磁珠。即使 XADC 不用,也应始终将此引脚连接
到 GND。
V
REFP_0
参考电压输入
此引脚可连接到外部 1.25V 精确参考 IC(±0.2%或 12 位
的±9 LSB),以获得 ADC 的最佳性能。应将其视为模拟
信号,与 V
REFN
信号一起提供 1.25V 差分电压。
如果将此引脚连接到 GNDADC(见图 1-2),芯片内参考源
(12 位时为±1%或±41 LSB)被激活。如果没有提供外
部引用,这个引脚应该应始终连接到 GNDADC。
V
REFN_0
参考电压输入
该引脚应与外部 1.25V 精确参考 IC(±0.2%)的地引脚
相连,以获得最佳的 ADC 性能。应将其视为模拟信号,
与 VREFP 信号一起提供差分 1.25V 电压。即使没有提供外
部参考,此引脚也应始终连接到 GNDADC。
V
P_0
专用模拟输入
这是专用差分模拟输入通道(VP/VN)的正输入端。如果
不使用,该引脚应连接到 GNDADC。
V
N_0
专用模拟输入
这是专用差分模拟输入通道(V
P
/V
N
)的负输入端。如果
不使用,该引脚应连接到 GNDADC。
_AD0P_ to
_AD15P_
辅助模拟输入
/数字 IO
这些是多功能引脚,可以支持 16 个模拟的正输入端,也
可以用作常规数字 I/O(见图 1-1)。当不被用作模拟输
入时,这些引脚可以像其他任何数字 I/O 一样使用。
_AD0N_ to
_AD15N_
辅助模拟输入
/数字 IO
这些是多功能引脚,可以支持 16 个模拟的负输入端,也可
以用作常规数字 I/O(见图 1-1)。当不被用作模拟输入时,
这些管脚可以像其他任何数字 I/O 一样使用。

5
二、XADC 的状态和控制寄存器
XADC 的所有功能都是通过状态和控制寄存器实现的。了解这些寄存器的位定义功能可以帮助用
户理解 Vivado 的 XADC Wizard 中的设计界面和掌握应用 XADC IP 的 API 函数。下面做详细介绍。
1. XADC 的状态寄存器
XADC 的前 64 个地址位置(DADDR[6:0]=00h 到 3Fh)是只读状态寄存器。用来存储片上传感器和
外部模拟通道的模数转换结果。每个传感器和外部模拟输入通道都有一个唯一的通道地址,每个模
拟通道的测量结果存储在通道选择寄存器(48h 和 49h)中指定地址的状态寄存器中(见
UG480
表
4-1)。
例如,ADC 多路复用器通道 0(温度传感器)的测量结果存储在通道地址 00h 的状态寄存器中。
来自 ADC 多路复用器信道 1(VCCINT)的结果存储在地址 01h。
状态寄存器还存储从设备加电或 XADC 的最后一次用户重置开始记录的芯片上传感器的最大和最
小测量值。表 3-1 定义了状态寄存器。
UG480
表 3-1 状态寄存器(只读)
名
地址
说明
温度
00h
温度传感器测量结果存储在此位置。数据放在在 16
位寄存器的最高 12 位。
V
CCINT
01h
VCCINT 测量结果存储在该位置。数据放在在 16 位寄存
器的高 12 位。
V
CCAUX
02h
VCCAUX 测量结果存储在该位置。数据放在在 16 位寄存
器的高 12 位。
V
P
/V
N
03h
专用模拟输入通道上的转换结果存储在此寄存器中。
数据在 16 位寄存器中与最高位对齐的。
V
REFP
04h
参考输入 VREFP 上的转换结果存储在此寄存器中。数
据在 16 位寄存器中与最高位对齐的。
V
REFN
05h
参考输入 V
REFN
上的转换结果存储在此寄存器中。该
通道在双极模式下进行测量。通过双极模式下的测量,
可以测量到 0V(V
REFN
)左右的微小正负偏移。电源传
感器也用于测量 VREFN,因此 1 LSB=3V/4096。数据在
16 位寄存器中是最高位对齐的。
V
CCBRAM
06h
VCCBRAM 电源监视器测量结果存储在该位置。数据在 16
位寄存器中是最高位对齐的。
未定义
07h
这些位置未使用,并且包含无效数据。
Supply A offset
08h
用 ADC A 计算的传感器偏移校准系数存储在此位置。
ADC A offset
09h
ADC A 的偏移校准系数存储在此位置。
剩余35页未读,继续阅读









安全验证
文档复制为VIP权益,开通VIP直接复制

评论0