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.

[参考译文] ADS1298:无法读取 ECG 信号

Guru**** 2558330 points
Other Parts Discussed in Thread: ADS1298

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/608155/ads1298-cannot-read-the-ecg-signal

器件型号:ADS1298

从 ADS1298读取和处理 ECG 信号时仍然有问题。

我的原理图中有一个双极电源、其中 AVDD 为+3.3V、DVDD 为+2.5V、AVSS 为-2.5V、GND。

e2e.ti.com/.../3187.ADS1298_5F00_v1.02.pdf

SPI 工作正常、我可以在设置芯片 ID 时读取和读回寄存器。 (逻辑分析仪也会对其进行确认)
我的每个通道都有一个 RC 低通滤波器(4.7kOhm 和1000pF)、然后截止频率为33.8kHz。

我尝试使用单引线模式、因此我将第一个电极连接到1P、第二个电极连接到1N、我没有使用 RLD 电极。 所有其他7对电极和 RLD 未连接。

WRITE_BYTE (CONFIG1、0x80 | 0x04 | 0x02);//启用8kHz 采样率
WRITE_BYTE (CONFIG2、0x10);
WRITE_BYTE (CONFIG3、0x08 | 0x04 | 0x80 | 0x20 | 0x40);
WRITE_BYTE (CONFIG4、0x02);

WRITE_BYTE (RLD_SENSP、0x00);
WRITE_BYTE (RLD_SENSN、0x00);
WRITE_BYTE (LOFF_SENSP、0xFF);
WRITE_BYTE (LOFF_SENSN、 0x02);
WRITE_BYTE (LOFF_FLIP、0x00);
WRITE_BYTE (LOFF_STATP、0x00);
WRITE_BYTE (LOFF_STATN、0x03);
WRITE_BYTE (GPIO、0x00);
WRITE_BYTE (PACE、 0x00);
WRITE_BYTE (WCT1、0x08);
WRITE_BYTE (WCT2、0x00); 

并在我的 DRDY 被切换时读取数据

int ch = 1;
for (int i=3*ch;i<3*ch+3;i++)//错过头
文件的前3个字节{
nrf_log_internal_raW_info ("%d\r\n"、out[i]);// out 是我的数据
}

我在 Processing 中编写了一个简单的代码、它获取串行数据并绘制图表

当我将我的2个电极放在我的左右手腕上时、我得到了这个图像

当我取下这2个电极时、我可以看到这个

采样率为250SPS、而且我还将输出数据保存到文件中、以便使用三阶巴特沃斯低通滤波器在 MATLAB 中进行处理。

sig = load ('ECG.txt');
fs = 250;我的 ADS1298
FC 的采样率频率%= 50;50Hz 的截止频率%
[b、a]=黄油(3、fC/(fs/2)、'low');第三阶滤波
器 freqz (b、a);

LPF = filter (b、a、
lpf);图; 

