您好:
我正在研究一个与ECG相关的项目,将TI ADS1198与Arduino配合使用。 我成功地通过SPI总线写入/读取寄存器(例如获取ads1198的ID寄存器值182并将每个输入通道设置 为正常电极)。
我想通过串行comport向MATLAB显示频道,但我得到了类似于下图的奇怪波形。
我只是首先显示5个通道,通道1,4,5是奇数的(但我确实在正常电极模式下设置了这个通道 ),通道2,3似乎是正确的吗?
但不确定。 所以我很困惑为什么通道2,3似乎可以正常获取数据,但其他通道却不能。
下面是我写入ads1198寄存器的设置,
1.问: 此设置是否错误?
由于我不太确定0x0D到0x19的函数,只需按照我在TI软件ADS1198演示套件中看到的寄存器映射表,它就可以看到所有通道波均正确。
void adsNormalElectro()
{
ADC_wreg (0x01,0x04);//Config1 //0x0.45万SPS
ADC_wreg (0x02,0x10);//Config2 //0x10
ADC_wreg (0x03,0xDC);//Config3 //0xDC
ADC_wreg (0x04, 0x03);//LoFF //0x03
ADC_wreg (0x05,0x00);/CCH1SET//0x00
ADC_wreg (0x06,0x00);
ADC_wreg (0x07, 0x00);
ADC_wreg (0x08,0x00);
ADC_wreg (0x09,0x00);
ADC_wreg (0x0A,0x00);
ADC_wreg (0x0B,0x00);
ADC_wreg (0x0C, 0x00);/CH8SET //0x00
ADC_wreg (0x0D,0x00);//RLD_SENSP //0x00
ADC_wreg (0x0E,0x00); //RLD_SENSN //0x00
ADC_wreg (0x0F,0xFF);//LoFF_SENSP //0xFF
ADC_wreg (0x10,0x02);//LoFF_SENSN //0x02
ADC_wreg (0x11, 0x00);//LoFF_flip //0x00
ADC_wreg (0x12,0x00);//LoFF_STATP //0x00
ADC_wreg (0x13,0x00); //LoFF_statn //0x00
ADC_wreg (0x14,0x00);//GPIO //0x00
ADC_wreg (0x15,0x00);//PACE //0x00
ADC_wreg (0x16,0x00);//resp. //0x00
ADC_wreg (0x17,0x00);//CONFIIG4 //0x00
ADC_wreg (0x18,0x00);//WCT1 //0x00
ADC_wreg (0x19,0x00);//WCT2 //0x00
}
我将ads1198置于RDATAC模式(0x10),并使用Agilent逻辑分析器检查其波形,似乎是正确的
我确信我会将每个通道16位数据(2的补码二进制)转换为十进制值并在MATLAB中绘制。
我在Matlab中处理16位数据的方式
s=serial ('COM9','bandrate',11.52万);% setup comport fopen(s);% Open comport
t1=fread (s,1);//获取通道第一字节
t2=fread (s,1);//获取通道第二字节
ch_1=t1*256+t2;//将其转换为16bit change2dec=2sec_21
;dec_twin
=
这是我在RDATAC模式下输入ads1198后发送每个字节的方式
int adc_read_data(void)//函数读取5个数据通道
{
int i =0;
digitalWrite (slaveSelectPin,low);
//仅尝试读取一个通道。 3字节状态+ 2字节一个通道数据
int numSerialBytes =13;//现在只需读取5个通道来检查
unsigned char serialBytes[numSerialBytes];
对于(i =0;i < numSerialBytes;+I)
{
serialBytes[i]= SPI.transfer(0);
}
delayMicroseconds(1);
digitalWrite(slaveSelectPin,高);
用于(I =3;I < numSerialBytes;+I)
{
Serial.write(serialBytes[I]);//将字节发送到MATLAB
}
2.Q:当DRDY引脚变低时,其时间是长还是短? cuz在逻辑分析器中,有时我看到DRDY引脚在较低的时间更长,但有时更短 (可能是个问题? 只是猜测)
这是我使用的环境: ECG模拟器,D15电缆,60-80BPM,1mV
是否有人可以指导我,我在获取此结果的数据时遇到了什么问题? 如何修复?
期待您的宝贵建议,提前感谢您的参与。
最佳
Frank | frank61.3055万@gmail.com




