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.

[参考译文] DAC37J82:8B/10b 视差误差和放大器;DAC 无数据输出

Guru**** 2479035 points
Other Parts Discussed in Thread: DAC37J82

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1313214/dac37j82-8b-10b-disparity-error-no-data-out-from-dac

器件型号:DAC37J82

您好、初始化 DAC37J82器件时遇到了一些问题。

我要尝试做的是在 SERDES lane0和 lane1 (RX0和 RX1)输入上设置两个 JESD 通道、将其分配到单个链路0中的 JESD 通道0和1、然后通过 A 和 B 数据路径进行传递、 并将其发送到 IOUTA 和 IOUTD 引脚。 DACCLK 引脚的输入在250 MHz 上运行、而 JESD 旨在以2.5Gbps 的速率运行、LMF=222。

在进行配置且 DAC 未输出任何数据后、我似乎遇到了奇差问题。 奇怪的是、当我尝试/K28.5/测试时、它似乎可以通过器件测试。

标准操作:SYNC 在重复模式中偶尔会变为低电平、但大部分时间保持高电平。 0x64和0x64状态寄存器回读0x100 (8b/10b 视差错误)
/K.28.5/测试模式:稳定 SYNC (始终为高电平)、0x64和0x64回读0x0000 (无错误)。
/D.15.1/测试模式:无同步、0x64和0x65状态寄存器回读0x400 (代码同步错误)
重复 ILA 测试模式: SYNC 在重复模式中偶尔会变为低电平、但在大多数时间都保持高电平、与标准操作类似。 0x64和0x64回读0x0000 (无错误)。

以下是我要发送到 DAC 的初始化序列(如果有用):

1.通过引脚重置 DAC 引脚
2.使用以下值对 DAC 寄存器进行编程:

Reg | Value
{ 0x23, 0x01ff }
{ 0x1A, 0x0026 }
{ 0x31, 0x1800 }
{ 0x32, 0x0000 }
{ 0x33, 0x0000 }
{ 0x3D, 0x0088 }
{ 0x3E, 0x0148 }
{ 0x3B, 0x0000 }
{ 0x3F, 0x0000 }
{ 0x46, 0x0044 }
{ 0x47, 0x190a }
{ 0x48, 0x31c3 }
{ 0x49, 0xFFF0 }
{ 0x4A, 0x0320 }
{ 0x5F, 0x0123 }
{ 0x60, 0x4567 }
{ 0x24, 0x0000 }
{ 0x25, 0x2000 }
{ 0x00, 0x211A }
{ 0x03, 0xf300 }
{ 0x4A, 0x033e }
{ 0x4B, 0x1f01 }
{ 0x4C, 0x1f01 }
{ 0x4D, 0x0100 }
{ 0x4E, 0x0f0f }
{ 0x4F, 0x1C61 }
{ 0x50, 0x0000 }
{ 0x51, 0x00DC }
{ 0x52, 0x00FF }
{ 0x53, 0x0000 }
{ 0x54, 0x00FC }
{ 0x55, 0x00FF }
{ 0x5C, 0x0008 }
{ 0x5C, 0x0000 }
{ 0x61, 0x0211 }
{ 0x22, 0x101C }
{ 0x02, 0x2002 }
{ 0x04, 0xFCFC }
{ 0x05, 0xEFF7 }
{ 0x06, 0xFFFC }
{ 0x14, 0x0000 }
{ 0x15, 0x0000 }
{ 0x16, 0x8000 }
{ 0x0C, 0x01B0 }
{ 0x0D, 0x0000 }
{ 0x0E, 0x0000 }
{ 0x0f, 0x0000 }
{ 0x1E, 0x9999 }
{ 0x1F, 0x8882 }
{ 0x1F, 0x8880 }
{ 0x20, 0x8008 }
{ 0x26, 0x0000 }
{ 0x2D, 0x0001 }
{ 0x3C, 0x0050 }
{ 0x64, 0x0000 }
{ 0x65, 0x0000 }
{ 0x66, 0x0000 }
{ 0x67, 0x0000 }
{ 0x68, 0x0000 }
{ 0x69, 0x0000 }
{ 0x6A, 0x0000 }
{ 0x6B, 0x0000 }
{ 0x6C, 0x0000 }
{ 0x4A, 0x0321 }

