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.

[参考译文] ADS1292R:呼吸和 ECG 数据速率问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/688887/ads1292r-respiration-and-ecg-data-rate-problem

器件型号:ADS1292R
主题中讨论的其他器件: TM4C123GH6PZ

您好!  

我继续 Laura Cupic 关于将 ADS1292R 与 TM4C123GH6PZ 微控制器连接的工作:

我成功地将微控制器与 ADS1292R 相连、但当数据速率从125SPS 更改为8kSPS 时、会出现问题。  

ADS1292R 寄存器值:

CONFIG2  -> 0xA0 (启用基准缓冲器)

LOFF      -> 0x10 (禁用导联脱落)

CH1SET   -> 0x60 (CH1启用、增益12)

CH2SET   -> 0x60 (CH2启用、增益12)

RLDSENS -> 0x2F (CHOP FREQ=FMod/16、RLD 被启用、来自 CH1和 CH2的 RLD 输入)

LOFFSENS->0x00 (默认值)

RESP1    -> 0xEA (RESP MOD/DEMOD 被启用、112.5相位、内部时钟)

RESP2    -> 0x03 (32kHz 频率、内部基准电压)

信号采集:仿真器-> ADS1292R -> TM4C123GH6PZ (SPI、SCLK = 1MHz)->笔记本电脑(UART、波特率= 115200)

从模拟器(LA、RA、LL 和 RL)采集呼吸信号和 ECG、呼吸频率设置为每分钟15次(0.25Hz)、因此对于125SPS 的数据速率、1000个样本等于2个呼吸信号周期(如图像所示)。 Math 适用于250SPS (2000个样本)、500SPS (4000个样本)、但对于任何更高的数据速率、采样数高于约4200。 CH2 (ECG)也是如此。

问题:

1) 1) 为什么频率高于500SPS 时锁定的样本数?

2) 2)为什么较高的频率具有更多的噪声?

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

    感谢您关注 ADS1292R、欢迎参加论坛!

    1) 1)样本数量未锁定。 您将此数据保存到何处? 也许它已达到极限。
    1A)第32页。 介绍了连续转换模式。 您的 START 引脚是否可能被切换为低电平或正在传输停止代码?
    1b)另一个尝试的测试是让采样率较低的测试运行更长时间、以确认器件在4200个样本后停止捕获数据。

    2) 2)更高采样率下的噪声更大、因为随着采样率的增加、过采样率的降低。 CONFIG2寄存器显示了过采样率和采样率之间的关系。 表4. 显示了采样率和无噪声位之间的关系。 随着采样率的增加、受到噪声影响的输出位的数量也会增加。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Alexander、

    感谢您的快速响应并欢迎我参加论坛。

    1) 1)我错误地表达了实际的问题。 在所附图片上的图形中、我手动剪切了样本数、以准确显示呼吸信号的2个周期。 如果我传输数据的时间更长、我可以获得更多样本。 例如、用于所附图片的样片在15秒左右从数据中切下。 这是我从呼吸模拟器记录的125SPS 数据速率的数据曲线图、大约15秒后、我手动为推诿帖子中的图片削减了2个周期:

    问题在于数据速率高于500SPS。

    变量'file1'至'file7'来自 Matlab 中的工作区、该工作区源自从.txt 文件中读取数据的函数 dlmread。 'file1'表示125SPS、'file2'表示250SPS 等 对于每个数据速率、数据的前导周期约为15秒、因此如果数据速率加倍、表示样本数的变量'file'中的行数必须加倍。  

    15s/8ms =对于125SPS、为1875个样本;对于250SPS、为15s/4ms=3750个样本、等等

    数据速率125、250和500SPS 也是如此。 但对于更高的数据速率、例如2kSPS:15s/1ms=15000个样本、我得到7764个样本。 根据记录的样本数、我可以从器件获取的最大数据速率似乎约为516SPS。

    2) 2)感谢您将我指向表4。 由于无论问题1)如何选择更高的数据速率、因此受损害的位数似乎会增加。

    我希望我已经澄清了实际的问题是什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴为您提供帮助、感谢您的澄清!

    我目前认为这是一个数据存储缓冲区问题。 也许您将数据存储到的任何地方的填充速度都比清空数据快。 我建议进一步研究这一点。 您使用什么软件来收集数据?

    下一步是查看您的数字 SPI 引脚:

    1) 1)您是否处于 RDATAC 或 RDATA 模式? 这将帮助我们了解您的样片是否被损坏或是否被遗漏。

    2)探测 SPI 引脚以确保当 DRDY 切换时、CS 有足够的时间变为低电平、SCLK 在 DRDY 发出另一个采样可用的信号之前发送72个时钟(24个状态+ 2个通道* 24位)。 您之前的帖子说您的 SCLK 以1MHz 的频率运行、该频率应足够快地获取数据、但请注意确保您的例程不会出现导致您损坏或丢失样本的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我还怀疑这是数据存储问题。

    1)我正在使用 RDATAC 模式

    这些是我的 main.c 和 ADS1292R.c

    e2e.ti.com/.../main.cpp

    e2e.ti.com/.../3554.ADS1292R.c

    为了进行数据传输、我使用连接到 UART-USB 桥接器的 TM4C123GH6PZ 上的 UART2引脚以及写入配置为115200波特率的.txt 文件 Putty。

    您能否验证我的代码是否导致此问题?

    谢谢

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

    我希望您能有一个愉快的周末。

    您是否有幸跟踪了数据保存到的位置以及可能存在的瓶颈?

    我快速查看了您的代码、没有发现任何看起来不正确的特定内容。 但是、我确实注意到、对于 RESP2寄存器、校准功能关闭、而注释显示它应该打开。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我发现问题了、它是 UART 波特率。 我已将其提高到921600bps、并设法以1kSPS 的数据速率获得10000个样本(记录10秒)。 UART 转 USB 桥接器的数据表指出、最大波特率为921200bps。 我尝试了更高的数据速率、出现了新问题。 例如、在2kSPS 数据速率下、前6秒我将获得正确的数据:

    6秒后、我将得到以下结果:

    接下来、我将尝试将数据记录到闪存中、然后通过 UART 将其传输到 PC。

    校准时、我测试了它、但未更正注释。

    感谢您的建议。

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

    我很高兴您能够增加所采集的样本数量!

    在我看来、随着波特率越来越不同步、您的样本会被截断/替换。

    使用 RDATAC 与 RDATA 会影响如何表示这种不同步。

    很高兴能提供帮助! 请告诉我您的下一个测试是如何进行的。