尊敬的 TI 团队:
使用 ADS1294芯片测量 EMG 信号时遇到一些困难。 使用一个简单的定制板来测量信号。 我甚至不知道"问题"是数字的还是模拟的。
我想从这个问题开始。 随后进行配置。
1.问题
1.我有一个通过 通道1上的音频插孔连接的方波信号(还连接了示波器)。 其他引脚保持悬空。
我的串行绘图仪显示以下图表、该图表具有直流偏移 、但 示波器上也显示了该偏移。 振幅也看起来很好。 在 y 轴上为5毫伏。
但有时会发生这种情况、似乎我可以对其施加影响、例如接触接地连接或笔记本电脑(在这种情况下、所需的信号消失):
现在我们来看看现场的结果(无 RLD)、通道3通过2个湿电极和音频插孔连接到我的皮肤(两头肌):
1.可以很好地检测单肌肉收缩,以及50Hz 的 电力线干扰。 但是:我在拍摄截图时一直触摸接地引脚。
2.在不接触接地的情况下,这些信号会返回:
未连接的浮动通道也采取了怪异的做法:
如果我们检查一下频率、会发现有50 Hz 谐波?!
如果我只是将通道保持未连接状态:
奇怪的是、激活 RLD 不会产生影响。
2.配置和编码
ADS1924由 USB (单极;VDDA = 5V、VDD = 3.3V)供电的微控制器电路板供电。 数据使用 Arduino 框架(带 mbedOS)从 ADS1924传输到 STM Cortex M7微控制器。 在 MCU 上、字节会转换为有符号整数、并 计算相关电压。 之后、样本通过 USB (串行端口)传输到我的计算机、并在某些串行绘图仪中绘制。
ADS 的配置如下所示:
send_command(SDATAC); SPI.transfer(WREG | CONFIG1); delayMicroseconds(5); SPI.transfer(0x00); delayMicroseconds(5); SPI.transfer(0b11000101); // HR mode | multiple readback mode | clock output disabled | 1kSPS delayMicroseconds(10); SPI.transfer(WREG | CONFIG2); delayMicroseconds(5); SPI.transfer(0x00); delayMicroseconds(5); SPI.transfer(0x00); // No test signal delayMicroseconds(10); SPI.transfer(WREG | CONFIG3); delayMicroseconds(5); SPI.transfer(0x00); delayMicroseconds(5); SPI.transfer(0b11101000); // internal ref buf | 4V VREFP | RLDREF internal but buffer pwd delayMicroseconds(10); delay(50); SPI.transfer(WREG | CH1SET); delayMicroseconds(5); SPI.transfer(0x03); delayMicroseconds(5); SPI.transfer(0b00000000); // 1 -> Normal operation, PGA = 6, Normal Electrode Input delayMicroseconds(5); SPI.transfer(0b00000000); // 2 delayMicroseconds(5); SPI.transfer(0b00000000); // 3 delayMicroseconds(5); SPI.transfer(0b00000000); // 4 delayMicroseconds(10); send_command(RDATAC);
4.问题
您是否知道为什么会发生这种情况? 这是否正常? 为什么所有这些信号都被"拉至零"?
是因为一些奇怪的干扰、还是只是我的算法/转换垃圾/错误?
如何阻止此情况并测量干净的 EMG 信号?
为什么 RLD 对信号没有影响(配置3:RLD_MEAS = 0 | RLDREF_INT = 1 | PD_RLD = 1且 RLD 电极连接到皮肤)?
非常感谢您的任何想法和帮助!
大家好
Benjamin Geiger