1
\$\begingroup\$

I have a PCB with a MCU (ESP32) datasheet that appears to be unresponsive and I am trying to verify whether it is my assembly, circuit, or components which are bad. I connect my board to my PC using a micro-USB which then is connected to the MC using a silicon labs UART bridge chip CP2102N-A02-GQFN28R. As soon as I connect the board, I see the port is recognized which is a good sign. I then attempt a firmware upload but my PC is unable to connect to the ESP32 and eventually times out.

Fortunately, I have used the power circuit and firmware upload circuit on other boards which do work so I would be surprised if the issue was here. However I am doing a few things different with GPIOs and ESPs can be weird about boot failures and strapping pins, which I know too little about.

I have verified: power to ESP32 is adequate, IO0 pulls to GND during firmware upload attempts, EN is normally 3.3V and pulls to GND during boot attempts, checked orientation and for shorts on bridge IC.

Is there a way to rule out a DOA (dead on arrival) ESP32 with my setup? I think I can rule out a DOA bridge IC because the port is recognized.

mcu circuit

Edit below I have labeled the voltage readings from a multimeter as soon as I plugged in my board. I notice that USB DP is at 3V and DN is at 0V, however the RXD and TXD out of the bridge IC are both at 3.3V. This seems like a problem here. I checked to see if the two pads were shorted together and they are not. firmware circuit

\$\endgroup\$
6
  • \$\begingroup\$ Voltage seem ok except for IO0, which should be 3.3V. But it shouldn't be a problem. If pin IO15 (aka as MTDO) is not pulled down at reset (unclear for schematic), the ESP32 should send debug info to TXD. Are you seeing that? If not, the ESP32 is not running (either no power, held in reset etc.). If it is, the reset logic might not work reliably. This problem affects many ESP32 boards. Try to put the ESP32 into firmware download mode manually but pulling both IO0 and IO2 low (first pull IO2 down, then IO0, then release IO0, release IO2). \$\endgroup\$
    – Codo
    Commented Nov 5, 2021 at 15:40
  • \$\begingroup\$ I cannot try the manual pull-down at the moment, but I am wondering about the IO15 and IO12 comment. Both are strapping pins but are connected to a logic level translator TXS0108EPWR which is in "high impedance mode" which happens when the translator is not enabled. Would this affect the two strapping pins of which IO15 is included? \$\endgroup\$
    – Feynman137
    Commented Nov 5, 2021 at 15:49
  • \$\begingroup\$ If it is sufficiently high impedance, it shouldn't affect it. Measure it. IO12 should measure low for typical flash memory. IO15 will only affect debug output. It should measure high. \$\endgroup\$
    – Codo
    Commented Nov 5, 2021 at 15:56
  • \$\begingroup\$ Okay, I measured and both of the pads are measuring at 0.012V \$\endgroup\$
    – Feynman137
    Commented Nov 5, 2021 at 16:02
  • \$\begingroup\$ That's ok except is silences the boot messages. Can you pull IO15 hight at boot so you get the boot messages? That would help with debugging. \$\endgroup\$
    – Codo
    Commented Nov 5, 2021 at 19:08

1 Answer 1

1
\$\begingroup\$

The ESP32 IC was DOA. I removed the original IC from the board and replaced it with an identical IC. After this firmware updates and other tests were successful.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.