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.

[参考译文] ADC12QJ1600:Microchip Polarfire FPGA JESD204B 配置

Guru**** 1624165 points
Other Parts Discussed in Thread: ADC12QJ1600
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1371018/adc12qj1600-microchip-polarfire-fpga-jesd204b-configuration

器件型号:ADC12QJ1600

工具与软件:

您好!

我想搭配 ADC12QJ1600 ADC、为 PolarFire FPGA 配置微芯片 JESD204B 内核。

硬件的局限性是我最多只能将4个通道连接到 FPGA。

第一步是 设置 ADC、仅启用一个内核(A)、使其他内核(B、C、D)断电。

如果我选择 JMODE9 (8位、2通道、8B/10B 编码)、应该如何配置 FPGA JESD 内核?

/Mikael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Mikael、

    请查看 ADC 数据表中有关 JESD 模式参数的详细信息请参阅表9-15、这些将为您提供填充您将显示的此 GUI 的所有参数。

    表9-29还将向您展示如何在 JESD 通道上打包数据

    此外、如果您只有4个通道可用、ADC 则有 JMODE、它将支持4个通道的所有通道。

    此致!


    Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢 您的答复。

    问题是、我有四核器件、但首先我只想使用第一个内核(A)。 其他内核将断电。

    因此、我将仅连接前两个通道。

    JMODE9是否仍可实现这一点? 或者我是否必须连接全部8个通道才能使该模式正常工作?

    /Mikael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Mikael、

    这不是问题、ADC 将在此模式下工作。 要启用该功能、您必须在 ADC 寄存器0x209中启用"single_ch_EN"寄存器、并且从 JESD 的角度来看、您的配置将随通道数的变化而略有不同。 ADC 数据表中有一个部分专门讨论了 ADC 单个通道的 JESD 配置。 请参阅表9-17 (下面的屏幕截图)在其中、您会看到 JMODE9非常相似、但现在它仅适用于 ADC 的单个通道且仅使用两个通道。 请使用这些 JESD 参数来配置 FPGA。

    此致!

    Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    因此、我根据您的建议将 ADC 配置为单核。

    和 FPGA 内核计算如下:

    采样频率1500MHz 基于 SE_CLK 和 PLLREFO 输出上的50MHz XO、为 FPGA 提供相同的参考时钟。
    SYNC 引脚用于同步。
    未使用 SYSREF 和 TMSTP 输入。

    器件是根据数据表第10.3节中定义的顺序设置的。

    我正在监视由 FPGA 内核生成的 SYNCSE 信号、我预期该信号会 先低电 平再高电平、但它卡在低电平。

    ADC 的一些状态寄存器读数(如果您想查看其他寄存器、请告诉我):

    JESD_STATUS (0x208)- 0x01
    INIT_STATUS (0x270)- 0x01
    VCO_CAL_STATUS (0x5E)- 0x03
    CAL_STATUS (0x6A)- 0x0C
    ALARM_STATUS (0x2C1)- 0x08 (启动时清除位后)

    似乎无法通过同步步骤??
    为什么 SPLL_LOCKED 未处于活动状态? 它是否基于 根据 JESD_STATUS 寄存器锁定的 CPLL?

    谢谢!

    此致

    Mikael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Mikael、

    您能否确认您使用的是 ADC EVM 还是定制电路板?

    是的、SPLL 应该锁定、它源自器件时钟、在这种情况下、该时钟来自 CPLL。 在对 FPGA 进行编程之前、您可以读取 JESD_STATUS 寄存器(0x208)的值。

    您将遇到的另一个问题是、从 ADC 到 FPGA 的时钟输出可能是与 FW 所期望的频率不同的频率、您是否能够与 JESD 内核时钟共享 XCVR 参考时钟应该是的频率以及 JESD 内核时钟应该是什么? 上述任何一项都不正确都会导致链接挂起。

    谢谢!

    Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否确认您使用的是 ADC EVM 还是定制电路板?

    这是定制板。

    [报价 userid="566984" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1371018/adc12qj1600-microchip-polarfire-fpga-jesd204b-configuration/5245984 #5245984"]是的、SPLL 应该锁定、它源自器件时钟、在本例中源自 CPLL。 在对 FPGA 进行编程之前、您可以读取 JESD_STATUS 寄存器(0x208)的值。[/QUOT]

    ADC 器件引脚:

    PD -高电平(器件上电)
    PLL_EN—高电平
    PLLREF_SE—高电平
    SYNCSE -低
    CALTRIG -低
    CLKCFG[0..1]-低电平

    在任何 ADC SPI 配置之前读取 JESD_STATUS (FPGA 仍处于编程状态):

    JESD_STATUS (0x208)- 0x05

    我的 SPI 配置可能有什么问题(由于 SPLL 在上电时锁定)吗?

    您会遇到的另一个问题是、从 ADC 到 FPGA 的时钟输出可能与固件预期的频率不同、您能否分享 XCVR 参考时钟以及 JESD 内核时钟应该是什么? 其中任何一个错误都将导致链接挂起。

    我在下面发布了收发器内核的配置页面:

    /Mikael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Mikael、

    JESD_STATUS 为0x05很好、这表示 cpll 和 spll 都正在锁定、但也表示 ADC 的 SYNC 保持低电平、这表明存在 FPGA FW 问题。

    您的问题是、对于 RX 结构时钟、时钟设置为 SerDes/80、对于 RX JA 时钟、时钟设置为 SerDes/40。 您能否确认如何将这些参考时钟生成到 FPGA。 我猜这些是错的。

    此致!

    Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="566984" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1371018/adc12qj1600-microchip-polarfire-fpga-jesd204b-configuration/5260842 #5260842"] jesd_status 值为0x05表示 cpll 和 spll 均已锁定、但也表示 ADC 的同步被保持在低电平、这表明存在 FPGA 固件问题。

    这是一种误解。

    JESD 状态仍为0x01、因此 S-PLL 未锁定、只有 C-PLL。

    这对我来说是一个谜! 我看不到 S-PLL 锁为什么 会失败?

    [报价 userid="566984" url="~/support/data-converters-group/data-converters/f/data-converters-forum/1371018/adc12qj1600-microchip-polarfire-fpga-jesd204b-configuration/5260842 #5260842"]您认为、对于 RX 结构时钟、时钟的时钟设置为 SerDes/80、对于 RX JA 时钟、时钟的时钟设置为 SerDes/40。 您能否确认如何将这些参考时钟生成到 FPGA。 我猜这些是错误的。

    我将 SE_CLK 输入与50 MHz XO 配合使用、

    它用作 C_PLL 的基准以生成7500 MHz 采样时钟。

    50 MHz XO 还通过 PLLREFO 输出路由到 FPGA、并在 FPGA IP 内核配置中用作"RX CDR 参考时钟"。

    FPGA IP 内核设置:

    "RX JA 时钟频率"是根据设置为7500的"RX 数据速率"自动计算的。

    "RX JA 时钟频率"是否必须与"RX FPGA 接口频率"匹配? 我想不是吗?

    此致

    Mikael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Mikael、

    如果您只启动 ADC 而不使用 FPGA、则应锁定 SPLL。 如果链路未能接通、这也将是低电平。

    我不确定生成7500 MHz 采样时钟的意思、我想您在引用该器件中的 VCO。 这分为该器件的实际时钟速率、最大值为1.6GHz

    RX 数据速率应为 SerDes 链路的线速率、在此模式下可计算为 FS*R

    其他两个时钟具有不同用途。 一个将用作参考时钟、将 FPGA 内部的 PLL 锁定到链路的线路速率、另一个将用作 JESD 内核时钟。 我不熟悉 microfire IP 的配置和设计如何工作、因此您必须跟他们跟进、以准确了解比率应该是多少。 通常、对于8b10b 模式、核心时钟的一些默认值为线速率/40或线速率/80。

    此致!

    Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我设法使它工作。 初始化是 ADC 配置问题。

    感谢您的支持!