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.

[参考译文] DAC39J82:在JESD204B中出现ILA故障的调试建议

Guru**** 2568565 points
Other Parts Discussed in Thread: DAC39J82

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/600910/dac39j82-debugging-advice-for-failing-ila-in-jesd204b

部件号:DAC39J82
主题中讨论的其他部件: TSW14J10EVM

大家好,

我正在尝试使用Xilinx JESD204B发射器IP内核将数据发送到我们电路板上的DAC39J82。  我在建立正常链路时遇到问题。  我将首先尝试描述我的问题,然后介绍我如何尝试设置JESD链接。

打开链接时,我认为我的系统无法实现ILA。  我已初始化JESD FPGA内核和DAC,并将SYSYREF信号设置为连续的周期性脉冲。  来自DAC的SYNC~变为低电平,表明我们正在尝试重新同步。  然后,它会变高,我认为只有在实现代码组同步后才会发生这种情况。  ~,内核尝试输出一些数据,DAC几乎立即再次将SYNC降低,并尝试重新同步。  这将在一个循环中继续进行,并且我在本帖子底部的FPGA中从逻辑分析仪内核捕获了该过程的波形。  DAC信道报警寄存器(config100-107)指示我使用的4个信道都设置了“代码同步错误”和“8b/10b差异错误”位。  在实际的JESD JEDEC标准SEC 7.6 1表18中,这些代码被定义为“代码组同步的状态机已返回至CS_INIT状态”和“接收的代码组存在于8B/10B解码表中, 但根据当前的跑步差异,在正确的列中找不到。"

如果您查看随附的截屏图,您会发现我的JESD发射器核心正确发出K 28.5 逗号(txdata行上为0xBC) 当SYNC~变为低电平时...如果我收到差异错误,我认为这意味着数据可能在发送至DAC或DAC本身的过程中损坏。  我正在寻求有关尝试解决我的国际法协会问题的后续步骤的建议。  我觉得使用各种测试序列可能是答案,我已经尝试过,但我认为我在设置中遗漏了一些东西,因为TESTFIL针脚始终只读0 (通过测试),即使我故意输入错误的顺序。 我曾尝试使用PRBS 7序列和连续K 28.5 字符序列。

我的JESD设置如下所示:LMK设置为421,每多帧32帧,HD = 1,S = 1,弹性缓冲区= 31,SerDes线速率为6.25 Gbps总吞吐量,因此1.5625 GHz通道速率。  我的时钟在DACCLKp/n处使用1.25 GHz输入,我绕过DAC PLL并将之前的数字除以4,以便SerDes PLL参考时钟为312.5 MHz。  然后,内部将该值乘以5,我的SerDes PLL输出则为1.5625 GHz。  寄存器config108读数为0x07,表示SerDes块0 PLL正在锁定,块1已超出锁定(预期,因为我仅使用块0的4个通道),DAC PLL已超出锁定(预期,因为我正在绕过它)。  我的JESD时钟设置为DACCLK除以8,因此156.25 MHz。  我的SerDes配置有ENOC =1,全自适应EQ,CDR =0,全速率,交流耦合端接, 20位总线宽度,增益增强= 0,LOS已禁用并保持EQ关闭。  我会将所有寄存器设置的打印件附加为从SPI读取(即不确定警报是否正确,因为我只是在循环中读取所有寄存器。)

很抱歉,这篇文章变成了一个知识垃圾场,但我不知道您需要知道哪些详细信息才能帮助我。  有什么建议?  我可以尝试提供哪些其他信息以供澄清?  我还通过电子邮件与Xilinx技术支持部门进行了交谈,但与TI为DAC提供的文档相比,由于移动部件更少(悬挂自己的绳索更少),并且该IP内核的文档更清晰,因此我对发射器更有信心。

