特权同学玩转Zynq连载39——[ex58] 基于Zynq的XADC采集控制实例
1 功能概述
Xilinx FPGA器件特有的XADC(Xilinx Analog-to-Digital Converter)模块创新性的将模拟信号处理混合到FPGA器件中,便于对板级模拟信号采集、处理以及对板级温度、电源电压的监控。
XADC功能如图所示,内部有专门的温度传感器和供电传感器,用于监控FPGA器件本身的工作状态,也提供了1个独立的模拟电压输入通道(VP_0/VN_0)和16个复用的模拟电压输入通道(VAUXP/VAUXN)。内部的2个ADC有12bit位宽和1MSPS采样速率,可以外接精密基准电压源作为参考电压,基本能够满足一般应用。此外,也有专门的控制接口可以和FPGA逻辑互连,便于编程控制。供电电压监控的电压输入范围是0~ 3V,模拟电压输入通道的电压输入范围是0~1V。
集成XADC功能,需要例化XADC的IP核,然后通过访问XADC内部的寄存器实现模拟电压采集方式的设置,并读取转换后的模拟电压数据。XADC内部寄存器的映射如图所示。
在Zynq中,XADC模块通过AXI GP总线连接到PS。XADC相当于重新被封装为一个标准的AXI总线外设,它的寄存器映射关系也有所变化。在xilinx官方文档pg091-xadc-wiz.pdf中可以看到重新映射的寄存器地址。
关于Zynq的XADC应用,推荐大家参考xilinx下述3个文档。
● pg091-xadc-wiz.pdf
● ug480_7Series_XADC.pdf
● ug585-Zynq-7000-TRM.pdf的Chapter 30 XADC Interface
本实例工程对应zstar_ex58。硬件上,XADC通过AXI接口连接到PS;PS编程读取XADC内部的温度和供电电压值,通过UART定时打印转换的最终