I am using the WT32-ETH01 board and aim at using 3x MAX31855 to read three k-Type thermocouples.
Currently I am testing with only one MAX31855.
I’ve been searching google for three days now and can’t seem to find a solution:
As soon as I power the PHY interface I am getting wrong temperature values from the MAX31855.
If I only use MAX31855 I get correct values.
If I only use Ethernet, Ethernet works.
If I use both, the values at room temperature vary between -300 and -780 degrees Celsius and they change in ranges of several hundred degrees when I move my hand closer to the k-type sensor’s cable.
If I unpower the Ethernet PHY chip (alternate pin GPIO16) the temperature readings are stable at room temperature (about 22 degrees Celsius in my case) and do not change even if I touch the sensor‘s cable.
The behavior is independent of used GPIO pins for SPI to the MAX31855 chip (I tried all available pins)
I could imagine I am missing something regarding SPI initialization, but no matter what I try I get the same errors.
Does anyone have a working arduino sketch that uses Ethernet and a MAX31855 at the same time on WT32-ETH01 board
or could point me in the right direction?
Post schematics of that board! I cannot find them. If it's a black box use it as documented and don't try custom firmwares unless you know exactly what you're doing.
This is the boards datasheet: WT32-ETH01 datasheet
Comment:
The datasheet has a mistake on the pinout picture at GPIO „TX“ on slide 11 (of 14), it states it is IO0 but it is IO1.
It seems that I may have solved it.
It appears to be related to the way Ethernet is being initialized I’m the example I found on the net.
Instead, I took a WT32-ETH01-specific library from GitHub WT32-ETH01-Webserver_MQTT_example
and modified it to read the MAX31855 via SPI in parallel.
First test is promising, I am getting plausible temperature values while publishing to MQTT via Ethernet.
Solved. It works.
Issue was a wrong ethernet initialization code for WT32-ETH01 that I copied from some code from GitHub.
A working one is linked above.
I deleted my not-working code that I posted earlier to avoid confusion.