Hello to everbody,
i would like to configure the ADS1298 in Single Shot Mode to start a conversion and get a new sample every 5ms.
I set the SINGLE_SHOT bit in CONFIG4 register to '1' and START is low.
The following c-function shows the initalization of the ADS1298.
// SPI: ADS1298 initalization
// --------------------------
void init_ADS1298(void)
{
// register data = {CONFIG1,CONFIG2,CONFIG3,LOFF,CH1SET,CH2SET,CH3SET,CH4SET,CH5SET,CH6SET,CH7SET,CH8SET,RLD_SENSP,RLD_SENSN,LOFF_SENSP,LOFF_SENSN,LOFF_FLIP,LOFF_STATP,LOFF_STATN,GPIO,PACE,RESP,CONFIG4}
unsigned char reg_data[23] = {0x85,0x00,0xDC,0xE3,0x60,0x86,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x06};
//unsigned char reg_data[14] = {0x86,0x00,0xDC,0x00,0x60,0x86,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01};
//unsigned char reg_data[12] = {0x86,0x00,0xDC,0x00,0x00,0x81,0x81,0x81,0x81,0x81,0x81,0x81};
// set #PWDN and #RESET
PORTB |= (1<<RESET_Pin) | (1<<PWDN);
// wait 1s for power-On Reset and oscillator start-up
_delay_ms(1000);
// set CS low
CS_state(0);
// issue reset pulse and wait for 18 tclks
SPI_TransmitByte(RESET);
_delay_us(9);
// send SDATAC (stop read data continuosly mode)
SPI_TransmitByte(SDATAC);
_delay_us(2);
SPI_TransmitByte(STOP);
_delay_us(2);
// set all configurations
Write_Reg_ADS1298(0x41,0x16,reg_data,23);
// START high
PORTB &= ~(1<<START_Pin);
// SPI_TransmitByte(START);
// RDATAC mode
// SPI_TransmitByte(RDATAC);
// CS high
CS_state(1);
}
In the main routine i send the START opcode and wait until DRDY is low and the read out data.
So with this configuration i get only zeros for each conversion even if i touch the electrodes with my hands.
Have i done everything correct??
kind regards,
Sebastian