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.

[参考译文] DAC38J84:难以建立 JESD 链路

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/831855/dac38j84-difficulty-establishing-jesd-link

器件型号:DAC38J84
主题中讨论的其他器件: ADC16DX370

尊敬的支持者:

我正在使用 Arria 10 SoC 开发套件与 Abaco FMC144的定制集成。

时钟生成和模数转换正在执行正常、但还不幸运的是、通过 JESD 链路连接到 DAC38J84。

SYSREF 是一个2脉冲序列、频率为 DACCLK 的1/32、即148.5MHz。

K = 32在我们的设置中、LMF 为442。

SignalTap 显示与 DAC 芯片的 JESD 链路已短暂建立、但该行为会无限期重复:DAC 芯片将 SYNCb 置为有效、然后在接收到一系列 K28.5符号后将 SYNCb 置为无效、但随后在 ILA 序列期间的不同点(通常在第3个多帧中)将 SYNCb 置为有效。 SYSREF 脉冲之后的通道警报快照仅在1或2个通道中显示帧对齐错误、而其他错误标志则为清除。

基于之前的线程、我已经尝试清除0x51[7:0]、这应该会抑制触发 SYNCb 时产生的任何错误。 但是、在此设置中、SignalTap 显示 SYNCb 在短时间内非法置为有效。

您能否提供一些有关导致此 SYNCb 行为的原因的见解?

