您好:
我正在研究一个与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