XILINX FPGA或者SOC集成了一个XADC模数转换控制器, XADC中包含了2个12bit 1MSPS采样率的ADC-A和 ADC-B, 这两个 ADC 通过 MUX 复用开关, 可以访问片上温度、 片上各个功能单元的电压、 以及外部模拟输入信号。

XADC 是一个集成在 XILINX FPGA 或者 SOC 中的模式转换模块, 以及控制器模块。 如下图所示, 其中包含了2 个 12bit 1MSPS 采样率的 ADC-A 和 ADC-B, 这两个 ADC 通过 MUX 复用开关, 可以访问片上温度、 片上各个功能单元的电压、 以及外部模拟输入信号。
XADC 包含了控制寄存器部分和状态寄存器部分, 通过 DRP 接口可以通过 FPGA 或者 JTAG 访问。
XADC 的参考电压可以使用外部基准或者使用内部的 1.25V 基准。如果要获得高精度的采样可以使用外部基准。

2:温度传感器
温度传感器使用以下公式计算温度, 温度传感器的结果在状态寄存器 00h 中。

3:电源传感器
XADC 电源传感器可在 3V 输入电压下生成 FFFh 的满量程 ADC 输出代码。 此电压超出允许的比如VCCINT = 1V 生成 1/3 x 4096 = 1365 = 555h 的输出代码。 XADC 监控 VCCINT、 VCCAUX 和 VCCBRAM。 测量结果分别存储在状态寄存器 01h、 02h 和 06h 中
对于 ZYNQ-7000 SOC 还能监控其他额外的三个电源分别为: VCCPINT、 VCCPAUX 和 VCCO_DDR。 这些测量值分别存储在状态寄存器 0Dh、 0Eh 和 0Fh 中。

寄存器中分状态寄存器和控制寄存器。 状态寄存器比较容易理解主要是保存了 ADC 采集到的数值, 以及 ADC 的当前工作状态,






PS 访问 XADC 的方法

PS 通过 PS-XADC 接口访问 XADC
PS 中运行的软件可以使用 devcfg 寄存器配置接口, 实现对 XADC 的访问。 DRP 命令、 地址和数据在写入 FIFO的同时, 返回读回的数据。 如下图所示:

搭建系统




