一、XADC简介
1.1、特性
Xilinx系列的FPGA中都包含了一个内置的XADC,我们可以通过这个XADC进行一些精度不高的外部模拟信号采样以及FPGA片内传感器信号采集。XADC的分辨率为12位,采样率为1MSPS。
1.2、结构框图
- 两片XADC,ADC A可用于片内传感器采集(温度、参考电源电压),也可用于外部模拟信号采集。ADC B只能用于外部模拟信号采集。
- 1个专用模拟输入通道和16个复用模拟输入通道
- 基准源可选:内部基准源和外部基准源
- 对外接口DRP可通过JTAG或者FPGA内部逻辑进行控制
1.3、XADC接口介绍
- 初始化接口:
信号名 | 方向 | 功能描述 |
---|---|---|
di_in[15:0] | input | DRP的输入数据总线。 |
daddr_in[6:0] | input | DRP的地址总线。 |
den_in | input | DPR的使能信号 |
dwe_in | input | DRP的写使能信号 |
drdy_out | output | DRP的数据准备好信号 |
do_out[15:0] | output | DRP的输出数据总线 |
dclk_in | input | DRP的输入时钟 |
reset_in | input | XADC的复位信号,高电平有效 |
vp_in/ vn_in | input | 专用模拟输入通道,可设计为差分模拟信号输入,当设计使用XADC功能但不用VP/VN时,应该将这两个引脚接地 |
VAUXP[15:0]/VAUXN[15:0] | input | 16个复用的模拟输入通道,可设计为差分模拟信号输入 |
ot_out | output | 过温报警输出信号 |
channel_out[4:0] | input | 通道选择输出信号。当前ADC转换的输入MUX通道选择,由该接口输出提供给用户查看。 |
eoc_out | output | ADC转换完成信号。当测量值被写入状态寄存器时,该信号在ADC完成转换之后拉高 |
eos_out | output | 时序结束信号。自动通道序列中,当最后一个通道的数据被写入状态寄存器时,该信号转为高电平。 |
busy_out | output | ADC忙信号。该信号在ADC转换时为一直为高电平。 |
寄存器接口:
XADC一共有128个寄存器,前64个(00H ~ 3FH)为只读寄存器,后64个(40H~7FH)为可读写的控制寄存器。一般我们用前32个只读寄存器比较多。
ADC通道选择寄存器:
可以看到ADC模拟通道选择的值与对应通道存放数据的状态寄存器的地址相同。
二、硬件电路
2.1、基准电源
XADC的所需要的基本外围电路如图所示。XADC的基准源可使用外步基准源来实现,基准源的电压为1.25V;也可以选择使用内部基准源,外围电路直接将VREFP和VREFN接地即可。
2.2、模拟输入通道
XADC模拟信号输入方式有单极性和双极性两种。XADC默认的方式为单极性输入,fpga片上所有传感器的工作模式为单极性输入。
- 单极性输入: 当使用单极性输入时,输入电压范围为0V ~ 1V,对应ADC编码范围为000h~FFFh,量化分辨率为1V / 212=244uV。
在单极性输入模式,Vp必须为正,Vn连接到模拟地或者共模信号。Vn连接到共模信号时,该信号电压范围应该为0V0.5V(即Vp与Vn的共模电压范围),由于Vp与Vn的差模电压范围为0V1V,所以在单极性输入模式下,Vp的输入电压最高可达1.5V。
- 双极性输入: 当使用双极性输入时,差分输入电压范围为-0.5V ~ +0.5V,XADC编码采用补码格式,对应编码范围为800h ~ FFFh、000h ~ 7FFh。量化分辨率为1V/212=244uV。
文章出处登录后可见!
已经登录?立即刷新