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.

[参考译文] ADS1282:与多路复用器输入开关相关的问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1232545/ads1282-problem-related-to-mux-input-switching

器件型号:ADS1282

大家好、我启动并运行了 ADS1282 、我已使用 正确的默认寄存器值和针对一些已知电压的正确 ADC 代码对其进行了验证。

1)但产品数据表提到了对于 SINC 滤波器模式从8000SPS 到128000SPS 的 SPS 的 SPS,而 CONFIG0数据速率选择寄存器位[5:3]提到了数据速率仅高达4000sps,而最后三个可能的位组合(101,110,111)未使用。 是否有方法 使用那些大于4ksps 的高 SPS 运算?

2)此外、SPS 小于500sps 的 ADC 输出都很好、在随机实例处的值没有起伏。但每当我将 SPS 增加到超过500sps 时、在任何 PGA 增益和其他配置下都会重复出现一些异常值。这可能是什么原因?

图:窗口1

图:窗口2

3)此外、如果我使用 sps 等于500sps 的采样数、则会有一些延迟、每100个输入上的样本便会在 input1 (AIN1)和 input2 (AIN2)之间连续切换。 每次采样后、我使用了3600微秒的延迟。 这样做也有同样的问题随机发生的噪声或异常值。后来我发现3600微秒的延迟是问题的原因在这种情况下