满怀希望地感谢--Todd

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

    Todd、

    我们将在第二天左右回来。

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

    您好 Todd、

    如果您可以提供信号抽头波形来演示您看到的错误、它将更好地帮助调试过程。

    在 JESD204B 标准中、链路建立经过以下阶段:

    由 JESD RX (DAC)触发的同步事件、

    2. CGS (JESD TX 发送 K28.5)

    成功识别4个连续 k28.5字符后、JESD RX 将 SYNC 取消置位。

    4.在 ILAS 完成后、SYNC 将继续取消置位

    ILAS 序列检查在 ILAS 序列的第2个多帧中包含特定的 LMFS 标识代码(包含链接的基本信息)

    请参阅以下示例:

    e2e.ti.com/.../4885.DAC3xJ8x-ILA-Sequence.xlsx

    ILAS 的通过需要来自 JESD TX (FPGA)的识别代码来发送 DAC 侧编程的特定 LMFS 信息。 JESD_TX 的标识代码必须与 DAC 编程相匹配。 否则、DAC 将标记它并再次将 SYNC 拉至低电平。 各个通道之间的识别码基本相同、但通道 ID 应该是唯一的

    出于调试目的、我们基本上可以要求 DAC "忽略"ILAS 序列、这样即使 ID 不匹配、它也会继续通过 ILAS。  

    注意:我们确实有一种完全跳过 ILAS 的模式。 跳过和忽略之间存在差异。 SKIP 意味着 JESD_TX 完全跳过 ILAS 级。 这被用来有可能向后兼容204A 标准。

    我们可以通过以下 GUI 配置执行此操作:

    (注意:单击各种按钮后、您可以在 GUI 左下角获取配置寄存器设置。)

    还有一个阶段、在所有通道到达后设置释放缓冲区。 释放代码逗号字符/R 表示缓冲的开始。 接收到所有通道/R 字符后、RBD 将被释放。 您可能需要调整 RBD 以优化整个系统中因各种偏差而产生的延迟。

    最后、您提到存在非法的同步断言。 有两种类型的同步活动:一种是同步请求、另一种是错误报告。 同步请求至少为5帧+ 9个八位位组、并指示 JESD TX 的严重错误、以指示需要重新链接。 错误报告基本上是一条发送给 JESD_TX 的快速错误消息、以了解这种情况(最大2帧)。 它们的设置与您在上面看到的图片相同。 您可以根据需要禁用错误报告。  

    我随附了一些幻灯片、以帮助您了解差异。

    e2e.ti.com/.../7230.DAC3xJ8x-JESD204B-Sync-Request-and-Error-Report.pptx

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

    尊敬的 Kang:

    感谢您的快速而全面的回复、其中强调了链路建立失败的几个潜在原因。 PPT 是一个有价值的参考、而 XLS 是检查配置参数的有用工具。

     与 DAC38J84通信的 JESD TX FSM 中的一个错误立即显而易见:只有在 SYNCb 被置为有效至少5帧时、JESD TX FSM 才应恢复为 CGS。

    通道 ID 值中存在另一个潜在错误:为简单起见、所有四个通道的盖子= 0;DAC 寄存器0x46和0x47均进行了相应编程。 通道 ID 的这种设置是否是 DAC38J84的严重错误? 在这种情况下、可以调整 JESD TX FSM、以便每个通道发送一个唯一的盖子。

    我还有关于匹配字符/R/(0x1C)作为 RBD 发布代码的问题。 将0x4F 编程为0x1C41会在最终的/K/字符之后立即开始缓冲、这会产生什么后果?

    下次我请求进一步帮助调试 JESD 链路配置时、我将粘贴 SignalTap 跟踪供您参考。

    期待您对我的后续问题的答复。

    再次感谢——Todd

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

    您好 Todd、

    如果以这种方式对 DAC 进行编程、ILAS 序列故障(即无法识别第二个多帧中的 ID 代码)将足以在同步线路上触发 SYNC_REQUEST。 通常、我们建议客户忽略 ILAS。 在我看来,劳工及劳工组织委员会的功能只是提供冗余核查。 我从来不是很了解 ILAS ID 检查的真实性质。 我所知道的是、它在启动过程中会产生比实际交叉检查更多的问题。

    [引用 user="Todd Rockoff">我还有关于匹配字符/R/(0x1C)作为 RBD 发布代码的问题。 将0x4F 编程为0x1C41会导致在最终的/K/字符之后立即开始缓冲的后果是什么?

    我们建议用户保持默认值、以允许/R/代码作为缓冲区的发布代码与标准兼容。 正确的是、这是缓冲器的目标。

    -Kang

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

    你好 Todd

    请允许我现在关闭该帖子。 您可以随时回复以重新打开帖子。 谢谢。

    -Kang

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

    尊敬的 Kang:

    很抱歉、我很长时间没收到您的回复。 根据从 ADC16DX370 JESD 发送器接收到的输出观察结果、我一直在尝试不同的 JESD 发送器配置。

    看起来 Arria 10串行器/解串器通常是"小端字节序"、首先发送低阶字节。 但是、JESD 规范似乎是"大端字节序"、期望高字节优先。 我假设 DAC38J84采用相同的方法。

    将0x51编程为0xFF 时、所有四个通道都报告代码同步和8b/10b 视差误差、并且没有其他误差。

    通过将0x51编程为0xFA 来忽略这两个错误、除了弹性缓冲器和特性不匹配之外、这些错误仍会被报告。

    重复的行为是、DAC38J84将 SYNCb 置为无效、然后在第1个 ILAS 多帧结束附近将 SYNCb 置为无效、如本 SignalTap 捕捉中所示:

    此 SignalTap 捕获是对上述重复序列的其中一个迭代的缩放:

    如果您能提供进一步的见解、我将不胜感激。

    满怀希望地感谢--Todd

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

    您好 Todd、

    所需的最小同步请求错误检查是具有8b/10b 编码视差/不在表错误中以及 CGS 错误。 如果没有这3项检查、JESD204B 状态机将无法正常运行。 这些是所需的 JESD204协议。

    您可以参阅以下使用 Altera Arria 5的 TSW14J56 EVM 固件

    我们还有基于 Arri10的 TSW14J57固件、您也可以参考

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

    尊敬的 Kang:

    感谢您强调基本要求的重要性并提供参考设计。

    好消息:我很高兴地报告 DAC 芯片现在正在通过 ILAS 并生成数据。

    为了其他人的利益、请遵循以下路径: 尽管 FPGA 接收器上需要 Arria 10 PHY 字节反转以适应 ADC16DX370、因此 FPGA 发送器上需要通过 FMC 环回连接器进行测试、但在发送到 DAC38J84时 FPGA 发送器字节反转似乎应*禁用*。 此外、ILAS 符号需要以"小端字节序"的方式组织、以发送到 DAC 芯片。

    禁用 FPGA 串行器/解串器发送器字节反转、并将每个对的较早字节置于对的低位、同时 DAC38J84寄存器0x51和0x52编程为0xFF (允许所有通道错误生成 SYNCb 并进行计数)、JESD 链路建立过程将正常进行: DAC38J84仅在 SYSREF 脉冲序列之后将 SYNCb 置为有效、并在 ILAS 之后开始生成数据、并且在建立 JESD 链路后所有四个通道的所有警报位都将清零。

    来自 DAC 的数据尚未按预期显示、但这必须是一个单独的问题;此 JESD 链路建立问题已得到解决。

    感谢您的坦率和全面支持——Todd

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

    为了完整起见、并希望不会让寻求类似解决方案的任何人感到困惑、我写信纠正我之前关于在 FMC144上的 Arria 10和 DAC38J84之间建立 JESD 链路的评论。

    我之前写的内容不正确。 根据手册表9中的帧汇编图、DAC38J84 JESD 链路在 F>1时为大端字节序、期望对的高位字节首先到达。 这个组织与 ADC16DX370和我已经阅读的所有其它 JESD 文档一致。

    用于字节对的 Arria 10 8b/10b 编码器是小端字节序、首先对低位字节进行编码。 PHY TX 字节反转无效,因为它是在8b/10b 编码器之后*应用的,这会导致 DAC38J84 SerDes 接收器出现8b/10b 视差误差。

    此问题的正确解决方案是不在 TX 或 RX 上应用字节反转。 相反、正确的解决方案是通过在 FPGA 内部进行简单布线来交换高阶和低阶字节。 "kbit"控制符号标识符应与其引用的数据字节一起路由。

    谢谢--Todd