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.

[参考译文] ADC12DJ3200:ADC12DJ3200在配置 FPGA 之前初始化稳定时间要求。

Guru**** 2589245 points
Other Parts Discussed in Thread: ADC12DJ3200, LMK04828, LMX2582

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/927560/adc12dj3200-adc12dj3200-initialize-stable-time-requirement-before-fpga-is-configured

器件型号:ADC12DJ3200
主题中讨论的其他器件: LMK04828LMX2582

在配置 FPGA 之前、我对 ADC12DJ3200的初始化稳定时间有疑问。

首先、我使用 USB-SPI 适配器来配置 LMK04828、LMX2582和 ADC12DJ3200、然后配置 FPGA、一切顺利。

然后、我使用 FPGA 生成 SPI 信号来配置 LMK04828、LMX2582和 ADC12DJ3200、这意味着在配置 FPGA 后、所有3个芯片都将进行序列配置、然后 JESD204B 即可正常工作。 我认为这是可行的。 实际上不是。 因为我运行了一个 PRBS23测试、显示为 No Link (无链路)。 时钟正常、我可以通过频谱看到3.2GHz。 我还可以看到 SYSREF。

上述两种方法的唯一区别是:使用 USB-SPI 适配器的 SPI 与 FPGA 配置之间的时间大约为几秒钟。 而使用 FPGA 逻辑的 SPI 与 JESD20B RX 逻辑之间的时间可能会立即开始。 我猜是否有 ADC 初始化稳定时间要求、我需要在 JESD204B RX 准备就绪时添加几 uS/ms 延迟?

BTW:SPI 时钟为1MHz、S 配置时序顺序为:当配置 FPGA 时、等待100ms,然后配置 LMK04828 (~126ms)、LMX2582 (~48ms)、LMK04828 (~9ms)、ADC12DJ3200 (~18ms)、就像下图所示:

提供了 PRBS23测试的寄存器映射。

ADC12DJxx00
0x0000 0xB0 //进行软复位
0x0200 0x00 //清除 JESD_EN (始终在 CAL_EN 之前)
0x0061 0x00 //清除 CAL_EN (始终位于 JESD_EN 之后)
0x0201 0x03 //设置 JMODE3
0x0202 0x13 //设置 KM1=19、因此 K=20
0x0204 0x06 //使用 TMSTP 输入、偏移二进制数据、禁用扰频器
0x0205 0x03 //设置 PRBS23测试
0x0023 0x01 //启用 ADC 测试
0x0213 0x07 //启用超范围,将超范围保持设置为最大周期8*2^7=1024个样本
0x0048 0x03 //将串行器预加重设置为3
0x0061 0x01 //设置 CAL_EN (始终在 JESD_EN 之前)
0x0200 0x01 //设置 JESD_EN (始终在 CAL_EN 之后)
0x006C 0x00 //将 CAL_SOFT_TRIG 设置为低电平以复位校准状态机
0x006C 0x01 //将 CAL_SOFT_TRIG 设置为高电平以启用校准

此致

