I'm working with the ADS1291, and finding that every 30s-1min it outputs a totally invalid (and extremely large) reading.
The chip has the START pin tied high, with continuous mode disabled and single shot enabled. Every 1ms I send an RDATA command over SPI and read the CH1 value (CH2 is unused.) The decimation filter is set to 4kSPS. I can't find info in the datasheet on what decimation filter oversampling ratios yield which precision, but in this case it experimentally has a precision of 20 (all conversions are divisible by 20.)
I know the conversions are completely invalid because they are not divisible by 10. Real examples: -8388608, 4128968, -5247936, -4194184, -260544, -31368, -1048136, 2630696, -260744, 4129608. Correct readings for the application are less than 10,000 (and divisible by 20), and these invalid conversions are always one-offs, the readings immediately before and after are always fine.
CONFIG1 = 0x85
CONFIG2 = 0xA0
CH1SET = 0x20
CH2SET = 0x80
GPIO = 0x00
All other registers default.
Are there any issues that could be causing these invalid readings? I'm not reading /DRDY, but at 4kSPS and a RDATA every 1ms I assume that DRDY will always be asserted by the time I send the next RDATA. I also tried lowering the rate at which I sent RDATA to once every 5ms, and observed the same frequency of invalid readings, so I do not believe DRDY is an issue.