e2e.ti.com/.../regs.txt

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

    e2e.ti.com/.../DAC38J82_5F00_421_5F00_983p04.pptxe2e.ti.com/.../7181.DAC3xJ8x-Device-Initialization-and-SYSREF-Configuration.pdfe2e.ti.com/.../156.25_5F00_LMF_5F00_4211.cfgKyle,4211.,

    由于贸易展览和休假,我们现在非常缺乏人手。 请参阅以下内容是否有帮助。 我假设您正在插值8,并且输入数据速率为156.25MHz。 我根据此文件以及您的其他输入生成了配置文件,并将其与其他一些文档附在一起。 TI具有TSW14J10EVM,允许用户使用现成的Xilinx开发板测试我们的EVM。 转至TI网站上的此产品文件夹,以获取 有关此问题的文档以及源代码示例。

    此致,

    Jim

       

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

    您好,Jim:

    感谢您的及时回复。  我在上一个帖子中取得了一些进步,我相信我现在正在正确调整车道!  我将JESD时钟分配器从8更改为4 (将JESD时钟设置为312.5 MHz而不是156.25 MHz)。  差异和代码同步错误不再在DAC上触发。  但是,我的四个通道中的每一个通道都有错误,抱怨“write_error : asserted if write request and FIFO is full”和“read_error : asserted if read request with empty FIFO”。  我在运行系统时每两秒钟清除和轮询这些寄存器。

    我附上了一个新的更新的系统计时图,通过FPGA中内置的逻辑分析器内核可以看到,其中显示了ILA序列和数据通过情况。

    我的DAC上的TI数据表几乎没有关于FIFO的详细信息...我对错误的最好解释是,我的DAC计时配置的某些信息仍然混乱。  对于这些FIFO错误,您是否可以提供其他见解?  您以前是否经常遇到他们的问题?  在这些情况下,典型的问题是什么?

    非常感谢您的参与,

    凯尔·哈里斯

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

    Kyle,

    FIFO错误通常是由于使用错误的时钟频率导致的,无论是进入器件的数据速率,还是在插值设置为1以外的任何值时DAC样本时钟。

    此致,

    Jim

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

    您好,Jim:

    自从我上一篇文章以来,我们已经清除了FIFO中的write_errors,但我们仍然收到read_errors。  我将尝试降低系统的速度(使用3.2 Gbps线路速率而不是6.25 Gbps),看看这是否会影响任何内容,但我很难相信这只是一个时钟配置问题,因为 我已经多次查看这些数字, 而且,我们的大多数数据都刚刚好。  我们通过在FPGA中生成自己的调制PRN序列并通过JESD将其发送到DAC来进行验证。  然后,我们将DAC输出与原始PRN文件关联起来,我们获得了非常高的SNR,告诉我我们发送的内容与应该发送的内容非常接近。  但是,每当我在传输过程中重置并轮询通道错误寄存器时,我总是会收到READ_ERROR。

    我是否应该尝试将插值设置为1并查看它是否消失?  我的减速测试是否有任何可能会产生有用的结果,还是浪费时间?  你们以前有没有见过这样的东西,ILAS工作正常,同步不会丢失,但始终存在FIFO错误?

    再次感谢,

    凯尔·哈里斯

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

    Kyle,

    您获得的实际寄存器地址和错误数据值是多少? FIFO读取警告有时会将其混淆为错误。  在读取错误寄存器之前,您是否清除了它们?  您能否向我发送您的完整DAC配置文件,我可以在我们的EVM上使用Altera FPGA和Xilinx FPGA来尝试此文件,看看我是否可以复制它?

    此致,

    Jim   

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

    感谢您的及时回复! 我在其上设置了READ_ERROR位的寄存器为config100 - config103,所有四个(每个通道一个)。 具体来说,每个寄存器的读数都是0x0002,该位集的读数在TI DAC39J82数据表中如下所示:"BIT1 = READ_ERROR:如果读取请求为空FIFO则断言"。 我在阅读之前清除这些寄存器,因为它们不会自动重置。

    我没有使用TI EVM,但我会看看我是否可以将用于设置的python代码发送给您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kyle,

    我认为我能够重复您的问题。 在我们的设置中,如果我加载DAC配置,然后在将数据发送到DAC之前重置JESD内核,即使DAC发出有效数据,我也会收到这些错误。 当我将“0”写入错误寄存器以清除它时,这不会清除它,我仍然读回FIFO读取错误。 我被告知这些错误是由于FPGA未发送数据而发生的,清除此错误寄存器的唯一方法 是执行另一个DAC JESD核心REST。 执行此操作后,错误消失。 如果我在发出DAC JESD核心重置序列之前将FPGA数据显示到DAC,我根本没有收到这些错误。 我认为数据表需要更新有关清理这些登记册的资料。

    此致,

    Jim   

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

    Jim,

    好了,谢谢!  不幸的是,对我来说,这意味着FIFO错误不是我们在输出中看到的另一个问题的原因,但最好不要花更多时间担心它。

    谢谢,

    凯尔·哈里斯