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.

[参考译文] ADS8698:ADC 采样更新缓慢/应答被移位1位

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1039800/ads8698-adc-sample-updating-slowly-answer-is-shifted-by-1-bit

器件型号:ADS8698

您好!

使用  ADS8698时遇到两个问题。

首先、即使我每秒轮询特定通道多次、采样值仅在大约1或2秒内更改一次。 目前仅使用一个通道。 通道输入端的电压表显示输入电压快速变化、但是、通过 SPI 接收到的值仅每1或2秒变化一次。

此外、ADC 通过 SPI 发送的每个应答字节都会被接收到一位移位、MSB 丢失。 我使用 Arduino 是因为使用 Arduino SPI 库与 DAC 进行通信。 SPI 模式选择正确。 更改 SPI 频率不会改变行为。 作为临时权变措施、我将输入范围加倍、以适应缺少 MSB 的情况。 不过、这会降低解析/精度、因此我要尝试找出初始问题。  

如果有任何建议/想法、我们将不胜感激!

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

    你好,拉萨德

    您的 ADC 的实际采样率是多少? 您的输入信号变化速度有多快? 您测量的 REFIO 和 REFCAP 引脚电压是多少? 您能否提供包含/SCLK、/CS、SDO 的时序图?  

    您的 SPI 的相位和极性配置是什么? 仔细查看您的时间安排将有助于解决该问题。  

    此致、谢谢

    戴尔

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

    您好 Dale、

    我尝试每秒采样1000次。 输入信号是放大的光电二极管、即使使用简单的电压表进行测量、也会快速变化。 REFIO 和 REFCAP 均为4.101V。 我使用的是内部基准。

    我使用的是 CPOL=0和 CPHA=1。 我还检查了其他三种组合、但结果不如预期。 遗憾的是、我现在无法绘制时序图。

    感谢您的帮助!

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

    你好,拉萨德

    如果您的输入信号变化迅速(由于您未提供此信息、我不知道变化的速度)、1000sps 的采样率应该不够。 您通常必须使用更高的 ADC 采样率来捕获瞬态或 STEP 信号。 此外、请注意、ADS8698有一个内部 LPF 滤波器、它需要一段时间来使输入信号稳定、因此该 ADC 可能不是捕捉"快速"信号或瞬态/阶跃信号的合适器件。 一旦您可以提供有关您的模拟输入信号的更多信息、我将能够为您确认这些信息。  

    您的 SPI 配置正确、但是您的控制器应该能够在 SCLK 下降沿之后的 tht_CKDO (10ns)期间捕获 SDO 数据。 我认为您的 Arduino 无法正确处理它。 时序图对于检查和验证非常有用。

    此致、

    戴尔

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

    您好 Dale、

    我的输入信号是放大的光电二极管。 当我更改照明条件时、信号基本上瞬间发生变化(我没有方法来测量延迟、但由于它只是一个光电二极管和一个运算放大器、所以我没有太多的期望)。 但是、ADC 输出需要一两秒来更改其值、而不受我每 秒获取10、1000或尽可能多样本的影响。 我知道 LPF、但我认为这不会导致我看到的行为、例如、当输入信号发生相同的变化时、输出信号需要一两秒从1V 跳转到4V。

    这是照明条件有些恒定时的输入信号。 更改后、信号在0和5V 之间变化
    https://imgur.com/a/obOOvoG

    感谢您的观看!

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

    你好,拉萨德

    您能否提供时序图和原理图? 我建议您使用一个信号发生器将正弦波信号(例如50kHz 或更高)发送到 ADC 输入以进行测试、然后检查 ADC 的输出代码。

    此致、

    戴尔

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

    您好 Dale、

    我将 ADC 转移到了新的电路板、现在采样工作正常。 不知道是什么导致了它、首先、电路板是相同的。

    这是一个 MAXED OUT 输入的时序图: https://imgur.com/a/63DjCrC

    Arduino 收到11111111 11111111 1000000、因此18个数据位中的最后一个数据位错误。 我注意到、MISO 在最后一个字节中的第二个 SCLK 下降沿时下降到低电平、而数据表显示 SDO/MISO 数据在 SCLK 下降沿时保持稳定。 因此、在发送前两个(命令)字节后、我尝试从 CPHA = 1切换到 CPHA = 0、这看起来很成功、接收到的数据是正确的。 因此、当 SCLK 下降时、SDO 数据似乎不够稳定、或者另一方面、Arduino 在 SCLK 下降后无法足够快地对 MISO 线路进行采样。

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

    你好,拉萨德

    感谢您提供时间安排。 对于第17个 SCLK、MISO 上的数据位为'1'、这是 ADC 的最后一个位(D17-MSB)。 第34个 SCLK 的 MISO 上的数据位也是'1'、这是 ADC 的最后一个位(D0-LSB)。 您能不能告诉我您认为这些位错了吗? 此外、您在此时序中的数据的模拟输入信号(V)是多少?

    此致、

    戴尔

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

    您好 Dale、

     示波器正确解读数据、没有任何问题。 但是、Arduino 错过了最后一个1、声称已收到0。 因此、由于 MISO 线路在第34个 SCLK 之后很快下降到低电平、我猜 Arduino 只是采样 MISO 线路的速度不够快。 似乎是时候切换到 Arduino 论坛了。

    感谢您的咨询!

    PS:我使用了一些恒定的输入电压来最大程度地增大输入、我不记得确切的值。  

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

    你好,拉萨德

    除了检查 Arduino 是否能够在有限的时间内捕获数据外、 我还建议您通过施加不同的模拟直流输入信号来检查时序、因为最后一位(LSB)可能会因设置中的噪声而在1和0之间变化。

    此致、

    戴尔