-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Some MAX31855K peripheral boards have a pull-up resistor on SPI Chip-Select. For most Arduino boards this may be fine; however, on the ESP8266 when using HSPI, pin GPIO15 is the Hardware SS (Subordinate Select). When Chip-Select from these peripheral boards is connected to GPIO15, the ESP8266, in most cases, will not boot. The GPIO15 pin serves a special purpose at boot time. To boot off the flash (vs. booting into program mode). GPIO15 must be held low or the device may come up in program mode. Most ESP8266 Development boards have a ~10K pull-down resistor on this pin. Combining the pull-down resistor with a pull-up resistor will results in an undefined logic level at boot time.
You will either need to: select a different GPIO pin for SS and do a Soft Chip-Select - or - remove the Chip-Select pull-up resistor from the peripheral board.
A fluctuating reading that only goes low. Infrequently swinging below the real value. Monitored over time it may even go near zero or negative. If you take the maximum value of a set of recent samples, you have a realistic value. This characterizes my observation for when I had problems with SPI Bus ringing.
- I see a lot of ringing at each SCK and SS transition. And, each one is coupled into the other signals.
- The Maxim reference design for the MAX3155 shows 150 Ohm Series Resistors on each SPI Bus pin. After adding these my erratic readings went away. So far the Maxim evaluation board is the only one that I have seen that has these.
- I think the Ringing is a case of a classic unterminated transmission line, even though the SPI Bus wires were very short. The GPIO pin Rise/Fall times are better than 3ns. I say better than 3ns because my 50 MHz oscilloscope cannot measure it accurately.
- I think it is worth noting that the Espressif's Hardware Design Guideline, section 1.5. Slave SDIO/SPI, shows the use of series resistors (R8, R10, R12, R13) on the SPI Bus signals. I think CS should be included in that set; they did not.
If the temperature goes lower when it should be rising or goes higher when it should be falling, check the polarity of the Thermocouple connection. The wiring color code depends on the standard agency the manufacturer chose to follow. This appears to align with the country of origin. This should not be a problem when using a Thermocouple with a pre-attached connector. The thermocouple plugs and sockets are polarized. For US ANSI 96.1 Type-K Thermocouple: + Yellow, – Red. For International IEC 584-3 Type-K Thermocouple: + Green, – White.
- A noisy environment appears to be an issue with the MAX31855 as it is with many microvolt measuring devices. The Maxim reference design for the MAX3155 shows using two ferrites and a 0.01μF capacitor on the thermocouple input pins to the MAX31855. As well as, pads for shunt capacitors. Not all of the breakout boards, that I have seen on the Internet, have a filter circuit. I think having an onboard filter circuit should be selection criteria for picking a board or a strong concentration when laying out a PCB board.
- Noise pickup will show as a fluctuating reading. Swinging above and below the real value.
- Keep thermocouple and wire away from power line runs.
- For reference point of what can be achieved, my good result: When properly placed, I see readings with a maximum delta change of 0.5 degrees C. The maximum value is the difference in the maximum and minimum readings from a continuous running sample list of 16 entries that spans 4.7 second period. The list is rescanned for a new maximum difference at the addition of each new sample. That new maximum is std::max() with a running maximum to form the measurement. This allows a measurement free from the influence of a slow-changing room temperature.
- Keep thermocouple and wire away from any electrical devices that may radiate RFI.
- References
- K Type Thermocouple Connector with Noise reduction Filter board - Uhh, J336 is a 33μF/6.4V Tantalum CAP. And they have two on the board.
- Thermocouple Noise Filtering - wow they used 10μF caps
I got these for a while. I tried several MAX31855 boards, all would do this and there was no real short-circuit to the ground. The problem appears to be tied to one USB Power Adapter. I discovered that the problem would disappear when I connected the oscilloscope ground to the ESP8266 power gound. In the end, all it took to make the problem disappear with that adapter was a 100pF capacitor between the ESP8266 power ground and earth ground. I don't fully understand this. It seems that possibly some RF noise present from a USB Power source can fool the MAX31855 SCG detection method into thinking it has a short to ground.
Grounded thermocouple vs “grounded” thermocouple
Thermocouple noise causing spurious reading with Solid State Relay (SSR)
Reference for self-study on thermocouples - good background information