欢迎FPGA工程师加入官方微信技术群
AD和DA调试总结
一、ADC芯片调试
1.ADC芯片功能理解
ADC,模数转换器,功能是把模拟电压转换成数字量,把要测的电压那根线,连接到ADC的用来测电压的引脚上,ADC模块就会检测到这个电压,并且自动的转换成一个数字,我们读出这个数字,就知道这个数字和电压的对应关系。每个独立的ADC芯片都有一个分辨率指标,一般分辨率有8位,10位,12位,16位,24位等。8位分辨率的最大值就是255,范围是0~255,那么16位就是65536,范围就是0~65535。
用俩款芯片进行举例:AD9467和AD9640。
ADC9467:
是一款16位的采样率在250MSPS,芯片结构图如下。VIN+/VIN-是模拟的输入,clk+/clk-是对模拟信号进行采样的时钟。D15+/D15-~D0+/D0-为转换出来的数据,DCO+/DCO-为转换后根据数据出来的时钟信号。
芯片根据电压的转换进行模拟到数字的转换。下图中一个DCO时钟周期采样得到16位有效数据,在芯片手册中可以读到从AD9467被锁定的数据信号必须在DCO的上升沿和下降沿双倍速率的抓取。参看Figure2图中所画。
根据上图我们在FPGA程序中将一组数据引脚 利用IBUFDS原语将数据进行差分转单端,在利用IDDR将单端信号打成双倍数据的结果分发下去,例如引脚0的被分到位号0和8,引脚1被分到位号1和9。但实际0引脚位号应被分到0和1,则在外层模块 再将数据位置颠倒过来。将8对引脚都按下述代码转换。
将DCO的时钟信号进行下述代码处理。进来的DCO差分信号先利用IBUFGDS进行差分转单端,随后进行