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-SEP:用于连接 Microchip Polarfire FPGA JESD204B 配置(8个通道)

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1449696/adc12qj1600-sep-interface-to-microchip-polarfire-fpga-jesd204b-configuration-8-lanes

器件型号:ADC12QJ1600-SEP
主题中讨论的其他器件: ADC08D1520

工具与软件:

您好!

我们使用的是 ADC12QJ1600-SEP、它通过接口与 Microchip PolarFire MPF500T-FCG1152相连。 过去、我们使用 TI ADC08D1520、但现在我们通过新硬件将板升级到 TI ADC12QJ1600-SEP。 我们对该芯片和 JESD 技术非常陌生。 我需要 ADC12QJ1600-SEP 配置方面的支持。 以下是 ADC 配置寄存器的序列和状态。 在我们开始 FPGA 端的调试之前、您能否确认并告知我是否已配置 ADC。 如果未配置、则请建议配置序列所需的更改。 基本上、我们按照以下文档中的 ADC 配置序列和步骤进行操作:

硬件将所有8个通道连接到 FPGA。

我想使用 JMODE9 (8位、8B/10B 编码、8个通道)、  

ADC 的时钟设置

ADC 的当前配置序列为:

引脚:PLL_EN ="0";PLLREF_SE ="0";接地。 CLK+/-= 1000 MHz;

步骤1。 PD ="1" (目前~40us)

步骤2。 PD ='0'(目前~40us)

步骤3:发出 SOFT_RESET:写入寄存器- CONFIG_A (地址:0x000;值:0xB0)

步骤4:等待1280ns (根据规格、需要等待750ns)

步骤5:读取 init_status:读取寄存器- init_status (地址:0x030)

步骤6:init_status 寄存器值为"0x01"(我们现在正在读取值)

步骤7:读取 VENDOR_ID:读取寄存器- VENDOR_ID (地址:0x00C)

步骤8:VENDOR_ID 寄存器值为"0x0451"(我们现在正在读取值)

步骤9:停止 JESD204:写入寄存器- JESD_EN (地址:0x200;值:0x00)

步骤10:停止校准:写入寄存器- CAL_EN (地址:0x061;值:0x00)

步骤11:默认为高性能模式

步骤12:JMODE 选择:写入寄存器- JMODE (地址:0x201;值:0x09)

步骤13:所需的 KM1值:写入寄存器- KM1 (地址:0x202;值:0x1f)

步骤14:SYNC_SEL:写入寄存器- JCTRL (地址:0x204;值:0x0B)

步骤15:JSYNC_N:写入寄存器- JSYNC_N (地址:0x203;值:0x01)

步骤16:ALM_MASK:写入寄存器- ALM_MARK (地址:0x2C2;值:0x02)

步骤17:校准设置:写入寄存器- CAL_CFG0 (地址:0x062;值:0x01)

步骤18:校准设置:写入寄存器- CAL_CFG1 (地址:0x065;值:0x01)

步骤19:启用 TRIGOUT:写入寄存器- TRIGOUT_CTRL (地址:0x057;值:0x81)

C_PLL 被禁用、因此此时不读取 VCO_CAL_STATUS 寄存器

步骤20:启用校准:写入寄存器- CAL_EN (地址:0x061;值:0x01)

步骤21:启用超范围:写入寄存器- OVR_CFG (地址:0x213;值:0x0F)

步骤22:JESD204 -启动 Re:写入寄存器- JESD_EN (地址:0x200;值:0x01)

步骤23:清除 ALM_STATUS:写入寄存器- ALM_STATUS (地址:0x2C1;值:0x3F)

步骤24:启用校准:写入寄存器- CAL_PIN_CFG (地址:0x06B;值:0x00)

步骤25:CAL_SOFT_TRIG:写入寄存器- CAL_SOFT_TRIG (地址:0x06C;值:0x00)

步骤26:CAL_SOFT_TRIG:写入寄存器- CAL_SOFT_TRIG (地址:0x06C;值:0x01)

读取所有状态寄存器

VCO_CAL_STATUS:(地址:0x05E)-  我们读取的值为(0x02)

JESD_STATUS:(地址:0x208)-  我们读取的值为(0x64)

ALM_STATUS:(地址:0x2C1)-  我们读取的值为(0x00)

CAL_STATUS:(地址:0x06A)- 我们读取的值是(0x0F)

 >>> BTW、其中是校准状态代码  

器件的值 TRIGOUT+/- 它就是这样 Expected ~156.5 MHz。

