Hello everyone,
I am currently developing a custom wearable application using the MAX30009 EV Kit. My goal is to bypass the provided MAXSENSORBLE (MAX32655) microcontroller board and interface the MAX30009 sensor directly with an external ESP32-S3 microcontroller via SPI.
I have built a carefully isolated hardware stack to handle the voltage differences, but I am running into severe data corruption/scrambling on the MISO line. I have narrowed the issue down to the EV Kit hardware and am hoping for some guidance on how to physically isolate the sensor.
My Hardware Setup:
-
MCU: ESP32-S3 (3.3V Logic)
-
Sensor Power: An external MP1495 DC-DC Buck Converter stepping 5V down to a clean 1.8V. This is connected to EV Kit
TP2(DVDD) andTP11(AVDD).TP1(DGND) is tied to the common system ground. -
Logic Translation: A TXB0108 Auto-Directional Level Shifter.
-
VB(High Side) = 3.3V from ESP32 -
VA&OE(Low Side & Enable) = 1.8V from the Buck Converter
-
-
SPI Connections: ESP32 $\rightarrow$ TXB0108 $\rightarrow$ EV Kit Test Points (
TP4SDI,TP3SDO,TP5SCLK,TP6CSB).
The Issue:
When I attempt to read the PART_ID register (0xFF), I am receiving scrambled data (e.g., 0x12 or 0x00 instead of the expected 0x42). I am using standard SPI Mode 0, and I have dropped the SPI clock down to 100 kHz to account for breadboard capacitance.
Troubleshooting Steps Taken:
To rule out my custom hardware, I performed a physical SPI Loopback Test.
-
I disconnected the 4 SPI wires from the MAX30009 EV Kit test points.
-
I placed a jumper wire directly from the MOSI channel to the MISO channel on the 1.8V side of the TXB0108 level shifter.
-
I transmitted a test byte (
0x55). -
The ESP32 successfully received
0x55back.
This confirms my ESP32, the level shifter, and the 1.8V power rails are operating flawlessly. The signal degradation is happening specifically when connected to the EV Kit test points.
My Suspected Culprit:
The green MAXSENSORBLE microcontroller board is still physically connected to the black headers on the blue MAX30009 board. (I have disconnected the flexible ribbon cable, but the header pins are still mating). Because the EV Kit is assembled extremely tightly, I have been unable to safely pry the green board off without feeling like I will crack the PCB.
I strongly suspect that because the MAX32655 is currently unpowered, its internal ESD diodes are acting as a parasitic load/sponge on the SPI lines. When my ESP32 tries to drive the SPI lines, this parasitic capacitance is likely collapsing the square waves and confusing the TXB0108's auto-direction sensing.
My Questions for the Community:
-
Is my assumption correct that the unpowered MAXSENSORBLE board will corrupt external SPI signals injected into the test points?
-
Since I cannot safely pry the green board off the headers, are there specific 0-ohm resistors or traces I can desolder/cut on the blue board to permanently sever the SPI connection between the headers and the MAX30009?
-
Alternatively, if I plug the green board into USB power, is there a firmware state I can put it in to force its SPI pins into a High-Z (High Impedance) state, allowing my ESP32 to act as the sole Master?
Thank you in advance for your time and expertise!