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:所有线路中的 FIFO 为空警报。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1322367/dac38j84-fifo-empty-alarm-in-all-lines

器件型号:DAC38J84

大家好!

我正在尝试在定制电路板中配置 DAC38J84。 我已锁定 DAC PLL 并锁定 PLL 串行器/解串器、但无论做什么尝试、都会出现 FIFO 为空的错误。

这是我的 JESD IP 内核配置:

  

 

总结:

  • LMF=841模式。
  • DACCLK 基准为400MHz。
  • 我将以62.5MHz 的速率(TX_CORE_CLK_OUT)发送256位。
  • 我的线速为256* 62.5MHz * 10/8/8= 2.5Gbps
  • 内插= 8、因为我有250MHz DAC 输入速率和2000MHz DAC 输出速率。
  • JESD 时钟为125MHz (2000 DAC PLL 输出/ 16 = 125MHz)、遵循 JESD_div_clk 关系=插值* L/M = 8*8/4 = 16。
  • 我假设以四分之一的速率运行、因为线路速率为2.5Gbps、串行器/解串器 PLL 为2.5GHz。
  • 我不使用 SYSREF。

JESD IP 内核和 DAC 中的 K、F 等参数相同。

我如下图所示配置 DAC PLL (我不使用该工具来配置 DAC、因为我使用的是自定义板、但我使用图像来解释我的配置)。

 

 

配置 DAC 后、我可以看到来自 JESD IP 内核的高电平 TX_READY 信号。 另外、TX_START_OF_MULTIFRAME 信号正在切换、因此我假设 JESD IP 内核正在从 FPGA 发送数据(我们使用的是 Zynq Ulstrascale+)。

 我的问题是:

  • ¿我是否正确配置了时钟? 特别是 JESD clk、我不确定它与其他时钟之间的关系。
  • 在本例中、假设中的 DAC 时钟为250MHz 是正确的? 我假设这是因为我将以62.5MHz 的速率发送256位的数据包、相当于以250MHz 的速率发送64位(每个转换器16位的1个样本)。 如果正确、我假设内插值为8、因为 PLL DAC 的输出为2000MHz。
  • 我设法使用 NCO 以四分之一的 DAC PLL 输出频率(2000MHz)在500MHz 处生成一个简单的音调、因此我假设 DAC PLL 按照我想要的那样进行配置。
  • 它是否符合以四分之一速率运行的假设? 我将我的配置基于该表:

但我还想了解该表、该表中如何定义"一个数据样本"?

 

话虽如此、为什么我在所有8行中都存在 FIFO 空错误?

提前感谢您的参与。

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

    您好、Juan:

    该器件仅为子类1。 它需要一个 sysref 来对齐 JESD 链路的内部分频器。 如果不存在 sysref、则这可能会导致 FIFO 清空问题。 您是否能够提供参考频率信号?

    谢谢,Chase

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

    尊敬的 Chase:  

    感谢您的答复。 我们可以从我们的 PLL 生成参考频率周期性信号。  

    所以、即使您将 DAC 配置为不使用参考频率信号、仍然需要为其提供参考频率信号?

    sysref 的频率必须满足哪种关系才能正常工作?

    我注意到、当我将初始状态设置为0000并释放 JESD 复位(0x4A -> 0xFF01)时、我会在所有线路的警报寄存器中得到0x03 (READ_ERROR 和 READ_EMPTY)

    此外、SYNCB 引脚此时设置为0。

    我将我的 K 从20更改为2、以便能够从我的 PLL 中生成参考频率时钟、现在它运行在25MHz 下。  

    LMFC =线路速率/10/K/F = 2500/10/2/1 = 125MHz

    SYSREF = LMFC/n = 125/5 = 25MHz

    在配置 DAC 之前是否存在 sysref 存在问题?

    谢谢!

    Juan。

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

    您好!

    我还有另一个与 SYSREF 相关的问题、我将向 FPGA JESD 内核提供 SYSREF 信号、而向从我的 PLL 生成的 DAC38J84芯片提供其他信号。 我生成了这两个信号作为 PLL 的正常输出、因此 SYSREF 始终从我配置此 PLL 的第一一刻起就开始运行、负责生成该设计的主时钟。 以这种方式工作是否有任何问题? 我知道、启用有效的 SYSREF 可能会导致生成信号的频谱衰减、但可能会导致无法建立链路吗? (SYNCB 信号不再变为高电平...)。

    PD:SYSREF 频率现在是5MHz、我假设它完全符合以下要求: 线速率/10/K/n/F (K=2、F=1)。

    谢谢。

    Juan。  

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

    您好、Juan:

    如果将 K 设置为2,则可能无法为链路正确建立提供足够的 RBD。 您是否可以将 K 设置为16并相应地修改 sysref?

    谢谢,Chase