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.
Hi Joaquin,
Your jumper settings sound correct; however, I should point out that since you are taking Channel 7 positive (IN7P) to be your reference electrode, you do not need JP25 [5-6] connected. The intention of JP25 [5-6] is to connect BIAS_ELEC (the output of the BIAS amplifier) to REF_ELEC, which could then be buffered by U4 or routed directly to SRB1. Instead, you are replacing REF_ELEC with IN7P and that's ok.
Is the Channel 7 electrode separate from BIAS_ELEC? I do not believe the same bias signal that drives the patient is commonly used as the reference for single-ended measurements.
What do your input and output waveforms look like? Try testing your setup with a small 1kHz sine wave input (maybe +/- 50 mV) and probe the SRB1 and SRB2 pins.
Regards,
I'm trying to get data from the ADS1299 starting the teensy 3.1 device, I can write in the registers successfully, however when I RDATAC to get the values I am not getting correct data, after that I see the values of the registers again and are not as configured by I previously.
the code to WREG and rreg is as follows (teensy):
if ((val >= 0x20) && (val <= 0x3F)) { //RREG (Read register) command
for (int i = 0; i < 10; ++i) if (Serialavailable(serialNum) < 1) delay(1);
if(Serialavailable(serialNum) < 1) return;
unsigned char numSerialBytes = Serialread(serialNum)+1;
digitalWrite(IPIN_CS, LOW);
SPI.transfer(val);
SPI.transfer(numSerialBytes-1); // number of registers to be read – 1
unsigned char serialBytes[numSerialBytes];
for (int i = 0; i < numSerialBytes; ++i)
serialBytes[i] =SPI.transfer(0);
delayMicroseconds(1);
digitalWrite(IPIN_CS, HIGH);
switch (serialNum) {
case 1:
Serial1.write(serialBytes, numSerialBytes);
Serial1.flush();
break;
default:
WiredSerial.write(serialBytes, numSerialBytes);
WiredSerial.flush();
}
return;
}
if ((val >= 0x40) && (val <= 0x5F)) { //WREG (Write Register) command
for (int i = 0; i < 5; ++i) if (Serialavailable(serialNum) < 1) delay(1);
if(Serialavailable(serialNum) < 1) return;
unsigned char numSerialBytes = Serialread(serialNum)+1;
for (int i = 0; i < 5; ++i) if (Serialavailable(serialNum) < numSerialBytes) delay(1);
if(Serialavailable(serialNum) < numSerialBytes) return;
unsigned char serialBytes[numSerialBytes];
for (int i = 0; i < numSerialBytes; ++i) serialBytes[i] = Serialread(serialNum);
digitalWrite(IPIN_CS, LOW);
SPI.transfer(val);
SPI.transfer(numSerialBytes-1); // number of registers to be written – 1
for (int i = 0; i < numSerialBytes; ++i) {
SPI.transfer(serialBytes[i]);
delayMicroseconds(1);
}
digitalWrite(IPIN_CS, HIGH);
}//if WREG
}
To view the data I am using the following code developed in python: