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.

[参考译文] ADS8920B:SDO 时序超出数据表规格

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1176987/ads8920b-sdo-timing-exceeding-datasheet-specifications

器件型号:ADS8920B
主题中讨论的其他器件:ADS8902B

你(们)好。  

我们在其中一个设计中使用 ADS8902B ADC、并希望对 SDO 的时序进行一些澄清。

以下是 ADS8920B 数据表的屏幕截图:

 (第11页)

 (第9页)

这意味着新数据将在 CLK 启动边沿之后的最后13ns 在 SDO 上准备就绪。  

下面是在我们实现该 ADC 时捕获的跟踪、显示了 CLK 启动边沿后 SDO 上的数据准备就绪的接近18ns。 我们的主器件是一款 STM32F746IG、它要求数据在采样前5.5ns 在 MISO (来自 ADC 的 SDO)上有效。 因此、我们目前违反了该要求。 我们的 SCLK 为50MHz

我的问题是:

  1. ADS8920B 数据表中是否还提供了 TD_CKDO 的最小值和典型值? 我们正在考虑在 ADC 上使用早期数据启动(EDL)模式、该模式将使 SDO 提前10ns (1/2 CLK)。 如果 TD_CKDO 仅为7ns、EDL 是否会在启动边缘之前将 SDO 10ns 移动到3ns? 然后、主器件将读取先前的数据。
  2. 为什么 ADS8920B 需要18ns 才能在 SDO 上准备数据? 这似乎违反了最大值为13ns 的数据表规格。

 此致、

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

    尊敬的 Max:

    我对答复迟交表示歉意。

    没有 针对 TD_CKDO 的最小值或典型值、但是、它不应在室温下接近13ns 最大规格的任何位置。  使用 EDL 只需提前半个时钟周期启动数据、但延迟时间将保持不变(最大13ns)。  EDL 的理念是 ADC 在主机处理器捕获数据的相同时钟边沿上启动数据。  只要主机处理器在捕获后不需要保持时间或保持时间等于0ns、那么该模式就能正常工作、并允许时钟边沿从主机传播到 ADC 的时间更长、 SDO 上的数据在下一个主机捕获边沿之前在主机 MISO 上保持稳定。

    2. 您没有说明您使用的 SPI 模式。  上电复位时、ADC 处于 SPI 模式00。  在此模式下、SDO 上的 MSB 在/CS 的下降沿启动、其余位在 SCLK 的下降沿启动(图56中 SDO 启动沿以蓝色显示)。  如果这是您使用的模式、则所附工程图中的启动边沿将是下降边沿、实际的 TD_CKDO 时间为8ns、这是此延迟的更合理的典型值。

    对于 SPI、您通常会在与启动边沿相反的 SCLK 边沿上捕获数据。  由于您使用的是50MHz SCLK、因此您不能保证 SDO 数据在下一个 SCLK 边沿前有效、因此在您的设置中应使用 EDL、前提是您的主机处理器的保持时间要求为0ns。

    此致、
    Keith Nicholas
    精密 ADC 应用

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

    您好、Keith、

    感谢您的回复。 我误解了图56。 我们实际上是在00模式下运行、因此 TD_CKDO 更像是7ns 至8ns。 我们已经使用 EDL 模式进行了测试、似乎已经解决了问题。  在50MHz 时钟(20ns 周期)下、 TD_CKDO 为最大值 13ns 时、我们必须使用 EDL 来保证数据在 CLK 上升沿准备就绪、以便主器件采样。

    但是、我看到了一个问题。  我们的主器件(STM32F7) 的"数据输入保持时间"为4ns。  使用 EDL、MISO 保持时间由 TD_CKDO 定义、范围为0-13ns。 在我们的情况下、它似乎是8ns、但这也可以很容易地是2ns、对吧? 在本例中、我们违反了 MCU 时序要求。  


    这让我们处于一种棘手的情况-使用 EDL 模式、希望 TD_CKDO 始终> 4ns 或不使用 EDL 模式、并希望 TD_CKDO < 4.5ns (MCU MISO 设置时间为5.5ns)。 事实已经证明情况并非如此。  

    除了降低 CLK 速度之外、您还看到其他解决方案吗?

    此致、

    最大

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

    尊敬的 Max:

    是的、不同器件上的 TD_CKDO 延迟可能会短得多、并且可能小于4ns。  在任何情况下、为了实现稳健的设计、您都需要根据 TD_CKDO 规格假设最小延迟为0ns。

    请记住、主机观察到的最小延迟将大于0、因为主机和 ADC 之间的 SCLK 信号的电路板延迟以及 ADC SDO 引脚返回主机 MISO 之间的延迟。  该往返延迟可能已达到几 ns 的总延迟。  您始终可以在 SCLK 路径或 SDO 路径中添加较小的延迟。  添加一个小型 RC 滤波器(或者只添加一个与电路板和输入引脚电容相结合的串联电阻器)也会增加额外的延迟。  另一种选择是添加单个栅极缓冲器、这也会增加几 ns 的延迟。

    满足规范的"最简单"方法是降低 SCLK 的速度、但我猜这在您的系统中不是一个好选择。

    此致、
    Keith