So I have a bit of an annoying issue. I have a circuit that measures a 4-wire PT100, using a 24 bit AtoD (ADS1244). After following some reference designs to get me started, I have a circuit which works and gives me accurate results. The (simplified for ease) input circuit looks like this:
simulate this circuit – Schematic created using CircuitLab
Please note I have excluded filtering and other circuitry irrelevant to the question.
So, as stated before, this circuit works well and gives me exactly what I need. However, this product allows for a 3 and 4 wire probe to be used (that part of the circuit not shows) so this means at some points there is the chance of an open circuit probe.
I have found that during startup, if no probe is attached, then occasionally, when a probe is inserted, it gives me all sorts of rubbish as an answer and will sometimes give me a random reading during startup (it is supposed to read ERR when out of range).
I managed to narrow down this behaviour to the auto calibration of the AtoD IC during startup. It requires a minimum of 0.5V on the reference to work correctly (according to the DATASHEET) and on the occasions that the product is switched on when no probe is attached, it does an auto cal with a floating reference which ends up giving me rubbish answers until a new auto cal is done with a probe attached.
I managed to get around this problem by adding an NMOSFET to the VREF- and during startup, this is pulled low to ensure there is always a valid VREF voltage and the auto-cal is successful.
This worked fine until I would very rarely get strange readings when no probe was attached. Maybe 1 in 100 times. This turned out to again be the reference as once the probe is removed, there is again a floating reference so there is the chance for undesirable behaviour.
I can't seem to think of a way around this, or detect that the probe has gone open circuit, especially in the circumstances where a "valid" reading is produced due to the floating reference. Does anyone have any idea for things I could try to get around this?