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.

[参考译文] ADS1218:在 ADS1218的模拟输入上提供正弦波时数据不正确

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1238161/ads1218-data-improper-when-giving-sine-wave-at-analog-inputs-of-ads1218

器件型号:ADS1218
主题中讨论的其他器件: ADS131M08

您好!  

我正在尝试读取与 Arduino Uno 连接的 ads1218 ADC 的数据。 当我连接了 AIN0 (+ve)和 AIN1 (-ve)的差分输入(桥:最大输出70 mV) 、fosc=4Mhz、fMOD =15.625kHz (fosc/256)、PGA=1/2/128等、抽取因子(默认值:1920)、sinc3滤波器、单极格式、我能够正确读取数据。

但我提供正弦波作为 AIN0 (+ve)和 AIN1 (-ve)的输入、振幅为1.25V、直流失调电压为+1.25V、频率为100Hz (Fdata= 100Hz)、因此抽取因子= 15.625kHz/ 100Hz=156.25。 然后、使用单极格式、sinc 3滤波器、将 MDEC0 (抽取因子的 LSB)的值设置为0x38 (十六进制)、将 MDEC1设置为0x71 (十六进制)。 使用的 VREF 为2.5V。  输出应该为2.5V 的 Vpp 正弦波、但我得到的输出始终是恒定值2.5V。 我还在示波器中检查了正弦波的输入,输入端很好。 请帮助我解决此问题。

谢谢!

此致

