主题中讨论的其他器件: LMK04828
我想将 ADC12J2700EVM 连接到 Xilinx Kintex Ulstrascale + KCU116开发板,我想以12位旁路模式运行 ADC, 然而、开发板只有4个收发器引脚通过 FMC 连接器、我仍然能够通过 FPGA 中的 JESD204b 接收器获取数据、而只有一半通道处于活动状态?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我想将 ADC12J2700EVM 连接到 Xilinx Kintex Ulstrascale + KCU116开发板,我想以12位旁路模式运行 ADC, 然而、开发板只有4个收发器引脚通过 FMC 连接器、我仍然能够通过 FPGA 中的 JESD204b 接收器获取数据、而只有一半通道处于活动状态?
您好、Jim、
所以我在这方面有些困难、您能帮我检查一下我的数据吗?
我将 JESD204B 接收器设置为在每次接收 SYSREF 时重新同步 Lmfc
DEV CLK/采样时钟以1.6GHz 的频率运行
FPGA 参考时钟为200MHz (8分频)和100Mhz (16分频)
我正在使用4个通道,我将 ADC 设置为抽取= 4,DDR =1 PS5 =1 (2.5x),因为此模式仅使用4个通道(因此收发器比特率为4Gbs)
L = 4
M = 2
f = 2
K = 32
S = 2
JESD 帧时钟=样本时钟/ S = 800MHz (这似乎是错误的、但这正是数据表所说的)
LMFC = 25MHz
SYSREF 周期= K*F*4*DEVCLK 周期= 32*2*4*0.625 = 160ns
SYSREF 频率= 6.25Mhz (1/160ns)
这意味着在 LMK0482芯片上,分频器需要设置为256,我让它以连续模式运行
去界面计算(取自 Xilinx 文档 pg066-jesd204)
Tlmfc = 40ns
Twire = 0 (假定)
ADC 特性
Ttxlmfc = 25ns
Ttxout = 32.9375ns
Ttxin = 40ns
Xilinx 上的 JESD204B
Trxlmfc = 40ns
Trxin = 150-170ns
Trxout = 0
N = 4被选择
最大延迟= 32.9375 + 0 + 170 <(((4+1)*40)-25 + 40)
最小延迟 = 32.9375 + 0 + 150 >((4*40)-25 + 40)
Tlatency = 5*40 - 25 + 40 + 40 = 255ns
你好、Jim
你好、Jim
所以我使用了错误版本的 GUI,这一点没有帮助
我可能需要与 Xilinx 谈论这一点、但我希望您也能提供帮助
因此,我在这方面取得了一些进展,我从物理层中获取数据,但我遇到了视差错误,我不能确切地确定这意味着什么。
我有一个1.6GHz 的采样时钟 ,我有 k = 32和 f= 2和 m = 2,我认为我的 LMFC 周期是25MHz,但再次不确定标准上的所有文档有多糟糕! 我从时钟控制器将 sysref 信号设置为6.25mhz (因此我每4个多帧获取一次 sysref)、我不会收到任何 sysref 捕获错误。
如果在 ADC 侧发送测试 k28.5模式、我显然会在 FPGA 中得到一个重复模式、但它不是我期望的重复模式、然后在几个时钟周期后、它将更改为另一个重复模式。
SYNC 将生效、但随后保持有效、然后 ADC 仅在正常模式下继续发送重复模式。 你有什么想法我做了什么错吗?
我认为我没有正确对齐内容、但调试接口非常困难。
查尔斯
如果 FPGA 将 SYNC 置为低电平、然后在所有通道上接收 K28.5字符、在所有通道上至少接收到4K28.5字符后 、FPGA 应发送 SYNC 高电平。 如果它不将这个高电平发送、那么问题通常是 基准时钟、SYSREF 或固件的问题。 对于上述时钟速率、LMFC 应为12.5MHz。 如果 SYSREF 为6.25MHz、则正确。 您能否验证参考时钟是否为 固件所需的正确频率?
供参考 、交换了 ADC 输出的 SerDes 数据线 P/M、因此您需要在 FPGA 中取消交换它们。
此致、
Jim
你好、Jim
收发器的参考时钟为200MHz (采样时钟除以8)、
然后、我有另一个来自 lmk04828芯片的时钟、即100Mhz (采样时钟除以16)、并且源与来自 该芯片的 SYSREF 同步、如果我将其设置为6.25Mhz、FPGA 寄存器会告诉我它能够正确捕获它
但我仍然看到视差误差、FPGA 的同步始终很低
不过我不是在旁路模式下运行,而是以4的抽取率运行这是因为它仅使用4条通道,因此 DDR =1和 PS5=1意味着每个通道的运行速率为4Gbps
我尝试在 收发器引脚上交换 p/n、但这不起作用、实际上看起来更糟、因此我认为它们是正确的
此致
查尔斯
查尔斯
为了进行完整性检查以验证 ADC 是否已正确编程、请在加载寄存器并提供时钟后、以0dBm 的功率向 VIN SMA 输入500MHz 音调。 如果 ADC 正常工作、则两个超范围 LED 都应亮起。 当您将此振幅降低至大约-3dBm 时、其中一个 LED 应关闭。 如果您将输入降低至-5dBm 或更低、两个 LED 都应关闭。
我们在采集板上使用的 Altera 固件仅需要参考时钟、根据您的设置、此频率为100MHz。 您的固件是否可能需要处于100MHz 而非200MHz?
此致、
Jim
您好、Jim、
因此、我现在对协议的理解要好得多、对协议的理解越多、我就越不明白为什么我的东西不起作用!
PHY 输出的数据错误,并产生大量视差错误。 这位于任何协议内容之前。
我希望看到 K28.5字符的"BC"重复出现、但我没有看到、而是得到了垃圾。 SYNC 为低电平、因此仍处于初始化的 CGS 阶段。
现在、有趣的是、如果我翻转 FPGA 器件中的 p 和 n 引脚并让 ADC jesd204b 发送 K28.5测试模式。 我开始得到一个更可重复的模式、比如"47"或"82"、但它仍然不是"BC"、我发现这非常奇怪。 有时我会在数据中看到"BC"、但不可靠。
如果我按照用户指南中所述的方式连接 p/n 并在 ADC GUI 中打开和关闭 jesd204b 接口,收发器就会继续向我提供垃圾,就好像它未连接一样。
然而、当引脚与所述的值反相时、如果我打开 ADC 的 jesd204b、那么我会得到一个可重复模式、如果我将其关闭、我会得到零、这是更明智的选择。
这些是我在 FPGA 中分配的引脚
SET_PROTO属性 PACKAGE_PIN A3 [GET_PORTS{x_RXP[3]}]
SET_PROTO属性 PACKAGE_PIN B1 [GET_PORTS{x_RXP[2]}]
SET_PROTO属性 PACKAGE_PIN C3 [GET_PORTS{x_RXP[1]}]
SET_PROTO属性 PACKAGE_PIN D1 [GET_PORTS{x_RXP[0]}]
SET_PROTO属性 PACKAGE_PIN A4 [GET_PORTS{x_rxn[3]}]
SET_PROTO属性 PACKAGE_PIN B2 [GET_PORTS{x_rxn[2]}]
SET_PROTO属性 PACKAGE_PIN C4 [GET_PORTS{x_rxn[1]}]
SET_PROTO属性 PACKAGE_PIN D2 [GET_PORTS{x_rxn[0]}]
与原理图相比、这是我认为正确的、但如果我反转这些、看起来更明智(尽管仍然不起作用)。
有什么想法吗?
这是芯片范围
在此采集期间、SYSREF 被关闭
此致、
查尔斯
查尔斯
请尝试以下操作: 对 ADC 进行编程、使其以最低采样率运行。 接下来、使用速度示波器探针、并使用电路板底部靠近 ADC 的电容器探测串行器/解串器通道。 当 SYNC 为低电平时、K28.5字符(0xBCBC)应该一直从所有通道中发出。 当串行器/解串器速率较低时、使用示波器探针很容易观察到这一点。 请参阅随附的文档、了解在8b/10b 模式下这应该是什么样的。 我还随附了一个调试文档、该文档可能会有所帮助。
此致、
Jim
e2e.ti.com/.../K28.pptxe2e.ti.com/.../JESD204B-Bring-UP-and-Debug.pptx
查尔斯
如果使用4倍抽取率、则需要对 NCO 进行编程以获得有效输出。 将从输入音调中减去 NCO 频率。 因此、如果您以1Gsps 采样、ADC 输出数据速率将为250MHz。 第一个奈奎斯特区域将为125MHz。 如果输入200MHz 音调、则将 NCO 设置为100MHz 以获得 100MHz 输出。 请尝试一下。
请注意、如果通道被交换、器件将通过 CGS (SYNC 返回高电平)、因为这不会改变 K28.5模式。 我们过去已经这样做了。
此致、
Jim
查尔斯
作为完整性检查、对 ADC 进行编程后、为其提供500MHz @ 2dBm 的 IF。 您应该会看到两个超范围 LED 亮起。 缓慢降低该输入的振幅、直到两者都关断。 我想这大约是-5dBm。 这是一个用于验证 ADC 板是否正常工作的良好测试。
使用 ADC GUI 时、请确保在4倍抽取率 DDR P54模式下对 ADC 进行编程。 开始向 ADC 发送音调后,您需要设置 NCO,使音调落在 ADC 的频带内(0-200MHz)。
此致、
Jim
查尔斯
我建议让 FPGA 保持同步为低电平并监控 ADC 输出通道。 保持 SYNC 低电平、直到所有四个通道 发送有效的 K28.5字符。
完成此步骤后、让 FPGA 将 SYNC 置于高电平。 使用 Chipscope 在 SYNC 的上升沿触发。 SYNC 变为高电平后的下一个 LMFC 上升沿之后、 应启动 ILA 数据序列。 在 ILA 序列期间监视四个通道。 您应该开始看到附件中数据看起来熟悉的数据。
此致、
Jim
查尔斯
SYSREF 看起来是正确的。 您是否对 LMK 进行了正确编程、以便为 FPGA 提供100MHz 参考时钟?
HD 是高清的。 如果样本跨越多个通道、则需要将其设置为"1"。 否则、它将设置为"0"。 由于样本会经过所有8个通道、因此应在旁路模式下将其设置为"1"。
保持 SYNC 高电平的构建将不起作用。 这必须变为低电平才能建立 CGS。 一个选项是使寄存器控制同步 输出、以便您可以通过寄存器写入将其发送为低电平或高电平。 您不想重新加载固件、因为这会断开链接。
此致、
Jim
你好、Jim
您能解释一下为什么在芯片范围上看到"bcbcbc"、然后在下一个时钟上看到对我来说毫无意义的"bcbcff35"! 它作为视差误差和"不可插入"误差发出、这是 FPGA 上的 jesd204b phy 的结果、因此它位于 SYSREF 所对应的弹性缓冲器之前。
对我来说、这表明 SerDes 系列本身存在问题、如果我错了、我真的想知道我为什么错了!!! 我现在对此感到非常沮丧。
我在另一个星期就开始工作了,我不能从我的一生中想到我所做的与我现在做的不同的事情。
下面是另一个捕获,显示了我何时偶尔获取 jesd204b 内核来发布数据,尽管它是错误的。
缓冲器延迟设置为0。
此致
Charls
您好、Jim、
因此、目前我仅在 Rx 侧使用一个通道。
当然、ADC 设置为旁路模式下的8个通道、但现在我不关心我接收到的数据、我只是希望建立链路。 您在前面的帖子中说过,这只是意味着我只会在该通道上收到样片,现在这是可以的。
我们正在准备一个新的 FPGA 板、该板应支持全部8通道运行(直到新年为止)。
我将尝试将缓冲器延迟设置为 K、这至少是我可以尝试的。
此致、
查尔斯
您好、Jim、
我尝试将缓冲器设置为 K 延迟、它没有任何影响。
在当前的过程中、我没有走太远、我在 PHY 输出的线路上获得了大量随机数据。
然后、我有时会看到 SYNC 变为高电平、但会再次快速下降、因为输出的数据始终不像我预期的那样为"bc"。
我的最新理论是我们的 Xilinx 评估板有问题,我可以尝试另一种方法,看看这是否解决了问题。
我认为当 ADC 和 FPGA 尝试进行代码组同步时,我应该只在行中看到"bc",但我看不到这一点,我看到"bc",但与我不期望的许多其他值混合
此致、
查尔斯