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.

[参考译文] ADS131E06:使用 ADS131e06芯片、不监控 DRDY 引脚

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/755631/ads131e06-using-ads131e06-chip-without-monitoring-drdy-pin

器件型号:ADS131E06

大家好、

早上好!

我需要对 ADS131e06 ADC 芯片的 DRDY 引脚用法进行一些澄清。 我实际上已经浏览过数据表几次了、但对我来说仍然有点困惑。

我有以下问题;

1.我们能否在不监控 DRDY 信号的情况下从该器件读取数据?

2.据我了解,有两种读取方法叫做 RDATAC 模式和 RDATA 命令模式。 对于 RDATAC 模式、必须监控 DRDY 信号。

  但 RDATA 命令模式的说明如下所述;

9.5.3.10 RDATA:读取数据

当不处于连续读取数据模式时、RDATA 命令将最新数据加载到输出移位寄存器中。 在 DRDY 变为低电平后发出此命令以读取转换结果。 此命令没有 SCLK 速率限制、后续命令或数据检索 SCLK 不需要等待时间。 要在发出 RDATA 命令后从器件检索数据、请确保 START 引脚处于高电平或发出 START 命令。 使用 RDATA 命令读取数据时、读取操作可能会与下一次发生的 DRDY 重叠、而不会损坏数据。 RDATA 可在新数据可用后多次发送、因此支持多数据回读。 图41说明了使用 RDATA 命令的建议方法。 RDATA 最适合于必须读取寄存器设置或用户无法精确控制时序的系统。 建议使用 RDATA 命令读取数据、以避免在不监控 DRDY 信号时数据损坏

  请检查上述两项陈述、这会导致对 DRDY 信号的混淆。

在我们的设计中、目前我们只打算使用纯 SPI 接口、而不使用任何外部 GPIO 依赖项。

4.是否有人能告诉我 RDATAC 和 RDATA 命令模式下的 DRDY 信号行为有何区别?

谢谢、此致、

Renil Raju

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


    DRDY 可供您在每次新数据可用时读取数据。 这并不是绝对必需的、但您可能会在数据周期和读取之间不同步、并且可能会错过数据读取。

    在 RDATA 和 RDATAC 模式之间、DRDY 的行为并不不同。 在这两种情况下、如果新的转换完成、DRDY 将变为低电平。 DRDY 在 SCLK 的第一个下降沿返回高电平、或在4fclk 脉冲指示新数据转换准备就绪前保持低电平。 RDATA 和 RDATAC 模式之间的区别在于、如果您使用不同的读取数据模式、可能会得到哪些数据。

    在 RDATAC (连续读取数据)模式下、每次时钟输出 SCLK 时 ADC 数据都会出现。 当您尝试简化通信并只是希望查看器件输出的数据时、这种方法非常方便。 此模式下的问题是、如果不查看 DRDY、就不应执行此操作。 这样、您就可以在正确的时间时钟输出数据、并在新转换完成之前将数据时钟输出。

    如果您正在进行时钟移出数据、并且新的转换完成、则新数据仍会放在 DOUT 寄存器中。 在这种情况下、您将时钟输出数据的第一个位、然后从新转换中时钟输出数据的第一个位。 这将为 ADC 读取提供错误的数据。

    使用 RDATA 命令、消除此类错误。 使用 RDATA 命令时、输出数据被缓冲到 DOUT 寄存器。 即使您获得了新的转换、除非发出另一条 RDATA 命令、否则输出数据也不会进入 DOUT。

    简而言之、RDATAC 在 DOUT 上具有非缓冲数据、如果完成新的转换、RDATA 命令在 DOUT 上具有缓冲数据、并在发出 RDATA 命令时进行更新。

    希望这能解答您的问题。 将任何其他意见或问题回帖。


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

    我们尝试将相同的仅 SPI 设计用于您正在讨论的 ADS131E06、并发现 RDATA 命令不能按数据表中所述工作;如果您在错误的时间读取数据、数据将损坏。 导致损坏的时间窗口比 RDATAC 命令小得多、但仍然存在。 您可以在此处看到相关主题: e2e.ti.com/.../615552

    祝你好运、

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


    感谢您参考此帖子。 我以前从未见过这个。


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

    非常感谢您的宝贵意见。

    @Brian、

    我检查了您的线程、但您是按字节发送数据(或 SCLK)、对吧? 根据我的理解(如果我错了,请纠正我的问题!),我们需要在发出 RDATA 命令后连续发送 SCLK,对吧?

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

    感谢您的回复。

    我想在这里再添加一个问题。

    1.正如您所说,如果 RDATA 命令在 DOUT 上缓冲数据,那么如果有新的转换数据到达,会发生什么情况? 是否仅更新独立于 RDATA 命令的输出缓冲区? 或者,只有在我们通过发出 RDATA 命令读取先前的数据时,输出缓冲区才会出现下降。 否则,如果在更新输出缓冲区时尝试发出 RDATA 命令,我相信这也会导致读数损坏,对吧?

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


    如 Brian 的帖子所示、新转换数据到达时可能会出现问题。 我没有机会通读整个帖子、也没有机会与 Tom 跟进此帖子以了解更多详细信息。 但是、看起来1)/DRDY 处于 RDATA 命令的3.4us 范围内、2)状态寄存器在/DRDY 下降时不会被读取、则数据可能会损坏。

    在该帖子中、Brian 指出有两种变通办法:1)延迟发出 RDATA、直到/DRDY 下降;2)如果/DRDY 在读取状态寄存器之前下降、则重新发出 RDATA。 在任何一种情况下、您似乎仍然需要监控/DRDY 以解决此问题。 在该问题中、发出 RDATA 命令后、将数据锁存到 DOUT 可能会出现一些错误。

    此时、我不知道该错误的来源、我从未亲自观察过。 我认为使用/DRDY 作为中断是防止读取问题的最安全方法、我会使用该方法正确读取数据。


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

    雷尼尔-

    我们以尽可能快的速度发送 SCLK、对于我们的微控制器而言、这会在 SCLK 的每个字节之间产生一个较小的延迟(最佳情况)。 如果状态寄存器在 DRDY 掉电时处于计时输出过程中(它不必落在字节之间)、则数据寄存器将以不可预知的方式损坏(我们在内部短路模式下运行 ADC、 腐败非常明显)。 我为一些时间增加了字节之间的额外延迟。 由于我们只有有限的 SPI 总线速度、我们无法看到速度是否足以完全避免问题。  

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

    再次感谢您的回复。

    因此、作为结论、

    1.要在 RDATAC 模式下读取 ADS131e06 ADC 芯片、必须将 DRDY 引脚作为中断进行监控。

    2.对于 RDATA 模式下的读取、即使不是强制性的、也建议将 DRDY 引脚作为中断进行监控、以避免数据损坏。

    谢谢、此致、
    Renil Raju