I am working on a MAX31855 based system, and I just can't get the right temperature.
I have a K probe connecting to a K socket about 1½" from the board, with about 0.5" of traces from the board entry point to the chip. The chip is powered from 3.3V, and properly decoupled, etc.
The temperature the probe reads is way off the real temperature.
I have a DMM with temperature probe. At room temperature (25° today) they both read the same value.
When the MAX31855 reads 100° the DMM reads 147°. When the MAX31855 reads 150° the DMM reads 244°. I have melted solder paste (reflow temperature ~220°) to confirm that the DMM is the right temperature, and the MAX3155 is wrong.
Things I have tried:
If I swap the probes (they are both K) I get exactly the same results.
As for wires that link the K socket to the PCB, I have used both normal 25AWG and proper K thermocouple wire (offcuts from an old thermocouple).
The chip is mounted to the underside of the board about 10mm from the enclosure. The enclosure has ventilation directly below the chip, so it stays at room temperature (this is a later addition to see if that helped the problem, to no avail).
A couple of degrees difference I can tolerate. Almost 100° difference is just taking the wet.
I have scoured the data sheet till it's made my eyes bleed. I have taken other people's example code (Lady ADA, RocketScream, etc) and checked and double checked my calculations, and it's all perfectly fine (shift right 18, mask, sign extend, convert to float, multiply by 0.25 - I mean it doesn't get much simpler). Analysing the data stream from the chip on my 'scope shows that the temperature it's reporting is what my program is calculating.
So where am I going wrong?!
I don't normally ask for help, but ... HELP...?