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.

[参考译文] ADC3564:关于 ADC3564 配置和数据表不一致之处的说明

Guru**** 2694555 points

Other Parts Discussed in Thread: ADC3564, ADC3664-SP, LMK04832

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1577551/adc3564-clarification-on-adc3564-configuration-and-datasheet-inconsistencies

器件型号: ADC3564
主题中讨论的其他器件: ADC3664-SPLMK04832

您好、

我目前正在处理的 ADC3564 并且对其配置和行为有一些顾虑。 感谢您对以下几点的见解:

  1. 2 线 16 位模式下的位映射
    在当前设置中、我使用 2 线 16 位接口。 我想确认位映射是否始终存在 MSB 对齐 (即 Data[19:4])或如果可以使用 数据[15:0] 相反、这意味着 D4A 对应于 D0A 和 D19A 到 D15A。
    假设顺序保持不变 (DA1:MSB、DA0:LSB)、我是否可以遵循此备用映射? 例如、在这种情况下、D0A 的地址将0x43用于上一个样本(而不是)0x45、而0x39用于当前样本(而不是,数据表将其列为)0x3B0x35。 您能否澄清一下这一解释是否有效?

  2. 解决数据表中的范围拼写错误?
    在上述示例中、0x35DA0 的地址似乎超出了信道 A 的有效范围、即0x390x60。 您能否确认0x35数据表中是否有拼写错误?

  3. DLCKIN 与采样时钟 — 异步域
    最大功耗 采样时钟 直接馈送到 ADC、而 DCLKIN 是使用不同的基准时钟通过 FPGA 内部的 MMCM 生成的。 由于这些时钟不是源同步的、我担心 ADC 如何处理此类异步域。
    您是否有管理此类设置的建议或最佳实践?

  4. 寄存器 0x09 用于 2 线 16 位接口的配置
    寄存器应该0x09保持在默认值 (0x00)、还是需要切换位[2][3]在 2 线 16 位模式下正常运行?

    我知道这些似乎很细微、但由于数据表中存在多种不一致之处、我正在设计阶段早期尝试解决这些问题。 我还在 AMD 社区中遇到了一些关于这款芯片的负面反馈——有人称这是“与 FPGA 连接太可怕了“——但我更喜欢依靠事实和正确的理解而不是意见。

    提前感谢您的支持。

    此致、
    Sourav image.png

     

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

    尊敬的 Sourav:

    1) 是的、它始终是 MSB 对齐的。 看起来这似乎尚未更新、但下面是 ADC3664-SP 数据表中的一项指南、该手册更易于理解。 可以看到、在 2 线模式下、它的所有分辨率都是 MSB 对齐的。

    2) 查看上图以及正确的地址。

    3) 您可以在 FPGA 设计中使用 PLL、该 PLL 与您的采样时钟源共享参考频率。 然后、您可以使用 PLL 生成 DCLK 频率、确保采样 CLK 和 DCLK 均被基准锁定。 我不太熟悉如何在 FPGA 设计中执行此操作、但应该有 Xilinx IP 来帮助您执行此操作。

    4) 您不应切换寄存器 0x09 的位 2 和 3、这将使通道 DA0 和 DA1 的输出缓冲器断电。 这些必须保留为默认值 0。

    此致、

    Luke Allen

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

    您好 Luke、

    感谢您分享参考图像、这确实有助于澄清我遇到的位重新排序混淆。

    我当前的担心是、硬件的设计使得采样时钟仅路由到 ADC 芯片、而不路由到 FPGA。 这意味着我无法直接访问 FPGA 内部的采样时钟以将其用作将生成 DCLK 的 PLL/MMCM 的参考。 我将优先检查是否有办法利用电路板上的采样时钟。

    出于好奇心、是否有人使用两个完全异步的时钟成功开发了一个类似的芯片? 如果是、我想知道他们在这样做时遇到了哪些权衡或挑战。

    再次感谢您的见解

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

    尊敬的 Sourav:

    我不知道有谁使用这些带异步时钟的 ADC。 数据传输可能仍会间歇性地工作、但问题在于可靠性。 如果您的时钟不是从同一源获得、您将遇到时序不匹配问题、从而导致数据损坏。

    根据我对您的设置的了解、您可以得到以下内容:

    通常、我们的 ADC 具有一个内部 PLL、它根据采样时钟生成 DCLK 和 FCLK、因此无需提供 DCLK、并且默认情况下采样时钟和 DCLK 在 ADC 内部被基准锁定。

    遗憾的是、对于 ADC36xx 系列器件、设计人员为了满足严格的电源要求而移除了 PLL。 相反、您必须提供基准锁定到采样时钟的 DCLKIN 信号、该信号随后会在 ADC 内进行重定时。 因此、这里有 3 个选项可用于为该 ADC 计时。

    不建议使用方案 1、因为 FPGA 生成的任何时钟都将具有明显抖动并会降低 ADC 的 SNR 性能。

    选项 2 更好、因为您共享公共基准频率、并且由于 DCLKIN 信号是数字数据时钟、我们不关心抖动。

    选项 3 是最佳选择、因为它为采样时钟和 DCLKIN 信号提供通用基准频率、并尽可能减少抖动、从而使 ADC 提供最佳性能。 缺点是这可能需要更复杂且更昂贵的时钟器件。

    此致、

    Luke Allen

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

    感谢您的全面解释。 这解决了我们的几个关切。 我将与硬件团队协调、以评估和实施基于选项 3 的方法、或者在必要时回退到选项 2。

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

    您好 Luke、

    我们决定根据继续修改硬件电路 备选案文 3. 建议的闭环解决方案。

    同时、使用您共享的更新的默认位映射器快照、我尝试根据附加参考图像中显示的格式对输出位重新排序。 我还提供了寄存器配置详细信息以供审核。 如果您有机会、您能看一下并告诉我设置是否与预期的输出格式非常一致吗?

    注意: 目标位格式以红色突出显示(2 线、16 位)。

    当前样本 上一个样本
    通道 存储器地址 bit_id 通道 存储器地址 bit_id
    da0 0x3B 0x4E da0 0x45 0x0E
    da0 0x3C 0x4F da0 0x46 0x0F
    da0 0x3D 0x54 da0 0x47 0x14
    da0 0x3e 0x55 da0 0x48 0x15
    da0 0x3F 0x56 da0 0x49 0x16
    da0 0x40 0x57 da0 0x4A 0x17
    da0 0x41 0x5C da0 0x4B 0x1C
    da0 0x42 0x5D 的地址 da0 0x4C 0x1D
               
    DA1 0x49 0x5E DA1 0x59 0x1E
    DA1 0x50 0x5F DA1 0x5A 0x1F
    DA1 0x51 0x64 DA1 0x5B 0x24
    DA1 0x52 0x65 DA1 0x5C 0x25
    DA1 0x53 0x66 DA1 0x5D 的地址 0x26
    DA1 0x54 0x67 DA1 0x5E 0x27
    DA1 0x55 0x6C DA1 0x5F 0x2C
    DA1 0x56 0x6D DA1 0x60 0x2D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sourav:

    是的、这看起来对您所需的位图是正确的。

    此致、

    Luke Allen

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

    嗨、Luke Allen、

    我从单个时钟源连接了采样时钟和 DCLKIN(两个 125MHz 的时钟频率相同)。

    为了供您参考、我附上了照片、这种方案是否 正常?   

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

    尊敬的 Vinayaka:

    连接看起来正确。 但是、DCLKIN 频率将取决于您要使用的 ADC 模式。 它的频率可能与样本 CLK 不同。您可以使用以下公式计算所需的 DCLK:

    如果使用实时抽取或 DDC 旁路模式:

    DCLK =(采样率*分辨率/导线数/抽取因子)/2

    如果使用复数抽取模式:

    DCLK =(采样率* 2 *分辨率/导线数/抽取因子)/2

    这些公式可在数据表的表 8-3 和表 8-4 中找到。

    此致、

    Luke Allen

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

    嗨、Luke Allen、

    在 ADC 模式下

    采样率:125MHz。

    16 位分辨率、

    X2 导线模式、

    2 抽取

    我使用 LMK04832 连接采样时钟和 DCLKIN。

    以下连接是否正常?

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

    您好 Luke、

    在配置位映射器寄存器时、我注意到随附的快照中还有另一个拼写错误。 在图 7-14 中、列示为 0x47、0x48 和 0x49 的通道 DA1 地址实际上应该分别为 0x4D、0x4E 和 0x4F。

    PS: 在寄存器编程期间、我遇到了两次地址 0x49、一次在当前样本中、一次在前一个样本中、这引发了疑问。

    谢谢

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

    是的、正确。

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

     Luke Allen 请确认上面提到的位映射器拼写错误(对于通道 DA1)、请立即取消。

    谢谢

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

    已确认

    此致、

    Luke Allen

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

    您好 Luke、

    我正在使用 ADC3564、希望使用通道 A 的自定义恒定模式来启用其测试模式。具体而言、我正在尝试配置 ADC、以0x2C将模式输出到 FPGA。 这是我使用的寄存器配置:

    寄存器 数据值
    0x16 0x18
    0x15 0x00
    0x14 0x2C

    我想确认以下几点:

    1. 在测试模式下对芯片进行编程时、是否需要特定的序列?
    2. 我可以一次写入完整的寄存器配置(包括测试模式)、然后通过设置寄存器0x14、恢复0x150x16到正常操作0x00吗?
    3. 在测试模式和正常模式之间切换是否有任何未记录的规则或细微差别?
    4. 根据预期输入、上述配置值是否正确?

    谢谢、
    Sourav

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

    尊敬的 Sourav:

    您是否尝试过使该测试模式有效?  如果没有、请执行此操作、并参考数据表来查看更多此类问题。

    谢谢、

    Geoff

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

    您好 Geoff:
    感谢您的建议—我将继续跟进。

    同时、由于我已经有 ADC3564、因此我注意到了芯片配置期间存在异常行为。 具体而言,0x13与电子保险丝加载器相关的寄存器,需要写入0x1,然后清除为0x0(最好在~1ms 之后)。 然而,当我写信0x1给它时,我永远不能读回0x1;它总是返回0x0

    这是意料之外的、因为:

    • 所有其他寄存器均正确反映了我写入的值。
    • 寄存器0x13没有记录为自清除位,所以我应该能够读回,0x1直到我显式写入0x0

    我按照数据表中表 8-7 的编程序列进行了操作。
    有人能分享他们的想法或见解、以帮助我调试此问题吗?

    我随附了一个 SPI 编程序列快照、其中显示了寄存器写入和读取情况。

    谢谢

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

    尊敬的 Sourav:

    寄存器 0x13、位 0 可自行清除。 过去、我们已指示客户在 1ms 后写入 0x0。 但是、当电子保险丝重新加载完成时、该寄存器将设置回 0、因此理想情况下、您应该将该位设置为 1、然后轮询该位、直到复位为 0、然后继续进行其余配置。 这两种方法都可以正常工作、不会导致任何问题。

    此致、

    Luke Allen

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

    您好 Luke、

    感谢您的澄清。 根据我观察到的情况、我的理解似乎是正确的。 如附加快照所示、我最初将该值设置为 1。 当我读回它时、EFUSE 重新加载似乎已完成、并且由于该位会自行清除、因此我正在读取 0。

    感谢您帮助确认这一点。

    谢谢

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

    我目前面临一个问题、在探测串行 LVDS 通道时、预期的测试模式不可见。 我附上了我使用的寄存器配置序列、它们遵循数据表表的表 8-7 中概述的步骤。

    您能否请查看并告诉我、如果我可能错过了一些内容、例如在测试模式寄存器设置中的内容?

    注意: 我尝试对0xBC通道 A 的自定义图形进行编程。根据数据表、自定义图形字应从 MSB 开始、我已确保在配置期间遵循该操作。

    ADC3564 编程序列/步骤
    存储器地址 数据值
    0x00 0x1
    0x07 0x4B
    0x13 0x1
    0x19 0x10
    0x1b 0x08
    0x39..0x60 所有位映射
    0x24 0x06
    0x25 0x18
    0x14 0x0
    0x15 0xf4
    0x16 0x0C
    0x1A 0x7
    0x0E 0x2

    II 还附加了 DA0 数据通道的快照。 Y 光标突出显示了一个 16 位模式、该模式看起来是 62.5MHz 上相同 8 位数据的重复 。 从波形,我观察模式10110000,对应0xB0. 但是、根据之前分享的配置、我将编写0xBC为自定义模式。 我仔细检查了位映射、正如您之前确认的、看起来是正确的。

    谢谢

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

    尊敬的 Sourav:

    当相关的器件/ADC 出现问题时、请联系我们并开始新的帖子。  

    我们无法在每个步骤中审核您的每个开发部分。 我们根本没有时间和人力去做。

    我们正在关闭此帖子。

    此致、

    Rob

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

    嗨、Luke Allen、

    同时使用来自 FPGA 的采样时钟和 DCLKIN 时钟。 有任何问题吗?