如何消除 ADC 电压中那些不必要的电压突变。

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

    嗨、iamcra、

    1)、但产品数据表提到对于 sinc 滤波器模式 SPS 从8000SPS 到128000SPS、而 CONFIG0数据速率选择寄存器位[5:3]提到数据速率仅高达4000SPS、而最后三种可能的位组合(101,110,111)未使用。 是否存在 使用那些高于4ksps 的较高 SPS 的方法?

    规范显示 FIR 模式的最大速率为4kSPS、如果您不使用 FIR、而只使用 sinc 滤波器、那么您就可以获得更高的数据速率-这就是较高数据速率范围被称为 sinc 滤波器模式的原因。

    3)此外、如果我使用 sps 等于500sps 的采样数、则会有一些延迟、每100个输入上的样本便会在 input1 (AIN1)和 input2 (AIN2)之间连续切换。 每次采样后、我使用了3600微秒的延迟。 这样做也有同样的问题随机发生的噪声或异常值。后来我发现3600微秒的延迟是问题的原因在这种情况下

    [/报价]

    请注意、每次切换输入时、输出都需要重新布置。 在500SPS 速率下、您将在获得完全稳定的数据之前看到124ms 的垃圾数据。 假设 x 轴是样本数、我不知道您何时决定在输入之间切换、并且我无法辨别什么是垃圾数据、您的实际样本是什么。

    此外、我有点困惑、为什么在每次采样后都需要添加延迟。 假设您使用的是连续模式、则在该延迟期间 DRDY 将存在其他几次切换、以表示发生了更多转换。 输出不会等待用户抓取数据、如果未捕获、数据将丢失。  

    2)此外,SPS 低于500sps 的 ADC 输出也很好,在随机实例中值没有凸起。但每当我将 SPS 提高到500sps 以上时,在任何 PGA 增益和其他配置下都会重复出现一些异常值。原因可能是什么?

    请注意、更改数据速率也会重置数字滤波器、您需要再次等待62个读数才能获得正确的数据。  就像上面提到的、我不知道您是否为您展示的波形提供了稳定的数据。

    概括来说、器件期望用户在每次 DRDY 切换后捕捉数据。  如果您不打算采用这种方式、我 认为您可能想使用其他器件。 大多数人看到这款器件、并想将其用于实现高精度。 不过、 ADS128x 系列非常专业。 这就像在音频应用程序之外使用音频 ADC。 您当然可以做到、但我猜是您可以在其他地方为您的应用找到更好的器件。

    此致!

    -科尔

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

    1) 1) 此外、我有点困惑、为什么每次采样后都需要添加延迟。 假设您使用的是连续模式、则在该延迟期间 DRDY 将存在其他几次切换、以表示发生了更多转换。 输出不会等待用户抓取数据、如果未捕获、数据将丢失。

    我们的 想法是在1秒的间隔内、从连接到 AIN1和 AIN2的两个检波器中的每一个连续采样100个值。 正如您在切换输入后所指示的那样、我等待140ms 以便滤波器稳定(在安全侧)。 在两个输入之间的切换总共需要280ms、在1秒的剩余720ms 内、将每个地震检波器分频为360ms。现在要在360ms 内采样100个 ADC 值、我等待每次采样之间3600微秒。 器件是否不适合此操作?

    我遵循的操作顺序如下:

    i)在按命令模式读取数据中配置 ADS1282。

    ii)我最初 通过写入 CONFIG1寄存器来选择输入1作为多路复用器输入、等待140ms 以使滤波器稳定

    III)发送 RDATA 命令、然后等待 DRDY 对 ADC 值进行采样。 然后等待3600微秒。

    IV)重复步骤 iii、直到 i 为输入1采样100个 ADC 值。

    v)  通过写入 CONFIG1寄存器来选择输入2作为多路复用器输入、等待140ms 以使滤波器稳定

    vi)发送 RDATA 命令、然后等待 DRDY 对 ADC 值进行采样。 然后等待3600微秒。

    VII)步骤 vi 将重复执行、直到 i 为输入2采样100个 ADC 值。

    VIII)从步骤2再次重复

    2)请注意、更改数据速率也会重置数字滤波器、您将需要再次等待62个读数才能获得正确的数据。  就像上面提到的、我不知道您是否为您展示的波形提供了稳定的数据。

    数据速率在启动时只更改一次、然后经过一定的延迟才能稳定。 对于超过500sps 的数据速率执行此操作、我会在随机实例下看到 ADC 值中不必要的突变、即使我不使用采样之间的延迟并且仅对单个地震检波器执行操作也是如此。

    在下图中、x 轴是时间、y 轴是从 ADC 值派生的米/秒。 您可以看到、在绘制图形时、良好的值集可能看起来像这样。

    该图形的不需要的值远高于或低于这些值、因此看起来

    1)如果你不使用 FIR 而只使用正弦滤波器,那么你可以获得更高的数据速率——这就是为什么较高的数据速率范围被称为正弦滤波器模式的原因。

     

    如果我按照这个模式、我能够达到的最大值为111 (Bits [ 5:3])、对于 sinc 滤波器模式、这个值将是32k?

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

    嗨、iamcra、

    如果我遵循此模式,我最多可以移动111 (Bits[5:3]),对于 sinc 过滤器模式,这将是32k?

    当您更改 DR 时、本质上会更改抽取率。 FIR 是一个恒定的32因子抽取。 上面链接的图显示了 sinc 为8 - 128抽取。 如果我们将该列除以32、抽取率变为128 - 8。 用此列中新计算的值除以1.024MHz、即可获得所需的数据速率。 例如、100b 将是1.024M/( 256 /32)= 128kSPS。

    为了更彻底一点、111b 不是有效的选择。

    在数据速率高于500sps 时执行此操作时,即使我在样本之间没有延迟并且仅对单个地震检波器执行操作,我也会在随机实例中看到 ADC 值的不必要突变。

    感谢您的澄清。 我们是否可以移除地震检波器并将输入端短接至共模电压、然后重新获取数据? 例如、AVDD = 5V、AVSS = 0V、那么 Vcm = 2.5V。

    将这些值绘制在直方图上也会有所帮助。 如果您没有此类后期分析工具、建议您使用模拟工程师计算器并将数据加载到:

    从较高的层次上讲、将数据速率更改为较高的值只会牺牲性能来换取带宽。 如果出现问题、卸下地震检波器将使其不会成为问题的根源。 我没有通过 GUI 在 EVM 上看到此类跳跃、因此将器件置于已知状态将有助于我了解问题的来源。

    在非理想设置中、也可能会出现混叠、但我没有您的原理图。 当 MCU 固件由于 SPI 线路上的中断优先级错误或数据完整性不良而错误处理 SPI 帧时、我也看到了这一点。 我不知道什么时候可以、所以让我们看看能否缩小范围。

    我们的 想法是在1秒间隔内从连接到 AIN1和 AIN2的两个检波器中的每一个采样100个值,连续[/报价]

    听起来不错,感谢澄清。 这与该器件可实现的功能一致。

    这些步骤看起来不错、除了一个主要问题、它看起来不像您将 DRDY 视为 MCU 的中断输入、并在3600us 等待后任意捕获数据。 3600us、更具体地说、1/500 = 2ms 是最长等待时间。

    表15显示、一旦第8个 SCLK 结束、就可能在之后瞬间发生 t_DR 切换(这就是表中最小值为0的原因)。 将一些裕度添加到2ms 意味着肯定会有另一个转换。 相反、MCU 应监控 DRDY 引脚并在命令发送后等待其切换。 希望是有意义的。

    此致!

    -科尔

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

    1)这些步骤看起来不错、除了一个主要问题、它看起来不像您将 DRDY 视为 MCU 的中断输入、并在等待3600us 后随意抓取数据。 3600us、更具体地说、1/500 = 2ms 是最长等待时间。

    嗨、Cole、正如我之前所说、我遵循的顺序如下:

    i)在按命令模式读取数据中配置 ADS1282。

    ii)我最初 通过写入 CONFIG1寄存器来选择输入1作为多路复用器输入、等待140ms 以使滤波器稳定

    III)发送 RDATA 命令、然后等待 DRDY 对 ADC 值进行采样。 然后等待3600微秒。

    IV)重复步骤 iii、直到 i 为输入1采样100个 ADC 值。

    v)  通过写入 CONFIG1寄存器来选择输入2作为多路复用器输入、等待140ms 以使滤波器稳定

    vi)发送 RDATA 命令、然后等待 DRDY 对 ADC 值进行采样。 然后等待3600微秒。

    VII)步骤 vi 将重复执行、直到 i 为输入2采样100个 ADC 值。

    VIII)从步骤2再次重复

    如此处所述、在通过命令字节将读取的数据发送到 ads1282之后、MCU 首先使用 ISR 等待 DRDY 变为低电平、然后为另一个函数采样 ADC 值打开大门。 完成此操作后、会使用3600微秒的延迟。 在那个时间的延迟之后、通过命令字节再次读取数据、并重复该过程、直到 MCU 为该多路复用器输入采样100个值。

    但是、如果我将延迟减小到非常小的值、比如大约4微秒、则读数上就不会出现之前看到的此类跳跃。 这些延迟在我增加 SPS 时产生了更加显著的影响。 我发现、3600微秒延迟对250 SPS 没有影响、但当我将其增加到250以上时、值中出现跳变。

    2)在非理想设置中、也可能会出现混叠、但我没有您的原理图。 当 MCU 固件由于 SPI 线路上的中断优先级错误或数据完整性不良而错误处理 SPI 帧时、我也看到了这一点。 我不知道什么时候可以、所以让我们看看能否缩小范围。

    在负边沿触发 DRDY 的 ISR。 一旦产生中断、就没有延迟、MCU 开始对4个字节进行采样、每个字节之间有6微秒的延迟。

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

    嗨、iamcra、

    感谢您的澄清。 总之、我认为等待3600us 和4us 之间没有任何明显的区别。 您已经等待了稳定的数据、因此可以有效地决定在两个延迟之间的不同时间是否需要数据。 换句话说、如果延迟时间更长、则获取100个样本会花费更长时间。 如果我不了解情况、请告诉我。

    直观地说、3600us > 500SPS、4us < 500SPS、而在其他器件中、我知道延迟的增加会是个问题。 不过、我没有任何关于 ADS1282的信息表明这是一个明显的问题。 实际上、ADS1282表示如果在手动转换模式下读取数据时完成、转换结果会被保留。 我会仔细研究它、然后回复给您。

    此致!

    -科尔

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

    嗨、iamcra、

    我检查了,似乎没有任何问题与读一个有点后. 我想尝试不同的策略。 您能否实现扫过满量程的斜坡波形或三角波形? 我认为、我们知道的、具有周期性的东西将有助于我们缩小问题的范围。

    此致!

    -科尔