ESP32 Custom PCB not starting up except when U0RXD is pulled up or down externally
Posted: Mon Jul 27, 2020 3:42 am
Hello all,
I've designed a custom 2-layer PCB using an ESP32-D0WD V3. I'm using a MircroMatch connector as a programming interface, routing the EN, BOOT and UART pins there. I'm having an issue whereby the boards will fail to start up normally, unless the U0RXD pin is pulled up or down via a resistor or I connect my programmer (basically an FT232R) to the programming connector. Once connected, the board works perfectly fine, with WiFi output power even exceeding the output power of a commercial ESP32-WROOM module by 10-20dBm (as measured by my smartphone).
Without this resistor or without connecting the programming cable, the board can very often fail to startup, and even if it starts, touching the pins of the programming connector can cause it to stop working. With the resistor, touching the connector has no effect on the performance of the board and it continues to operate just fine. I'd like to point out that this only works with the U0RXD pin - applying this resistor to any of the EN, BOOT or U0TXD pins does not solve the issue.
I haven't found anything in the datasheets regarding U0RXD - from what I can tell, there should be an internal pull-up resistor anyway.
Any thoughts on this?
I've designed a custom 2-layer PCB using an ESP32-D0WD V3. I'm using a MircroMatch connector as a programming interface, routing the EN, BOOT and UART pins there. I'm having an issue whereby the boards will fail to start up normally, unless the U0RXD pin is pulled up or down via a resistor or I connect my programmer (basically an FT232R) to the programming connector. Once connected, the board works perfectly fine, with WiFi output power even exceeding the output power of a commercial ESP32-WROOM module by 10-20dBm (as measured by my smartphone).
Without this resistor or without connecting the programming cable, the board can very often fail to startup, and even if it starts, touching the pins of the programming connector can cause it to stop working. With the resistor, touching the connector has no effect on the performance of the board and it continues to operate just fine. I'd like to point out that this only works with the U0RXD pin - applying this resistor to any of the EN, BOOT or U0TXD pins does not solve the issue.
I haven't found anything in the datasheets regarding U0RXD - from what I can tell, there should be an internal pull-up resistor anyway.
Any thoughts on this?