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.

[参考译文] DAC3482:DAC3482开机自检初始化冲突

Guru**** 2577385 points
Other Parts Discussed in Thread: DAC3482

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/626610/dac3482-dac3482-post-power-on-initialization-collision

部件号:DAC3482

您好,

我们的设计采用DAC3482,FPGA (ddata_CLK =480MHz) 和DAC_CLK (960MHz)以480MHz DDR的速率提供数字样片。 因此选择了2的插值因子。 按照数据表执行开机顺序。 在FPGA端已考虑到计时约束。以下是在DAC上应用的寄存器设置:

配置1 : 0x050E
配置16: 0x3000
配置5 : 0x0000    (已清除警报)
config27: 0x0800        
config32: 0x2201  (单同步源模式,同步信号处使用帧)
配置0 : 0x019C  (插值设置为2x)
配置9 : 0x8000
配置2 : 0xF002   (Word宽模式,2的补充格式)
config7 : 0x4063   (仅屏蔽来自PLL的报警,其它报警已启用/取消屏蔽)
config36: 0x0000 (data_bly和clk_bly被设置为0,因为这在FPGA端通过对数据与data_clk进行中心对齐来处理)

config5:0x0000 (在开机序列后清除警报)

遵循此顺序后,config5的寄存器读数显示没有冲突警报(config5:0x0060,0x0860或0x1860)。

但从FPGA提供样品后,会发生冲突(config5:0x3960),清除后会返回0x0060 (无冲突)。 此后没有碰撞报告。

如能在调试此问题时提供任何帮助,我们将不胜感激。

注:使用DATA_CLK = 240MHz和DAC_CLK = 960MHz进行的相同实验不会导致上述问题。

此致,

Shishir

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

    我正在研究这一问题,不久将与您联系。 使用OSTR (双同步源模式)是否是您的设计选项?

    此致,

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

    Dan,您好!

    根据您的建议,我们在双同步源模式下试验了OSTR选项。 OSTR clk源自与960MHz DAC_CLK相同的源,来自板载可编程时钟合成器。 根据数据表,我们需要生成

    fOSTR = fDAC/(n x插值x 16),其中n = 1,2,… 可以为全球模式重复16个FIFO样本的倍数。 因此,fOSTR = 960/(1 x 2 x 16)= 30MHz (根据我们的要求)。

    此外,config32也相应地更改为0x2400。

    此实验的结果是冲突始终无法恢复(即使在config5中清除警报之后)。

    此外,在我们现有的体系结构中,不可能生成小于30MHz的fOSTR (即下限)。

    请进一步建议双同步源模式或单同步源模式可以执行的操作。

    此致,

    Shishir

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

    Shishir,您好!

    感谢您的尝试。 您似乎已经了解了很多,但我们有一份应用报告,它直接应用于DAC348x系列的FIFO配置和同步,我认为这可能有助于调试工作。 这里还提供了有关初始化过程的建议。

    在单同步源模式下,您是否尝试使用sif_sync? 这是更新FIFO指针的另一种方法。 您可以在寄存器config32中同时同步sif_sync和帧(用于fifoin和fifoout)。 此外,您还可以尝试调整FIFO进/出指针。

    我已经联系过设计师,一旦有更多信息,我会尽快通知你们。

    此致,

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

    我能够与其中一位设计师交谈。 另一个要记住的是,报警是"粘性的",因此不能自行清除。 由于FIFO指针尚未对齐/同步,因此从FPGA发送数据时完全有可能发生冲突。 这种警报是意料之中的,只要不发生后续冲突,FIFO缓冲区就应该正常工作。

    以这种方式考虑。 如果没有输入到FIFO缓冲器(数字数据和来自FPGA的DATACLK),输入FIFO指针不会移动,但输出FIFO指针仍在移动,因为其同步是从DACCLK派生的。 这将导致冲突警报,因为每次从0到15 (或0到7,对于字节情况),输出指针都停留在输入指针中的同一位置。 一旦您开始将数字数据和DATACLK从FPGA发送到DAC,输入FIFO指针将与输出FIFO指针同步和移动。 此时清除警报后,应该不会再出现碰撞警报,听起来可能就是您看到的。

    此致,