Page 1 of 1

Using the built-in USB/JTAG interface for my design

Posted: Fri Jul 12, 2024 11:43 pm
by Yair.Raz
I'm using the ESP32-S3-VROOM-1 module in my design.
I would like to use the built-in USB/JTAG interface (via GPIO19 and GPIO20) as a USB CDC serial port (for connecting to a host PC) and as a JTAG debug interface.

I know that there is a driver that allows me to use this interface as a UART. My question is: How should I configure my software and fuses to allow both serial interface AND JTAG debug from the same USB connection?

I also have an ESP32-S3-DevKitC-1 so I can test my code.

Thanks,
Yair

Re: Using the built-in USB/JTAG interface for my design

Posted: Sun Aug 04, 2024 3:53 pm
by RandomInternetGuy
That works. The hardware provides two different endpoints on the USB interface. One is for JTAG and the other endpoint is either virtual serial CDC/ADM (I can't recall which it is, but "serial port") or whatever you want it to be. So if you create ESP32 software to be an endpoint for a mass storage device or a printer or a keyboard or whatever, it can be those, too.

There are tons of examples on GitHub.

Re: Using the built-in USB/JTAG interface for my design

Posted: Mon Aug 05, 2024 2:43 am
by ESP_Sprite
Yair.Raz wrote:
Fri Jul 12, 2024 11:43 pm
I know that there is a driver that allows me to use this interface as a UART. My question is: How should I configure my software and fuses to allow both serial interface AND JTAG debug from the same USB connection?
You don't have to do anything: by default the USB-JTAG-serial port is enabled and provides both serial and JTAG functionality at the same time. (Although if you want to use fgets() and friends you may need to make it the primary console in menuconfig).