但我看到我不是期望的、没有清晰的峰值和 PQ 段

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

    如果输入为直流耦合且没有 RL 电极、则信号没有有效的共模电压、因此 ADC 将无法测量它们。 如果您使用连接到 RLD 放大器的 RL 电极、结果是否会改善?

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

    您好、Brian、感谢您的回复。 我尝试连接 RLD 电极并得到了该图表

    看起来它不像 ECG

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

    您是否曾尝试使用信号发生器输入简单的正弦波以验证信号链是否正常工作? 这有助于确定问题是否与设计/软件有关、或者是否与 ECG 连接有关。

    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian!
    我没有尝试过、但我发现我的图表在我打开或关闭电极时发生变化。 它看起来比我上面的屏幕截图更好。 使用 RLD 时、我的信号几乎具有线图。 此外、在通过巴特沃斯滤波器对其进行滤波后、我有一个稳定的直信号。

    只是想知道、我的配置是否正确?
    可能存在问题? 我是否应该重新配置除 CONFIG1-3、CHANNELS 和 RLD 之外的其他内容?

    还有一个问题、我为 CH1设置了正常值|缩短、因为我只使用它们、而我为其他未使用的电极设置了0x00、但我没有将它们连接到 AVDD、它们在空气中浮动。 我应该连接它们吗?

    我是否认为我希望获得与我使用您的建议在输入端生成的正弦波相同的正弦波?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    伊万

    配置正确。 您应该能够提前看到 ECG 信号。 这些测试期间的输入是什么? 输入全部悬空或连接到患者。

    应通过将 CHnSET 寄存器中与未使用通道相对应的位7置位来禁用未使用的通道。 如果永远不会使用这些通道、则将其连接到 AVDD。

    如果对输入应用正弦波、则应在输出端测量正弦波。 只需确保正弦波处于器件的共模范围内、并且频率处于所使用数据速率的器件带宽内。

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

    Brian、

    感谢您的建议、但我只能理解其中一个问题。 如果我将正弦波发生器输出插入 ADS1298的1P 引脚、那么 ADS1298是一种差分放大器、那么我必须使用1N 引脚执行的操作。 我是否需要将其插入 GND? 或什么?

    将来、我将使用其他输入。

    我手头上没有正弦波形发生器、但我将使用 Arduino 生成正弦波形并传递到模拟引脚。 还可以吗?

    我生成类似这样的正弦值

    int b = 180;
    对于(int j = 0;j < 360;j++)
    {
    float a = sin (j *(pi / b));
    analogWrite (PIN、A);
    } 

    B 变量有助于改变频率

    我是否应该使用1k 电阻将未使用的通道连接到 AVDD?

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

    是的、当您将信号馈送到正输入时、您需要将负输入连接到某个东西。 为负输入提供的最佳电压为(AVDD + AVSS)/2。

    理论上、您生成信号的方法很好、但您需要确保频率在 ADS1298的带宽内。 您是否知道 MCU 通过 for 循环一次需要多长时间?

    如果您计划最终使用其他通道、则不必担心将输入绑定到高电平。 当您通过原型设计阶段或尝试优化功耗时、可以更加小心地处理未使用的输入。

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

    好的、根据您提到的公式、我的负引脚应该具有(3.3-2.5)/2=0.4v、因此 GND (0v)是可以的。

    如果我使用帮助代码生成正弦信号、理论上我可以将延迟置于主循环中。 我将使用 Arduino Mega 来实现这一目的、但遗憾的是、我没有找到有关主循环频率的正确信息。 希望我能够根据经验调整延迟值。

    我对我的输入频率有点困惑。 我为每个电极放置了一个频率约为33.8kHz 的 RC 滤波器、我发现 ECG 带宽应该是0.05Hz 至100-150Hz、它能为我感兴趣的信号发出一些噪声吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ivan、

    很抱歉耽误你的回答。 您的 AVDD 是3.3V 还是 AVSS -2.5V? 如果是这种情况、那么您的模拟电源将超出数据表第12页所示的建议运行条件。

    关于带宽、ADS1298有一个内部数字滤波器(请参阅数据表的第9.3.2.4节)、此滤波器将大大低于 RC 滤波器的带宽。 数据表中表1-4中显示的噪声考虑了这个数字滤波器。

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

    您好 Brian、

    我错了、AVDD 为2.5V。

    因此、我生成了正弦和方波信号

    这是原始正弦信号的波形图- 10Hz

    以及我从 ADS1298获得的结果

    我的方波信号-相同的10Hz

    原始

    和 ADS1298的数据

    我们可以看到、信号几乎相同、 但我很奇怪、因为上面的图片是在我从 ADS1298读取1个字节时拍摄的(我错过了头文件的前3个字节、接下来的3个字节用于通道1)、如果我读取通道1的所有3个字节、我会有噪声。

    但是、当将1P 和1N 电极放在我的胸部或手腕上并扫描信号时

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

    在使用 ADS1298进行测量之前、您所生成的图的采样率似乎比 ADS1298高得多、因此似乎"已拉伸"。 此外、当您向 ADS1298输入正弦波时、输入的共模是多少? 看起来信号超出范围。

    不过、ECG 信号实际上看起来很好!

    Brian