Joseph

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

    回答起来有点棘手。  为了将时钟/基准正确馈入后续级、各个时钟芯片可能需要一些时间来稳定。  我们将更仔细地查看封装的 SPI 时序图。 -RJH

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

    您好、Hopper、

    谢谢。 但是、我从 FT4232转出 ADC12DJxx00 GUI 时序顺序、如下所示:

    LMK04828 (~1.94s)

    等待(~1.356s)

    LMX2582 (~1.03s)

    等待(~0.01s)

    LMK04828 (~0.13s)

    等待(~0.89s)

    ADC3200 (~0.18s)

    总长度:~5.6s (SPI 时钟:3.125MHz)

    因此、我将尝试在 LMK/LMX/ADC 配置之间添加一些间隔。 尝试密切效仿这种情况。

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

    您好、Joseph、

    对于您所示序列中的 ADC 寄存器写入、您应该在复位器件后添加200ms 的延迟。 器件复位后、您将需要等待一段时间来加载保险丝寄存器、或者您可以检查0x270寄存器的状态、并等待读取1以继续下一步。

    ADC12DJxx00
    0x0000 0xB0 //进行软复位

    0x0270读取//轮询该寄存器的位0并等待读取1。 (这将确保已加载所有保险丝值)或增加200ms 的延迟
    0x0200 0x00 //清除 JESD_EN (始终在 CAL_EN 之前)
    0x0061 0x00 //清除 CAL_EN (始终位于 JESD_EN 之后)
    0x0201 0x03 //设置 JMODE3
    0x0202 0x13 //设置 KM1=19、因此 K=20
    0x0204 0x06 //使用 TMSTP 输入、偏移二进制数据、禁用扰频器
    0x0205 0x03 //设置 PRBS23测试
    0x0023 0x01 //启用 ADC 测试
    0x0213 0x07 //启用超范围,将超范围保持设置为最大周期8*2^7=1024个样本
    0x0048 0x03 //将串行器预加重设置为3
    0x0061 0x01 //设置 CAL_EN (始终在 JESD_EN 之前)
    0x0200 0x01 //设置 JESD_EN (始终在 CAL_EN 之后)
    0x006C 0x00 //将 CAL_SOFT_TRIG 设置为低电平以复位校准状态机
    0x006C 0x01 //将 CAL_SOFT_TRIG 设置为高电平以启用校准

    此致、

    Neeraj

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

    Neeraj、您好!

    感谢您的回复。 现在、这是有道理的。 我查看了 ADC12DJxx00 GUI 的 SPI 时序:

    时间(s)   、   数据
    5.382238   、   h0000B0
    5.4049949   、   h020000
    5.4199003   、   h006100
    5.4364383   、   h020103
    5.4528463   、   h020203
    5.4687863   、   h020401
    5.4853078   、   h021307
    5.4999221   、   h004803
    5.5181216   、   h006101
    5.5321706   、   h020001
    5.547874   、   h006C00
    5.5643189   、   h006C01

    我发现在复位器件后、在大约0.02s (20ms)后发生下一个 SPI 事务、而我的 FPGA SPI 事务间隔为1ms。 我将放大此间隔、并在复位后添加200ms 延迟。 让我们看看会发生什么。

    此致

    Joseph

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

    Neeraj、您好!

    我已经尝试过您的方法。 仍然不存在链接问题。

    我在软复位后添加了200ms 延迟、并且可以从0x0270获取0x01读数。

    然后、我尝试将 SPI 的间隔从1ms 设置为25ms、我还可以从读取0x0270中获取0x01。

    以下是 SPI 事务日志:

    时间[s]、          分析器名称   、解码协议结果
    3.703840520000000、   SPI、         MOSI:0x0000B0; MISO:0x000000
    3.728862960000000、   SPI、         MOSI:0x827000; MISO:0x000001
    3.753885400000000、   SPI、         MOSI:0x020000; MISO:0x000000
    3.778907840000000、   SPI、         MOSI:0x006100; MISO:0x000000
    3.803930280000000、   SPI、         MOSI:0x020103; MISO:0x000000
    3.828952720000000、   SPI、         MOSI:0x020213; MISO:0x000000
    3.853975200000000、   SPI、         MOSI:0x020402; MISO:0x000000
    3.878997640000000、   SPI、         MOSI:0x021307; MISO:0x000000
    3.904020080000000、   SPI、         MOSI:0x004803; MISO:0x000000
    3.929042520000000、   SPI、         MOSI:0x006101; MISO:0x000000
    3.954064960000000、   SPI、         MOSI:0x020001; MISO:0x000000
    3.979087400000000、   SPI、         MOSI:0x006C00; MISO:0x000000
    4.004109840000000、   SPI、         MOSI:0x006C01; MISO:0x000000
    4.029132280000000、   SPI、         MOSI:0x020000; MISO:0x000000
    4.054154720000000、   SPI、         MOSI:0x820000; MISO:0x000000
    4.079177160000000、   SPI、         MOSI:0x020503; MISO:0x000000
    4.104199600000000、   SPI、         MOSI:0x820503; MISO:0x000003
    4.129222040000000、   SPI、         MOSI:0x002301; MISO:0x000000
    4.154244480000000、   SPI、         MOSI:0x802301; MISO:0x000001
    4.179266920000000、   SPI、         MOSI:0x020001; MISO:0x000000
    4.204289360000000、   SPI、         MOSI:0x820001; MISO:0x000001
    4.229311840000000、   SPI、         MOSI:0x006C00; MISO:0x000000
    4.254334280000000、   SPI、         MOSI:0x806C00; MISO:0x000000
    4.279356720000000、   SPI、         MOSI:0x006C01; MISO:0x000000
    4.304379160000000、   SPI、         MOSI:0x806C01; MISO:0x000001

    我想运行 PRBS7/15/23测试很奇怪、DevClk 是3.2GHz、根据 JMODE3、比特率是6.4Gbps,、但我只能得到一些不稳定的链路@3.198Gbps。

    你有什么建议吗? 谢谢。

    此致

    Joseph

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

    Neeraj、您好!

    在尝试几次后、我可以获得样片。 我只需使用 GUI 文件夹中的原始 cfg 文件:

    ADC12DJxx00
    0x0000 0xB0 //进行软复位
    0x0200 0x00 //清除 JESD_EN (始终在 CAL_EN 之前)
    0x0061 0x00 //清除 CAL_EN (始终位于 JESD_EN 之后)
    0x0201 0x03 //设置 JMODE3
    0x0202 0x13 //设置 KM1=19、因此 K=20
    0x0204 0x02 //使用 SYNC_SE 输入、偏移二进制数据、禁用扰频器
    0x0213 0x07 //启用超范围,将超范围保持设置为最大周期8*2^7=1024个样本
    0x0048 0x03 //将串行器预加重设置为3
    0x0061 0x01 //设置 CAL_EN (始终在 JESD_EN 之前)
    0x0200 0x01 //设置 JESD_EN (始终在 CAL_EN 之后)
    0x006C 0x00 //将 CAL_SOFT_TRIG 设置为低电平以复位校准状态机
    0x006C 0x01 //将 CAL_SOFT_TRIG 设置为高电平以启用校准

    因此、我的 PRBS23测试配置文件似乎有问题。

    我的另一个问题是如何根据原始配置文件继续其他测试模式?

    此致

    Joseph

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

    这是寄存器写入。

    ADC12DJxx00
    0x0000 0xB0 //进行软复位

    添加100毫秒的延迟。
    0x0200 0x00 //清除 JESD_EN (始终在 CAL_EN 之前)
    0x0061 0x00 //清除 CAL_EN (始终位于 JESD_EN 之后)
    0x0201 0x03 //设置 JMODE3
    0x0202 0x13 //设置 KM1=19、因此 K=20
    0x0204 0x02 //使用 SYNC_SE 输入、偏移二进制数据、禁用扰频器

    0x205 0x03 //启用 PRBS23测试模式
    0x0213 0x07 //启用超范围,将超范围保持设置为最大周期8*2^7=1024个样本
    0x0048 0x03 //将串行器预加重设置为3
    0x0061 0x01 //设置 CAL_EN (始终在 JESD_EN 之前)
    0x0200 0x01 //设置 JESD_EN (始终在 CAL_EN 之后)
    0x006C 0x00 //将 CAL_SOFT_TRIG 设置为低电平以复位校准状态机
    0x006C 0x01 //将 CAL_SOFT_TRIG 设置为高电平以启用校准

    此致、

    Neeraj