3.通过引脚启用 DAC TX
4.从 主器件启用 JESD TX

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

    尊敬的 Ashley:

    首先、我注意到您需要2.5Gbps 线路速率、但通过2个通道无法实现、您需要使用4个通道来实现2.5Gbps 串行器/解串器。 该器件的线速率计算公式为:

    串行数据速率= Fdata * 16 *(10 / 8)

    如果 Fdata = 250MSPS (DAC 的输入数据速率),则串行器/解串器速率为每个 DAC 250*16*10/8=5000Mbps。 由于有2个 DAC、因此总数据速率是2倍、这意味着10Gbps。 但是、将该数据拆分为2个串行器/解串器通道会将每个通道降低回5Gbps。 这与内插速率无关。

    您是否可以设置寄存器0x51以在所有8种条件下包含同步请求? (0x51、0xFF)

    在步骤4之后、您是否可以用值0x0000重写0x64和0x65寄存器以清除警报、然后读取这些寄存器的值? 该寄存器具有"粘着性"、会累积产生的任何错误、因此需要先用0x0000写入寄存器以清除警报、然后再读取。 寄存器0x64和0x65中的值分别用于通道0和1。

    谢谢,Chase

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

    尊敬的 Chase:

    我们曾认为内插会影响数据速率。 我们所做的是从125 MSPS 的输入数据速率开始、这些数据 速率来自两个通道上的 Xilinx FPGA 主站、以2.5 Gbps 的线路速率运行。 这应该意味着在 DAC 的输入侧(RX0/1引脚)、Fdata = 125MSPS。

    不过、由于我们需要250MSPS 的 DAC 输出速率、因此我们要进行2倍插值。 因此、我们在250 MHz 上运行 DAC CLK 引脚。 我们的态度是否错了? 您是否可以发送一个示例配置?

    以下是修改寄存器0x51之前的 JESD 同步行为:

    以下是修改寄存器0x51后 JESD 同步的行为:

    以下是两通道警报寄存器的状态:

    0x64:0x0100
    0x65:0x0100

    两者都具有8b/10b 视差误差标志。

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

    尊敬的 Ashley:

    我的错。 我读了原来的帖子,因为数据速率是250米。 如果数据速率为125M、则 DACCLK 将通过2插值实现250MSPS。 这确实会产生正确的2.5Gbps 通道速率。

    您是否完全在使用 sysref? 寄存器似乎没有指示。 对于子类1、应使用 sysref。

    查看寄存器配置后还有其他几个问题:

    • 时钟分频器不会通过任何参考频率脉冲进行同步。 将其设置为在下一个 sysref 脉冲上对齐分频器(0x24至值0x20)
    • 尝试将未使用的通道设置为链接1、而不是链接3。 我怀疑链接2/3对于双器件无效、并且该表可能从四器件复制错误。 将寄存器0x49设置为值0x5550可修复此问题。
    • 将 link0配置设置为跳过一个 sysref、然后使用下一个。 (将0x5C 设置为0x3)
    • 输出多路复用不正确。 现在、数据路径0同时指向 IOUTA 和 IOUTD。 要修复、请将0x22从0x101C 设置为0x102D。 这会使 IOUTA 上的数据路径为0、IOUTD 上的数据路径为1。 虽然不使用、但我已在 IOUTB 上设置数据路径2并在 IOUTC 上设置数据路径3、以避免重复的数据路径进入多个 DAC 输出。

    建立链路后、您可以禁用为 DAC 提供信号的 sysref 输出。

    当器件(无论 ADC 还是 DAC)与 FPGA 之间存在时序不匹配时、通常会发生视差误差。 我可能会看到、不将 JESD CLK 或 SERDES CLK 与公共边沿(SYSREF)对齐可能会导致这些问题。

    谢谢,Chase

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

    尊敬的 Chase:

    我们将在初始化期间发送3个 SYSREF。 我们仍然无法使用您建议的寄存器更改建立 JESD 链路。 几个问题...

    1. 是否可以从您处获取具有此设置正确值的 DAC 配置表? 可能是配置序列中缺少某些内容。
    2. 若要验证器件是否能够看到 SYSREF 以及它们是否在正确的时间发生、最好的方法是什么?

    谢谢。
    阿什利

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

    尊敬的 Ashley:

    我上周不在办公室、一直在尽可能快地赶进度。 我会看到早上是否对这第一件事进行了检查。 我还将为您的250MSPS 2x int 模式生成一个配置、并尝试指出在 DAC 配置序列期间各个点的 sysref 正在做什么、看看这是否有助于解决这个问题。 持续关注。

    谢谢,Chase

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

    尊敬的 Ashley:

    我整理了此配置。 我已经在电路板上对其进行了测试、并在配置文件中留下了注释。 我还仅选择了 DAC 部分、并将其放入了上面的格式、据我所知、其中包含您的特定寄存器值。 请尝试一下。

    e2e.ti.com/.../250MSPS_5F00_2xint_5F00_drs_5F00_cw.cfg

    e2e.ti.com/.../250MSPS_5F00_2xint_5F00_drs_5F00_DAC_5F00_reg.cfg

    谢谢,Chase