根据当前状态、我们来了解一下 ADC 的状态以及我们还需要做什么、因为 FPGA (Microchip)中的 JESD 接口会显示 CGS_ERR。 如果您认为 ADC 处于良好状态、不需要做任何事情、那么我们将研究 FPGA 方面

谢谢

Madhu

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

    您好、技术支持和论坛团队、

    7天内没有 TI 的技术人员对这一请求/问题有何回应?

    谢谢

    Madhu

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

    你好、Madhu、

    对于延迟、我们深表歉意。

    根据您共享的配置、ADC 看上去配置正确。 如果 FPGA 存在 CGS 错误、则 FPGA 可能未正确驱动与 ADC 的 SYNC。

    此致!

    Eric

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

    Eric、您好!

    感谢您的答复。

    如果我的配置设置如下所示、我应该如何以及何时驱动 SYNC 信号:

    步骤14:SYNC_SEL:写入寄存器- JCTRL (地址:0x204;值:0x0B)

    步骤15:JSYNC_N:写入寄存器- JSYNC_N (地址:0x203;值:0x01)

    非常感谢您帮助完成此设置。

    谢谢

    Madhu

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

    Eric、您好!

    我通过了 CGS_ERR 问题。 现在我看到 LINK_CD_ERR。 我在 ILA 序列期间捕获了发送的数据、数据如下所示:

    0x1C9C0000

    0x0087001F

    0x03072741

    0x0000003C

    根据上述数据、我看到它强制将 JESDV 值设置为"2"、但数据表(ADC12QJ1600-SEP SBASAQ9–2023年10月)指出、它假设始终发送"1"。

    你可以看看它,让我知道,如果我解释错了吗?

    谢谢

    Madhu

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

    Eric、您好!

    我已通过 CGS_ERR 问题。 现在我看到 LINK_CD_ERR。 我在 ILA 序列期间捕获了发送的数据、数据如下所示:

    0x1C9C0000

    0x0087001F

    0x03072741

    0x0000003C

    根据上述数据、我看到它强制将 JESDV 值设置为"2"、但数据表(ADC12QJ1600-SEP SBASAQ9–2023年10月)指出、它假设始终发送"1"。

    你可以看看它,让我知道,如果我解释错了吗?

    谢谢

    Madhu

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

    尊敬的 Madhu:

    在我看来、FPGA 端似乎有问题、您能告诉我您使用的 FPGA 以及使用的 JESD IP 吗、例如 TI、Xilinx、Intel 等  

    此致!

    Eric

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

    Eric、您好!

    我正在使用中  

    部件号:MPF500T-FCG1152I
    家庭: PolarFire.
    裸片:MPF500T
    包装:FCG1152.
    速度:标准
    核心电压:1.0
    范围:IND.

    IP 内核来自 Microchip。

    谢谢

    Madhu

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

    Eric、您好!

    下面是 JESD204 IP 输出端 ILA 的数据捕获 并对数据进行解码。 正如您看到的 JESDV = 2

    八位位组编号

    接收到的八位位组值

    位7 (MSB)

    位6

    位5

    位4

    位3

    位2

    位1

    位0 (LSB)

     

    0

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    DID = 0

    1.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    ADJCNT = 0;BID = 0

    2.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    ADJDIR = 0;PHADJ = 0;LID = 0

    3.

    X87

    1.

    0

    0

    0

    0

    1.

    1.

    1.

    SCR = 1;L = 7

    4.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    f = 0

    5.

    x1F

    0

    0

    0

    1.

    1.

    1.

    1.

    1.

    K = 31

    6.

    X03

    0

    0

    0

    0

    0

    0

    1.

    1.

    M = 3

    7.

    X07

    0

    0

    0

    0

    0

    1.

    1.

    1.

    CS = 0;N = 7

    8.

    X27.

    0

    0

    1.

    0

    0

    1.

    1.

    1.

    SUBCLASS = 1;N`= 7

    9.

    x41

    0

    1.

    0

    0

    0

    0

    0

    1.

    JESDV = 2;S = 1

    10.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    HD = 0;CF = 0

    11.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    RES1 = 0

    12.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    RES2=0

    13.

    x3C

    0

    0

    1.

    1.

    1.

    1.

    0

    0

    FCHK = 0x3C

    所有其他字段似乎都符合我的预期。

    谢谢

    Madhu

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

    Eric、您好!

    只需考虑将32位作为数据采集的数据。

    谢谢

    Madhu

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

    你好、Madhu、

    如果 ADC 通过 CGS、我认为 ADC 运行正常、因此我认为这听起来像是 JESD IP 问题。 遗憾的是、我不熟悉 Microchip JESD IP、也不具备调试功能、因此我建议联系他们以获得调试 FPGA 端的支持。

    谢谢!

    Eric

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

    Eric、您好!

    这不是 FPGA 端问题。 这在 ADC 侧、因为 初始通道对齐(ILA)序列数据从 ADC 传输到 FPGA 或 JESD 接收器。 接收方看到的是我在上一封电子邮件中提到的 ILA 配置参数。 总之、为了方便、我将所有内容都汇集在一条消息中。

    CGS--->ILA--->UserData (ADC 发送给接收者)是数据的顺序。

    如果接收器未正确地将同步传递到 ADC、就会发生 CGS 错误、我解决了该问题。

    在 ILA 期间、ADC 必须在第二个帧中发送 Configuration 参数以定义其将要进行通信的数据通信的格式。 据我所知、接收者不会更改此字段、也不能更改这些字段。 我正在查看数据、因为数据是由 ADC 传输到接收器的。

    如您所知、JESDV (0表示 A、"1"表示 B、"2"表示 C)。

    请 根据 ADC 数据表查看 JESDV 行、假设一直发送"1"、但当我查看数据时、看起来该字段显示为"2"。  我没有在 ADC 侧更改该字段的控件。 我希望您可以查看我在 ILA 中从 ADC 接收到的数据、并告诉我解码是否正确。 此外、根据我设置 ADC 的方式可得出此字段。

    我的工作模式为 JMODE = 9。 不出所料、您可以看到所有其他字段都是正确的。 ILA 第二个帧从0x1C9C 开始

    请解码上述突出显示的数据(低32位)。 我对数据进行了解码、得出了这个表。 请您再看一下、您会发现我解释错了或遗漏了一些东西。

    八位位组编号

    接收到的八位位组值

    位7 (MSB)

    位6

    位5

    位4

    位3

    位2

    位1

    位0 (LSB)

     

    0

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    DID = 0

    1.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    ADJCNT = 0;BID = 0

    2.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    ADJDIR = 0;PHADJ = 0;LID = 0

    3.

    X87

    1.

    0

    0

    0

    0

    1.

    1.

    1.

    SCR = 1;L = 7

    4.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    f = 0

    5.

    x1F

    0

    0

    0

    1.

    1.

    1.

    1.

    1.

    K = 31

    6.

    X03

    0

    0

    0

    0

    0

    0

    1.

    1.

    M = 3

    7.

    X07

    0

    0

    0

    0

    0

    1.

    1.

    1.

    CS = 0;N = 7

    8.

    X27.

    0

    0

    1.

    0

    0

    1.

    1.

    1.

    SUBCLASS = 1;N`= 7

    9.

    x41

    0

    1.

    0

    0

    0

    0

    0

    1.

    JESDV = 2;S = 1

    10.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    HD = 0;CF = 0

    11.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    RES1 = 0

    12.

    X00

    0

    0

    0

    0

    0

    0

    0

    0

    RES2=0

    13.

    x3C

    0

    0

    1.

    1.

    1.

    1.

    0

    0

    FCHK = 0x3C

    请告诉我、我应该如何处理此问题。

    谢谢

    Madhu

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

    Eric、您好!

    我提供了我能提供的所有数据、请确认并告诉我您的想法。

    谢谢

    Madhu

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

    尊敬的 Madhu:

    考虑到这是与 JESD204c 兼容的器件、JESDV 值2实际上是准确的。 数据表中列出的值1可能是一个拼写错误(我们将检查相同的内容)。  

    如果您遇到链路启动错误、请告知我。 通常、Tx 和 Rx ILA 参数之间的不匹配不会阻止链路出现、因为标准不会强制要求它们需要匹配(除非已将 Rx IP 配置为更接近 ILA 不匹配)。

    此致、

    阿米特  

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

    Eric、您好!

    感谢您的答复。 如果认为自己是 JESD204c 并为 JESDV 参数发送"2"、这是合理的。 现在、就接收器 IP 而言、它是 JESD204B IP、并且基于所有参数(这是唯一一个不匹配的参数)。

    我可以与 Microsemi IP 供应商核实、以了解该值是否导致报告 LINK_CD_ERR。

    请与您的编码人员核对并确认、以确保他们报告的是"2"且这是文档排版错误。

    谢谢

    Madhu