I am working on a system that uses 5 AD7949s connected to a single SPI bus, clock running at 16MHz. When reading the ADCs, we are using the RAC (read after conversion) method to return samples.
Our sample rate is very low; only 50Hz. The clock was set at 16MHz from the equation on page 22 of the datasheet, which results in a clock of greater than 12MHz (we might not have to follow this requirement? This might only be for RDC conversions)
We noticed that very occasionally, about once every 5 minutes, we read nearly full-scale readings from only the last 7/8 channels from only one of the ADCs, which happens to be the last out of the 5 to be read in the reading loop.
We adjusted the high/low timings of the CNV lines for the system to well exceed the requirements in the datasheet but we still see errors. We noticed that if we enable the readback function, the errors stop.
However, when testing at cold temperatures below -10C, the errors show up again, and only on that single ADC, only for the last 7 out of 8 channels.
Our firmware reads all channels + the temperature channel by performing 2 dummy reads, then the 9 sample reads with readback, for each ADC at 50Hz.
Our ADC settings are:
* CFG = 1 (overwrite)
* INCC = 111 (Unipolar, INx ref to GND)
* INx = 111 (IN7 is highest channel to read)
* BW = 1 (Full Bandwidth)
* REF = 001 (Internal reference and temperature sensor enabled. REF = 4.096 V buffered output)
* SEQ = 10 (Scan IN0 to IN[7:0] (set in CFG[9:7]), then temperature)
* RB = 0 (read back current configuration at end of data)
This is what the signals look like. Blue is the clock, Green is the CNV line.