Electronic – µC (Arduino) and Dealing with thermocouple noise

emcmicrocontrollernoisethermocouple

We've recently used an arduino along with a MAX31856 breakout board to measure some type-J Thermocouple temperature and then replicate it as a KTY xxx through a digital pot (MCP4261).

So all this people is communicating through SPI and it's all fine and dandy until we start the induction motor the thermocouple is mounted in (probably potted into the stator, don't know the exact position)… then everything goes berserk from the conducted EMI…

I think (quite obviously actually…) the thermocouple is not electrically in contact with the stator but as soon as we start running the motor even without load, the Arduino resets or just gives completely false readings (usually higher than real).

Now the question is : how should I deal with that?
I've already isolated the +12V Arduino supply through a DC/DC but it might also make a ground loop if the thermocouple is grounded somewhere…

Is my only option going through an optocoupled SPI and isolated supply to the MAX31856?

Thanks for the help!

Marc


In order to answer to some of the comments :

  • Yes the motor is run from an inverter taking its power from a battery pack (it's an EV application). This battery pack is isolated from the +12V supply through an isolated DC/DC and the arduino is yet again isolated through another 12V/12V isolated DC/DC (helped a lot with other EMI problems).

  • The arduino doesn't really reset anymore (since we isolated it's supply) but it gives wrong measurements. For example : we set a threshold above which a fan goes off and when we accelerate the motor, the fan briefly turns itself on from the EMI noise picked up by the thermocouple which gives a false high reading. Then when we let off the throttle, it just stops…
    Powering the arduino from a battery gives the same results…

  • The thermocouple is not connected through a twisted pair from the motor terminals to the arduino but that is something we can change. The path inside the motor is not in our hands though…

Best Answer

I suppose the motor is run from a VFD as well, which are notoriously noisy.

Try adding a taste of resistance in the T/C leads, perhaps 100 ohms, and increase the datasheet capacitors by an order of magnitude (to 1uF X7R and 100nF X7R).

enter image description here

Keep the resistors physically small so the temperature differential across the ends is minimal. Ideally you could graft a pair of smallish (0805 or 1206 is fine) SMT resistors between the terminal block and the chip. You can test it with leaded resistors hanging off the terminal block, but the temperature error will be larger than necessary.

A grounded (at the PCB) shield on the thermocouple wires and any thermocouple extension leadwires may also help.