ZYNQ XADC使用
1.1 XADC基本资源介绍
下图为 XADC 的一个内部实现框图,从图中可以看出 ADC 分为 12 位的 A 和 B 两个,故称为双 12 位。其中ADC A 可以对供电电压进行采样,供电电压包括 VCCINT、VCCAUX、VCCBRAM,其中 Zynq-7000 系列的芯片还支持对 VCCPINT、VCCPAUX 和 VCCO_DDR 的采样,还包括温度的采样和外部模拟输入的采样。ADC B 只能对外部模拟输入进行采样转换。
模拟输入管脚 XADC 可以采样的外部模拟输入包括一对差分专用模拟输入信号端(Dedicated Analog)和 16 对差分辅助模拟输入信号端(Auxiliary Analog),其中 16 对模拟信号端在 XADC 中不被使用时,可以当做普通 IO口来使用。辅助模拟输入信号在 Vivado 和 ISE 中使用是不同的:在 ISE 中辅助模拟输入不需要任何的用户定义约束(包括管脚位置约束和 IO 电平约束),而在 Vivado 里,辅助模拟输入管脚必须加管脚位置约束,而且必须选择合适的 IO 电平约束。有些辅助输入管脚对 7 系列的某些芯片是不支持的,可以通过原理图来查看哪些管脚可以使用。
产品说明链接:
https://docs.xilinx.com/v/u/en-US/pg091-xadc-wiz
https://docs.xilinx.com/v/u/en-US/ug772_xadc_wiz
https://docs.xilinx.com/r/en-US/ug480_7Series_XADC/About-This-Guide
ZYNQ SoC 的 XADC 模块包括两个 12 位的模数转换器,转换速率可以达到 1MSPS(每秒一百万次采样)。它带有片上温度和电压传感器,可以测量芯片工作时的温度和供电电压。用户可以设置报警阈值,用来检测温度过高或者供电电压异常等事件。除此之外,通过 XADC 内部的模拟多路复用器,它还支持最多17 路外部模拟输入信号的测量,且支持单极、双极和差分等信号类型。在 7 系列的 FPGA 中,XADC 提供了 JTAG 和 DRP(dynamic reconfiguration port)接口,用于访问其内部的状态和控制寄存器。在 ZYNQ-7000 SoC 器件中,XADC 增加了一个 PS-XADC 接口,用于 PS 中的软件控制 XADC 模块。
在图 中 PL-JTAG 接口可以用于开发工具(Vivado)控制 XADC 模块,包括读取芯片温度信息等。而运行在 PS 中的软件则可以通过两种方式与 XADC 进行通信:
1、 通过 PS-XADC 接口,此时不需要对 PL 进行编程配置;(慢速)
2、 通过 PS 到 PL 的 AXI Master 接口(M_AXI_GP),此时需要在 PL 中调用 AXI XADC IP 核。(快速)
在使用 PS 控制 XADC 时,如果对应用的性能要求较高,则推荐第二种方式,它使用的是一个并行的数据路径(DRP 接口)。而 PS-XADC 接口同 PL-JTAG 接口一样,使用的是串行的数据路径,相对较慢。不过使用 PS-XADC 接口不占用 PL 的资源,也不需要对 PL 进行编程,只需要对 PL 部分供电即可。需要注意的是,PL-JTAG 接口与 PS-XADC 接口不能同时使用。而 XADC 可以在 PL-JTAG 接口(或 PS-XADC 接口)与 DRP 接口之间进行仲裁。
1.2 使用XADC测量外部模拟信号
以下介绍都来自UG480。
https://docs.xilinx.com/r/en-US/ug480_7Series_XADC/About-This-Guide
1.2.1 引脚分配
外部输入引脚对应着BANK35中后缀 _AD0P_35, _AD0N_35,…_AD15P_35, _AD15N_35,这意味着只有这些已经设定好的引脚可以测外部的模拟信号。
建议使用两种配置。
在左边,XADC由VCCAUX(1.8V)供电,并使用一个外部的1.25V参考源。外部参考源在精度和热漂移方面提供了最好的性能。铁素体珠用于隔离模拟电路和系统接地的接地基准。一个用于VCCAUX电源的低通滤波器同样可以提高ADC性能。有关更多信息,请参见第6章“应用程序指南”。共享或公共地阻抗是在模拟电路中引入不必要噪声的最常见方法。
也可以为adc使用片上参考。要启用芯片上的参考源,VREFP引脚必须连接到地面,如图1-2右侧所示。如果只需要基本的片上热和电源监测,则使用片上参考可以提供良好的性能。用户在使用外部和片上参考源时,应查阅各自的数据表,以查看精度规范。表1-1列出了与XADC相关联的引脚和推荐的连接性
除了单一专用模拟输入对(VP/VN)外,外部模拟输入使用双用途输入/O。当XADC在设计中实例化时,这些FPGA数字I/O被单独指定为模拟输入。本文档将这些模拟输入作为辅助模拟输入。最多可提供16个辅助模拟输入。通过将XADC原语上的模拟输入连接到设计的顶层来启用辅助模拟输入。当作为模拟输入启用时,这些包球无法作为数字I/o使用。还可以通过JTAG TAP启用辅助模拟输入预配置(例如,对于PCB诊断)(有关更多信息,请参见JTAG DRP命令)。
与ISE工具相比,Vivado®工具对辅助模拟输入的支持有所不同。辅助模拟输入不需要任何用户指定的约束或引脚位置。ISE外部辅助输入不需要将I/O标准设置添加到约束文件(UCF)或PlanAhead™设计工具中。在Vivado设计工具中,必须将辅助模拟输入分配到相关的引脚位置。
1.2.2 模拟输入信号
ADC的模拟输入采用差分采样方案来减少共模噪声信号的影响。这种共模抑制方法提高了在有噪声的数字环境中的ADC性能。图2-4显示了差分采样方案的优点。公共地阻抗(RG)将噪声电压(开关数字电流)耦合到系统的其他部分。这些噪声信号可以是100 mV或更多。对于adc,这个噪声电压相当于数百个lsb,从而导致较大的测量误差。差分采样方案在两个模拟输入(VP和VN)下同时对信号和任何共模噪声电压进行采样。共模信号被有效地减去,因为跟踪-保持放大器捕获VP和VN之间的差,或VP之间的差减去VN。为了利用高共模拒绝率,用户只需要在差分配置中连接VP和VN。
详细信息,参考UG480,page-20