I've spent hours trying to debug this but can't solve it.
I have an
MCP3201 connected to an ESP32-S3 (
SuperMini on AliExpress) on a custom PCB. JLCPCB made and assembled the PCB.
Problem: The MCP3201 refuses to actually send out any data on its DOUT pin. It has an SPI-like interface with a CS, CLK, and DOUT/MISO signal.
Connections: I have connected the GPIO8 to DOUT, GPIO9 to CLK, and GPIO10 to CS. For the MCP3201 I've connected Vref to VDD and IN- to GND. Both of these should be valid according to the datasheet.
Software debugging: I have using an MCP3201 Arduino library, the SPI Arduino library, and even raw bitbanging to the MCP3201, and still nothing.
Hardware debugging: I have used a logic analyser to maake sure that the CS and CLK signals are coming through as expected. And I have confirmed the MCP3201 is getting 3.3V. I've double checked that the IC is an MCP3201 and that it's in the correct orientation.
Possibly a clue: When the ESP32-S3 SuperMini board itself is unplugged from the PCB the GPIO8 pin remains at ground regardless of whether I touch GPIO8 or not. When the ESP32-S3 SuperMini board is plugged into the PCB the GPIO8/DOUT pin seems to be semi-floating, because when I touch the pins the firmware reads different values.
Any ideas about next steps?
I'm grasping at straws, but is it possible that JLCPCB accidentally sourced fake MCP3201s? <-- I was totally wrong