I am using a ADS1258 to measure a voltage of a 3-axis accelerometer and a 3-axis gyroscope. The voltage measured by a multimeter, along with the ADC output are as follows:
Channel 1: Measured = 1.616V ADC Output = 1.593V Difference = -0.023V
Channel 2: Measured = 1.585V ADC Output = 1.558V Difference = -0.027V
Channel 3: Measured = 1.933V ADC Output = 1.906V Difference = -0.027V
Channel 4: Measured = 1.216V ADC Output = 1.195V Difference = -0.021V
Channel 5: Measured = 1.207V ADC Output = 1.221V Difference = -0.014V
Channel 6: Measured = 1.216V ADC Output = 1.186V Difference = -0.030V
Channel 7: Measured = 1.243V ADC Output = 1.223V Difference = -0.020V
Channel 8: Measured = 1.244V ADC Output = 1.224V Difference = -0.020V
VCC: Measured= 4.891v ADC Output = 4.890V Difference = -0.001V
VREF: Measured= 3.300v ADC Output = 3.310V Difference = -0.010V
All the channels are single-ended with the common (AINCOM) connected to the ground.
As you can see, the voltage output of ADC is consistently less than the measured voltage by 0.02-0.03 volts. The following is the procedure I used to get those values
Suppose the ADC outputs: 0x8F2C606D
1. Mask the first byte by 0x1F to get the channel number: 0x8F & 0x1F = 0x0F (Single-Ended Channel 8)
2. Divide the remaining 3 bytes by 7864320 (0x780000): 0x2C606D / 0x780000 = 0.3698055
3. Divide the result from Step 2 by a GAIN factor, which is 1.000093: 0.3698/1.000093 = 0.3697709
4. Multiply the result by reference voltage: 0.3697709 x 3.3098895 = 1.2239009
Is the above calculation correct? Is there anything I miss that may cause the offset?