TI中文支持网
TI专业的中文技术问题搜集分享网站

ads62p49和FPGA间的接口问题

大家好,我遇到一个问题: ads62p49输出ramp型测试码,但是FPGA无法准确可靠地接收到该测试码。

FPGA用的是Xilinx 的Kintex7, FPGA的数据捕获时钟是245MHz; ads62p49的采样时钟也是245MHz。 两者都来自cdce72010时钟芯片。

ADC配置成DDR模式,7对差分信号到达FPGA管脚后依次经过了 IBUFDS、IDelay2、 Iserdes模块,转换为SDR信号。

现在的问题是,让ADC输出测试码,通过调节IDelay2的延时,恢复出的SDR信号与测试码也是一致的,但偶尔会出现误码!

这是我在逻辑分析中观察到其中一个的误码情况:

恢复出的SDR信号:0 1 2 3… 16383,  0 1 2 3 … 16383,  0 1 2 3… 16383,  0 1 2 3…4095  4264 4097 .. 

也就是说,FPGA在连续接收到3*16384 + 4095个正确码的情况下,突然接收到了一个错误码4264(理论值应该是4096)。

进一步分析一下这个错误码产生的原因:

也就是说chb[1] chb[2] chb[3] 这3个数据通道上的数据传输发生了错误。以chb[1]来看, 正确的序列应该是 11110000, 而FPGA接收到的序列却变成了11110100。 个人认为引起错误的原因可能有2个:

1) ADC芯片产生的ramp测试码出错了;

2) FPGA内部的时钟jitter或者skew导致的;

如果是原因2),那么接收到的序列应该是 11111000才对,而不该是11110100。

那么貌似只剩下原因1)了,难道ADC的测试码会有误码吗?

被这个问题卡了好几天了,请大家帮忙看看吧,多谢!

user151383853:

能否先测试一下通信波形, 这么高的频率信号, 传输比较容易失真变形导致错误。

liu meiyan:

回复 user151383853:

谢谢!
您的意思是用示波器看看ADC的信号吗?
示波器引出两根探针,分别接到chb[i]_p和chb[i]_n上面,然后示波器内阻设置成50欧姆,查看示波器的信号。 请问是这样操作吗?

赞(0)
未经允许不得转载:TI中文支持网 » ads62p49和FPGA间的接口问题
分享到: 更多 (0)