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.

ADS1292: Trouble Reading data while in "Read Data Continuous" Mode

Part Number: ADS1292

Hello, 

Thank you for taking the time to help with my issue. 

I've build a prototype board with an ADS1292R IC and ATMEGA 328P. I'm trying to simply use the 24-bit ADCs onboard, no other features are needed for my application at the moment.

I'm using the "Protocentral_ADS1292R" code for reference. 

I'm able to read and write registers(verify written register by reading) in the ADS1292, but once I issue the "RDATAC" optcode, and start trying to receive data (24 bit status + 24 bit chan1_ADC_data + 24 bit chan2_ADC_data), the data isn't correct.

I believe the problem is with my SPI read function, or with my device configuration.

Please help me to understand the register configuration for using the 2 ADCs in continuous mode.

Please help me to understand the SPI read procedure for receiving the two channel information.





if((digitalRead(ADS1292_DRDY_PIN)) == LOW) { digitalWrite(ADS1292_CS_PIN, LOW); // Read 24 bit Status b1 = SPI.transfer(0b00); b2 = SPI.transfer(0b00); b3 = SPI.transfer(0b00); // Read 24 bit Chan1 ADC Data b4 = SPI.transfer(0b00); b5 = SPI.transfer(0b00); b6 = SPI.transfer(0b00); // Read 24 bit Chan2 ADC Data b7 = SPI.transfer(0b00); b8 = SPI.transfer(0b00); b9 = SPI.transfer(0b00); digitalWrite(ADS1292_CS_PIN, HIGH); long ADS_status = (b1 << 16) + (b2 << 8) + b3; long chan1_ADC = (b4 << 16) + (b5 << 8) + b6; long chan2_ADC = (b7 << 16) + (b8 << 8) + b9; Serial.println(ADS_status,BIN); // 24 status bits is: (1100 + LOFF_STAT[4:0] + GPIO[1:0] + 13 '0's). }