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.

[参考译文] ADS8685:SPI 编程和动态范围变化

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/971360/ads8685-spi-programming-and-dynamic-range-change

器件型号:ADS8685

尊敬的 E2E 团队/ADC

在 ADC ads8685配置寄存器写入和读取操作期间:
   在发出读取和写入命令之前、还是在从读取/写入到转换读取的转换过程中、我们需要监控 RVS 信号的状态?

在写入寄存器配置并在下一次调用中回读时、结果不正确、需要再读取一次、原因是什么? 而根据数据表和博客详细信息、在 CS 从低电平到高电平期间、执行命令、这意味着必须提供下一个读取周期数据(可能会给出一些延迟)

在读取数据(转换数据)时、在 RVS 变为高电平且 CS 通过代码使其变为低电平后、我们是否需要等待直至 RVS 下降到低电平或从低电平到高电平转换足够了? (数据表检查 C 的图1和3在 RVS 时序上不匹配)。

4.在转换结果读取中,读取32位的第1个字节和第2个字节中可用的数据时,它给出了以下错误信息:这些结果来自之前的转换(即比最后一个更早的转换),我的理解是错误的或正确的。 如何读取最新转换而不是旧转换。 这种混淆是根据数据表、NOP 命令(0x00)和 READ_BYTE 命令(0x48)引起的。

5.在 CS 高电平之后写入 Range Select 和输出(新)可用数据的命令需要多长时间?
我正在考虑 CS Rising 将完成当前的写入指令、并自动启动数据和数据转换阶段。 我特别需要处理动态范围控制、通过根据每个样本的输入信号控制范围、最大采样率将为48KSPS。 使用40MHz 的 SPI 是否可行。 我的计划如下:1. 通过 MCU 读取信号以获取范围评估并使用 SPI 更改 ADS8586的输入范围、然后转至转换周期。

此致

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

    您好 Pankaj、

    我将在星期一再接回来。

    此致、

    戴尔

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

    您好 Pankaj、

    没有必要、您可以在启动新的数据传输帧之前等待 tconv_max 时间。

    2.当在帧 F 中向 ADC 发送写入或读取命令时、该命令将被传输到命令处理器、以便在下一个 CONVST/CS 上升时解码、并在帧 F+1中进一步执行操作、因此需要多一个周期来获取 SDO 上的数据。 如果您有更多问题、请上传您的时间安排。

    3.是的、您应该等待 RVS 直到它变为低电平、或者您可以等待比 tconv_max 更长的时间、而不是监控 RVS 信号。

    4、我想您正在讨论图1中的时序、如果您在采集时间(Tacq)内读取数据、则转换数据始终是新的、而不是以前的数据、请参阅图3-6中的时序。 我不知道您在谈论 READ_BYTE 命令(0x48)、请澄清一下。

    5.寄存器写入命令将在下一个 CONV/CS 而不是当前 CONV/CS 的上升时间执行。 因此、您至少需要2个周期来获取具有新范围的数据。

    此致、

    戴尔

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

    您好 Dale、

    感谢您的更新、我的理解是:

    我喜欢通过监控 RVS 来优化我的读取、写入命令以及转换结果。 根据您的解释和数据表、当 CS 处于低电平(即为器件计时以进行读取/写入)和 CS 处于高电平(转换和执行早期命令(如果发出))时、RVS 将为低电平。 RVS 从低电平到高电平的转换表示转换结束或上一个命令执行结束。 在 CS 从低电平到高电平转换之后、我不应发出下一条命令、直到 RVS 从低电平到高电平转换。

    2.我需要在写入和读取命令之间控制一个从低到高的 RVS 转换、而只有当我发出写入和读取同一命令时才会获得写入值。 我能够成功地读取和写入、不会共享计时波形。

    3.我不同意你的说法,我要等到 RVS 变低,所有的解释都是在 RVS 从低到高转换后读出来的。 CS 高电平到低电平后有设置时间、需要遵循(14-15 nsec)。

    4.好的。 我能否读取前16位并将 CS 提升为高电平以完成读取转换结果、从而减少默认时间而不会出现任何问题?

    从命令表中读取字节命令。 我感到困惑的是、作为该命令的 MSB 和 NOP 命令是相同的。 NOP 用于读取转换结果、状态机是如何处理转换结果以及能够在前16位中发送转换结果的?

    5.很好的了解。 这意味着我需要从"范围开始"命令到 RVS 低电平到高电平状态的后续时间
    a)写入命令的时间(范围变化)- 32位传输时间
    b)内部执行(即 CS 变为高电平后)-在此期间、RVS 将为低电平
    C) RVS 变为低电平到高电平

    它将超过 A+b+C

    此致

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

    您好 Pankaj、

    3.请参阅下面的时序, 如果您正在监视 RVS 信号,您应该等待 RVS 直到它变为低电平(第2次)。 我没有要求您在转换期间读取数据。

    4、ADC 只需16个 SCLK 时钟即可处理16位数据。 我不知道你的意思是"前16位"。 采集时间取决于您的实际采样率。 例如、如果 ADS8685 ADC 以500kSPS 的最大采样率运行、则必须保持1000ns 的最小采集时间、不能将其减少到小于它。 对于 ADS8685上小于500kSPS 的任何速度、1000ns 是最短采集时间。

     您的图片未成功上传、我不理解您的第二个问题。 请澄清。

    此致、

    戴尔

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

    4、ADC 只需16个 SCLK 时钟即可处理16位数据。 我不知道你的意思是"前16位"。

    我的意思是说我只能发出16个时钟来读取 ADC 转换结果、不需要32个时钟、剩余的16个时钟是可选的、并且会对结果产生任何影响。 只要我不需要其他信息以及数据(如距离位等)、它将节省16个时钟的时间、而这些时钟不会提供任何值。

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

    您好 Pankaj、

    感谢您的澄清。 当您按如下所示在帧中获取数据时、如果您不关心这些标志和设置、则可以忽略其余的16位。

    此致、

    戴尔  

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

    您好 Dale、

    我没有得到我的答案、并试图再次解释。

    我只需要来自 ADC 的16位转换结果。 作为 SPI 中的第一位 MSB、我能否发出16个时钟来获得结果并终止读取数据周期。

    这样做是否会影响我在20 μ s 后需要的下一次转换、这比 ADC 的总周期高得多。

    谢谢。

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

    您好 Pankaj、

    正如我在之前的响应中所回答的那样、 如果你不关心这些标志和设置、你可以忽略其余的16位、这意味着当你从 ADC 读取数据时、你只能发出16个时钟来获得16位转换结果。

    2.不会影响你的能力

    •   保持 Tacq (采集时间)高于1000ns、这是 ADS8685 ADC 上 Tacq 的最低要求。
    •   确保实际周期时间高于或等于2000ns、因为 ADS8685上的最大采样率为500kSPS、不能超过该值。

    根据您的40MHz SCLK 频率、16位*25ns+tconv_max+tsu_csck+tht_CKCS= 400ns + 1000ns + 7.5ns + 7.5ns = 1415ns、这不能满足第二个时间要求、您仍然需要等待总周期时间达到或高于2000ns。 因此、您的唯一优势是您的控制器不需要将其余16个时钟发送到 ADC、如果您仅发出前16个时钟、您的控制器可以在休息时间执行其他操作。

    但愿这些帮助。

    此致、

    戴尔

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

    您好 Dale、

    谢谢。

    这结束了我的问题。