There 2 problems, and they might be related:
1- The ref1+ is connected to a stable 2.500V signal and ref- to 0V. There are no RC filters placed on any inputs and the signals are buffered using TLV333 opamp. All ten channels act in pseudo-differential mode. the ADC works in room temperature. NEG_BUF is active in readings. channel 8 and 7 are connected to a signal of around 2.511V which is 11mV pseudo-differential. When reading the ADC value, with all other channels connected to 2.500V, it is close to what it should be, around 11mV with good consistency. as soon as we apply voltages away from 2.5V on other channels the readings (while still consistent) are changing away from 11mV (actual value that can be measured with multi-meter and does not change) the readings change around 2mV.
2- We have a number of identical boards that use ad7718, while applying 2.500V to all channels the measured initial offset is very different between them. It is in the range of -6mV to -1mV between the boards. e.g. when 2.500V is applied at any channel it reads 0x00668544 in 20mV range or -3.981161mV. When a 2.603V signal (103mV pseudo differential) is applied the val 0x00cf79a0 in 160mV range or 99.3438mV which is 103.324mV in difference. It is all well and good. but applying 189.9mV signal will result to 0x00ca48b1 in 320mV range which considering the offset of -3.981161 it adds up to 189.69mV or 0.2mV scale error and it increases to 2mV when larger signals are applied.
It is important to note that the noise in circuit is very low. The signals are DC and not changing in high frequency, measurements are very consistent, chopping is enabled the SF does not have any impact on the results and it is set at 82 while it is tested for the full range of values from 1 to 255.
I appreciate it if anyone could help us understand what is going wrong here.
Here is ho the circuit is configured:
error value corrected and channel number!
[edited by: Mox at 5:17 AM (GMT 0) on 18 Aug 2020]