I am using ADS1242 in the attached Pt100 measurement circuit.
RT is a Pt100 sensor. Range approx 20R to 380R.
R1 sets the probe current at approx 400uA. It is reasonably constant over the measurement range.
R2 is a 200R reference resistor.
R3 ensures conditions for ADS1242 buffer inputs are satisfied. (>188mV)
Vp=Probe voltage (42mV @ RT=100R, 146mV @ RT=380R)
Vr=Reference voltage (84mV @ RT=100R, 77mV @ RT=380R)
The circuit has a fully ratiometric measurement therefore gain calibration of ADS1242 and absolute value of REF3012 do not affect the temperature measurement.
I need linearity to resolve RT (sensor) to 0.01R.
I am achieving approx 19 usable bits so I have plenty of resolution.
This 0.01R delta results in dVp=3.5uV and dVr=0.3uV.
I realise this is very close to the Maximum ±0.0015% FS integral-non-linearity of 2.3uV.
ADS1242 is configured for Buffer ON, PGA=8, Data rate=15Hz.
The converter essentially free runs with calibration commands and MUX changes synchronised to microprocessor interrupt triggered by falling edge of -DRDY.
The conversion results are transferred in main-line code approx 10ms after the interrupt routine ends.
The measurement sequence (for debugging) is:
1. Take -PDWN high.
2. ADS1242 Reset using timed SCK pulses.
3. WrReg (ACR, 0<<nDRDY | 1<<U_nB | 1<<SPEED | 1<<BUFEN | 0<<BITORDER | 0<<RANGE | 0<<DR1 | 0<<DR0); //15Hz
WrReg (SETUP, 0<<ID | 0<<BOCS | 3<<PGA0); //Burnouts Off, Gain=8
WrReg (MUX, 0x33);
4. On 2nd DRDY edge - Issue SYSOCAL (2 dummy initial conversions)
5. On next DRDY edge - No Action; //Conversion with MUX=0x33 starts automatically
6. On 2nd DRDY edge - Issue WrReg (MUX, 0x32); {Read PRT_ZERO counts in main code}
7. On 2nd DRDY edge - Issue WrReg (MUX, 0x10); {Read PRT_REF counts in main code}
8. On 2nd DRDY edge - No Action; {Read PRT_PRB counts in main code}
{Read OCR Register in main code}
9. Take -PDWN low.
I find offset calibration errors are causing big errors in sensor resistance measurement. The following table shows my results:
RT MUX=0x33 MUX=0x32 MUX=0x10 OCR Calc RT ADS1242 Comment
---------------------------------------------------------------------------
100.048 000000 89E296 44F5E4 000311 100.026 Unipolar Non-Linear
380.080 000000 7DF6F6 EF64E6 00033E 380.100 +SYSOCAL
100.048 0002BD 89EA87 44FDD6 000000 100.041 Unipolar Linear
380.080 000347 7E0025 EF6E0E 000000 380.064 No CAL (Manual Offset)
100.048 FFFDB3 44F126 227B6E 0002D2 100.032 Bipolar Non-Linear
380.080 FFFDEE 3EFC54 77B34F 0002C5 380.088 +SYSOCAL
100.048 00021C 44F543 227F18 000000 100.039 Bipolar Linear (ish)
380.080 00015B 3F0011 77B727 000000 380.088 No CAL (Manual Offset)
My question then is, why does SYSOCAL with MUX=0x33 not produce the same effect as performing a measurement of MUX=0x33 ? It seems to overcompensate thereby producing a -VE count for MUX=0x33 measurement.