I am currently working on a project where we are using multiple ADS1259 that must be communicated with over multiple isolation barriers. At the moment, I have all of them configured for 50 SPS mode. When using an oscilloscope to measure the time between START calls and when the _DRDY_ signal is pulled low, the _DRDY_ line is staying high for 40 ms at a time rather than the 20 ms I am expecting (1000 ms / 50 samples = 20 ms / sample). I have looked through the data sheet numerous times, but I have not found anything that would explain this behavior. Below is some pseudo-code of how the chips are being used an initialized:
Send SDATAC opcode
Send WRITE REG opcode
Send 0x02 // write all 3 registers
Send 0x04 // No SPI timeout, Internal Reference enabled
Send 0xD8 // Out of range and checksum enabled, use sinc2 filter, external reference, no START delay
Send 0x12 // SYNCOUT disabled, Pulse control mode, 50 SPS
Send READ REG opcode, send 0x02 // Read back what we wrote
Send 3 empty bytes
Compare what was read to what we wrote to confirm configuration is correct
Send START command
Check back every 20ms
If _DRDY_ == 0, read conversion and send another START command