Part Number: ADS1299-6
Other Parts Discussed in Thread: ADS1299
Hello Everyone,
I am part of a team working on an EEG device centered around the ADS1299 6PAR. We have been testing our first prototype for the last few weeks, and we've verified that everything is working, and we have even been able to read some basic bio-signals.
However, something happened since yesterday, and the ADS1299 now only reads constant values across all channels. They are in the range of 40-90 mV and are different on every initialization. We have tried shorting the electrodes manually, but the values don't seem to be impacted by any contact.
Here is a picture of the serial output from our device, where each line is a different data burst from the ads1299, with the first 6 numbers being the channel values in Volts, and the last 3 being the STATUS Bytes.

This is with all electrodes floating except the first two, which are manually shorted. These values didn't change as we stopped shorting or did anything else.
Here is our initialization protocol.
ADS1299_init_spi();
//send SDATAC command to write the registers
ADS1299_cs_select();
ADS1299_send_command(ADS1299_CMD_SDATAC);
ADS1299_write_register(ADS1299_REG_CONFIG3, 0b11100000);
sleep_ms(1000);
//write configuration registers
//enable CLK output and Set output data rate to 250SPS
ADS1299_write_register(ADS1299_REG_CONFIG1, 0b11010110);
ADS1299_write_register(ADS1299_REG_CONFIG2, 0b11010011);
//Bias Settings
ADS1299_write_register(ADS1299_REG_CONFIG3, 0b11101110);
//close SRB1 swithces
ADS1299_write_register(ADS1299_REG_MISC1, 0b00100000);
//close BIASP switches
ADS1299_write_register(ADS1299_REG_BIAS_SENSP, 0b11110000);
//set channel to normal electrode input
ADS1299_write_register(ADS1299_REG_CH1SET, 0b01100000);
ADS1299_write_register(ADS1299_REG_CH2SET, 0b01100000);
ADS1299_write_register(ADS1299_REG_CH3SET, 0b01100000);
ADS1299_write_register(ADS1299_REG_CH4SET, 0b01100000);
ADS1299_write_register(ADS1299_REG_CH5SET, 0b01100000);
ADS1299_write_register(ADS1299_REG_CH6SET, 0b01100000);
ADS1299_write_register(ADS1299_REG_LOFF, 0b00001100);
ADS1299_write_register(ADS1299_REG_CONFIG4, 0x02 );
ADS1299_write_register(ADS1299_REG_LOFF_SENSP, 0xFF);
ADS1299_write_register(ADS1299_REG_LOFF_SENSN, 0x00);
We have tried shutting down various channels, which works, but the same issue persists with the remaining channels. We did accidentally write to a bit in a register that was supposed to be a constant value, but we don't know if that would cause problems.