S·乔达里

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

    尊敬的  Sushmita Chaudhary:

    对 ADC 可能存在一些误解。  ADS1218是一款 Δ-Σ ADC、它对输入进行过采样、将输入信号转换为调制器位流、然后应用一个低通滤波器以消除压至较高频率的量化误差。  那么、需要考虑两个因素。  第一个是数据输出速率(而不是调制器频率)应用于根据奈奎斯特定理确定最大输入频率。  其次、sinc3滤波器将具有3dB 滚降、这可能会减少返回的 ADC 计数。

    如果 Fdata 输出速率为100Hz (SPS)、则最大输入频率为50Hz。  使用 sinc3滤波器时、Fdata = 100Hz (SPS)时、3dB 截止频率为0.262*Fdata 或26.2Hz。

    这是基于 100Hz (SPS)的数据输出速率、但实际上数据输出速率为 FMOD/MDEC。  MDEC 为0x138、为十进制312、fmod 为15625Hz。  这会将所选 MDEC 值的数据输出速率设置为50sps。  您将需要相应地调整您的输入频率和/或 MDEC 值。

    此致、

    鲍勃 B

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

    尊敬的 Bob:

    感谢您的讲解。 我将尝试在我的代码中实现这一点、并向您提供反馈。

    此致

    S·乔达里

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

    尊敬的 Bob:

    感谢您的讲解。 我将根据更改采样率和抽取因子设置获得正弦波输出。 我对 MDEC1寄存器设置中的双极和单极选择有一个小疑问。

    当我施加振幅为0.5V 且直 流失调电压为0.5V 且输入频率为10Hz (使用的采样率:100sps)的正弦波时、如果我选择双极设置、那么我的数据输出振幅会因给定的0.5V 直流偏移而发生偏移、因此 Vpp 将达到1V。

    但是、当我通过单极设置施加同一信号时、在本例中、我将得到两倍的输出、并且100个样本中的输入正弦波的数量也无法正确重建。

    您能否解释一下、在选择单极和双极格式时、显著的变化是什么? 如果我们要选择单极并且如果我们应用没有和直流偏移的正弦波、那么启用后的内部基准(使用了2.5V)应将正弦波改变2.5V。  

    根据数据表、我们提到如果禁用缓冲器、则 AIN 可以在(-100mV 至5.1V (AVDD=5V))范围内适用、因此如果我在 AIN0和 AIN1之间施加负差分信号(假设为-1 mV) 并且双极设置在 MDEC1中设置、抽取值为1920、PGA 为1、则此情况下 ADC 提供0输出。  但是、由于选择了双极、因此它应该提供负值输出。

    请告诉我对上述单极和双极的理解是否正确。

    谢谢!

    此致

    舒斯米塔  

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

    尊敬的 Sushmita:

    在双极格式中、转换数据的输出是二进制补码、满量程范围(FSR)为+/-Vref 或+/-2.5V (5V)。  对于相对于接地端测量输入的单端测量、由于 AINN 固定在接地端、AINP 永远不会低于接地端、因此您只能测量最多正满量程(+FS)时会丢失一位。  在单极格式中、数据是标准二进制代码、您将只会看到输入的正代码。  因此、您可以重新捕获之前丢失的位、而不是将+FS 限制为0x7FFFF、现在可以将代码转换为0xFFFFFF。

    因此、代码到电压的计算会发生变化、因为 FSR 从5V (+/-2.5V)变为2.5V (+2.5V)、结果代码在重新捕获-FS 部分时的结果将是前一个结果的两倍。  因此、如果您在计算中使用正确的 LSB 电压值、最终结果电压应该相同。

    如果您处于二进制模式和缓冲器禁用状态、并且 AINN 为0V (接地)且 AINP 略低于接地值、则应看到稍负值。  这里假设偏移校准已删除任何可能的偏移、并且您已通过读回寄存器内容验证您是否仍然处于单极模式。

    此致、

    鲍勃 B

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

    尊敬的 Bob:

    感谢您的解释。 我在两种模式下应用了信号、并根据下面给出的说明验证了结果。

    假设我要同时从所有通道(AIN0至 AIN7)采集数据、这可行吗? 但根据数据表、我们可以一次对一个输入信号进行多路复用。 是否有机会采集一个通道、然后等待第一个通道的数据转换、然后采集另一个通道 、但这可能会导致数据延迟并且可能无法同步。

    那么、如何在不丢失任何数据的情况下同时从所有通道获取数据呢?

    谢谢!

    此致

    S·乔达里

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

    尊敬的 Sushmita:

    ADS1218具有带多路复用器的单个 ADC、因此可以连接多个输入、但一次只能转换一个输入。  此方法不同于包含多个用于同步转换的 ADC 的器件。  ADS1218设计用于缓慢移动的输入信号、可以在对多路复用器进行循环时捕获这些信号。  如果需要同时精确监控多个输入、则需要使用不同的器件。  请尽可能查看 ADS131M08。

    此致、

    鲍勃 B

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

    尊敬的 Bob:

    感谢您的解释。 我们是否可以通过以下方式获取逐个通道(最大速率:100Hz):写入 ADS 1218的寄存器、方法是在给出一些延迟后选择 MUX 的不同输入、然后发出 RDATA 命令和 DRDY 状态以及切换 CS 以获取24位数据? 但是否必须多次调用 RDATA 命令、以便从多个通道采集24位数据。  

    谢谢!  

    此致

    S·乔达里

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

    尊敬的 Sushmita:

    ADS1218要求数字滤波器稳定以获得正确的转换输出。  这意味着、在使用 sinc3滤波器时、前三次转换是不稳定的数据且无效。  第4次转换已稳定数据并且有效。  因此、在进行多路复用输入通道更改后、您必须监视 DRDY 是否发生从高电平到低电平的转换、而不用考虑前3次操作和第4次发出 RDATA 命令。  每次输入通道改变后都需要执行此操作。

    您选择 ADS1218的原因尚不清楚。  这是一款较旧的器件、在循环多路复用器时使用会更加复杂一些。  使用 ADS1218、将很难捕捉8个输入信号的转换而不对被转换的输入信号进行一定程度的降级。  如果需要准确地表示输入交流信号、则必须非常快速地循环通过多路复用器。  更改抽取率以提高转换速度也会增加噪声。  收集数据的最快方法是使用快速趋稳滤波器(sinc1)、这只需要忽略通道更改后的第一次转换。  您还可以在通道更改后使用 DSYNC (命令或引脚)立即复位数字滤波器、从而使快速趋稳滤波器模式下的下一次转换有效。

    此致、

    鲍勃 B

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

    尊敬的 Bob:

    感谢您提供详细信息。 由于单通道要求、我选择了 ADS1218 (已在实验室中)、但现在升级到8通道的要求已变更。  我会寻找您分享了器件型号  ADS131M08的其他 ADC。

    谢谢!

    此致

    S·乔达里