三款LVDS ADC的使用总结

前言

两年时间使用了三款ADC:AD9653,AD9266,AD3442,在此记录下坑及使用经验。

 

参考文档

xapp524-serial-lvds-adc-interface.pdf

 

所需用到的原语:IDDR、ISERDESE2等

 

1.AD9653:ADI公司的采样率高达125M,16bit ADC

时序图1:

 

 

 时序图2:

 

 

 根据时序图,可使用ISERDESE2进行解串。

对于xilinx7系列的FPGA,DDR模式的ISERDESE2支持4、6、8bit,级联支持10、14bit。对于SDR模式的ISERDESE2支持2,3,4,5,6,7,8bit。

则对于16bit的ADC,可使用SDR或DDR模式,且ADC需配置为双线,即为时序图1的时序。

 

2.AD9266:16bit ADI公司的高达80M采样的ADC

时序图1:

 

 

 可以看到数据是并行的8个通道,DDR。则可以使用IDDR进行接收。

 

3.AD3442:TI公司14bit高达50M采样的ADC。

时序图1:

 

 

 

时序图2:

 

 

 这里简单起见,使用时序图1 进行ISERDESE2解串处理,14bit的数据可用级联DDR模式。

参考文档中的图,下述图主要用于调整经过IBUFIO或BUFR的时钟边沿跟经过IBUFDS的时钟边沿对齐。使得LVDS数据和时钟均只经过IBUFDS,保证相位关系。

 

 然后用ISERDESE2接收数据,根据实际情况是否使用IDELAY模块对数据进行延时,使得数据尽量对齐中心边沿,当然如果PCB保证了数据和时钟的等长处理则更佳,只需考虑高低温情况的偏斜。

需考虑bit调整,其次需要字节对齐,因为解串出来的数据第一个bit是随机的,不一定就是所需的数据,需要进行字节训练,保证解串出的值的正确性。

上述两个步骤操作完成后,就可以放心采集数据了。

 

 

Thinking:高速率情况应该也可使用双线级联DDR14bit模式,对数据进行拆分。

 

使用IDDR和ISERDESE2主要关注时钟与数据的关系,要开发者保证时序关系确保接收数据的准确性。

 

以上。

 

posted @ 2020-07-08 14:25  小翁同学  阅读(3995)  评论(0编辑  收藏  举报