ESP32-WROOM-32E Minimum implementation without USB
Posted: Mon May 09, 2022 2:33 pm
Hello,
I'm working on placing the ESP32-WROOM-32E onto an existing PCB design. The device will be powered from existing onboard 3.3V, and will not be featuring a USB connector/USB5V/onboard USB-UART converter. Currently, I'm referencing both the ESP32-WROOM-32E data sheet section 6 "Peripheral Schematics", as well as the ESP32-DeVKitC_V4 schematic.
We would like to have multiple interfaces available to use:
A) External UART interface for serial communications/debugging/programming, likely with an external UART/USB converter such as: https://ftdichip.com/products/ttl-232r-3v3/
B) External JTAG programming/debug interface
C) Onboard UART interface for programming and communication with an existing master MCU. Our master MCU will have access to IO0 and EN to set the boot mode for this use case.
I have a few questions regarding proper configuration of the device programming and boot modes.:
1) Can any UART port be used for programming, or just UART0 (U0RXD/U0TXD)? Meaning, can separate UART interfaces be provided to the onboard master MCU and offboard for programming? If so, how is this configured?
2) How can an external UART device control the boot mode automatically for UART programming? I see that on the ESP32-DeVKitC_V4, DTR/CTS flow control signals generated by the UART converter set the Boot setting pins EN/IO0, but I'm a bit confused by this implementation. How can an external UART/USB converter be used, and are transistors Q1/Q2 required? As I understand boot configuration, would it be acceptable just to leave EN high (device on/not in reset) and hold IO0 low with a pushbutton or ICT fixture, or is there some sequencing required that I'm missing?
3) Is there any onboard configuration required to setup the device for JTAG programming, or is this automatic? In most documentation I read, UART appears to be the preferred programming method, is there a reason for this? We intend to use JTAG possibly for programming during assembly, as well as for in-circuit debugging for design.
Thank you
I'm working on placing the ESP32-WROOM-32E onto an existing PCB design. The device will be powered from existing onboard 3.3V, and will not be featuring a USB connector/USB5V/onboard USB-UART converter. Currently, I'm referencing both the ESP32-WROOM-32E data sheet section 6 "Peripheral Schematics", as well as the ESP32-DeVKitC_V4 schematic.
We would like to have multiple interfaces available to use:
A) External UART interface for serial communications/debugging/programming, likely with an external UART/USB converter such as: https://ftdichip.com/products/ttl-232r-3v3/
B) External JTAG programming/debug interface
C) Onboard UART interface for programming and communication with an existing master MCU. Our master MCU will have access to IO0 and EN to set the boot mode for this use case.
I have a few questions regarding proper configuration of the device programming and boot modes.:
1) Can any UART port be used for programming, or just UART0 (U0RXD/U0TXD)? Meaning, can separate UART interfaces be provided to the onboard master MCU and offboard for programming? If so, how is this configured?
2) How can an external UART device control the boot mode automatically for UART programming? I see that on the ESP32-DeVKitC_V4, DTR/CTS flow control signals generated by the UART converter set the Boot setting pins EN/IO0, but I'm a bit confused by this implementation. How can an external UART/USB converter be used, and are transistors Q1/Q2 required? As I understand boot configuration, would it be acceptable just to leave EN high (device on/not in reset) and hold IO0 low with a pushbutton or ICT fixture, or is there some sequencing required that I'm missing?
3) Is there any onboard configuration required to setup the device for JTAG programming, or is this automatic? In most documentation I read, UART appears to be the preferred programming method, is there a reason for this? We intend to use JTAG possibly for programming during assembly, as well as for in-circuit debugging for design.
Thank you