I'm trying to make sense of a pre-existing circuit (part of a much larger board) which multiplexes several RTDs into one pre-amplifier before feeding it into a microcontroller ADC. I did my own analysis of how I thought the signal would work the circuit and came up with a formula for what voltage the ADC should see with any given RTD resistance. I also found the formula in the firmware that calculates the displayed temperature based on ADC values. I integrated both of those into a spreadsheet and it all comes out perfectly - for any given RTD resistance, I get the proper calculated temp to within a few tenths of a degree F. The problem is that in practice, the temperature reads low. This is true with actual RTDs (which could introduce some error of their own) and also true if you plug in a resistor of known value and compare the displayed temp to what it should be (there are plenty of RTD tables for that - and yes, I've checked DIN vs. JIS - we're talking DIN here.)
My analysis was in simple blocks. The yellow area is a voltage divider between the 2k43 resistor and the RTD (2k7 reference resistor used in many of my tests, as that is closest to the target range where accuracy is most important.) The yellow area is a 1k resistor and the multiplexer, which as far as I can tell should introduce no voltage drop since there will be essentially no current drawn through it after the 0.3ms it takes to charge the decoupling caps. The green area is a voltage divider that cuts the reference voltage (2.5V) in half (1.25V) as the negative input to the op amp. Resistors R34 and R35 are set to provide gain of 16.05x, which provides the red output that feeds directly into the ADC (also referenced to save V_REF.)
I've measured V_REF, orange nodes, and the divided-V_REF in green area and they all check out perfectly. Since the yellow and red areas are multiplexed, my DMM does me no good in trying to measure voltages there.
I can't for the life of me figure out why this doesn't work perfectly. Does the op amp input draw enough current for me to be losing anywhere from 4-15mV across the yellow area's resistance? Do multiplexers do anything to the signal besides presenting the on-state resistance listed in the spec sheet? What am I missing here?
For what it's worth, we're not discussing a bad board needing repair here - the problem is systemic. It's been happening for 4+ years over hundreds of machines. The software has provisions for adjusting offsets to make it work, but curiosity and idealism make me want to understand what's really happening here, and maybe fix it.
My analysis was in simple blocks. The yellow area is a voltage divider between the 2k43 resistor and the RTD (2k7 reference resistor used in many of my tests, as that is closest to the target range where accuracy is most important.) The yellow area is a 1k resistor and the multiplexer, which as far as I can tell should introduce no voltage drop since there will be essentially no current drawn through it after the 0.3ms it takes to charge the decoupling caps. The green area is a voltage divider that cuts the reference voltage (2.5V) in half (1.25V) as the negative input to the op amp. Resistors R34 and R35 are set to provide gain of 16.05x, which provides the red output that feeds directly into the ADC (also referenced to save V_REF.)
I've measured V_REF, orange nodes, and the divided-V_REF in green area and they all check out perfectly. Since the yellow and red areas are multiplexed, my DMM does me no good in trying to measure voltages there.
I can't for the life of me figure out why this doesn't work perfectly. Does the op amp input draw enough current for me to be losing anywhere from 4-15mV across the yellow area's resistance? Do multiplexers do anything to the signal besides presenting the on-state resistance listed in the spec sheet? What am I missing here?
For what it's worth, we're not discussing a bad board needing repair here - the problem is systemic. It's been happening for 4+ years over hundreds of machines. The software has provisions for adjusting offsets to make it work, but curiosity and idealism make me want to understand what's really happening here, and maybe fix it.