Configure Other JTAG Interface¶
Refer to section Selecting JTAG Adapter for guidance what JTAG interface to select, so it is able to operate with OpenOCD and ESP32-S3. Then follow three configuration steps below to get it working.
Configure eFuses¶
By default, ESP32-S3 JTAG interface is connected to the built-in USB_SERIAL_JTAG peripheral. To use an external JTAG adapter instead, you need to switch the JTAG interface to the GPIO pins. This can be done by burning eFuses using espefuse.py
tool.
Burning eFuses is an irreversible operation, so consider both options below before starting the process.
Burning
DIS_USB_JTAG
eFuse will permanently disable the connection between USB_SERIAL_JTAG and the JTAG port of the CPU. JTAG interface can then be connected to GPIO39-GPIO42. Note that USB CDC functionality of USB_SERIAL_JTAG will still be useable, i.e. flashing and monitoring over USB CDC will still work.Burning
JTAG_SEL_ENABLE
eFuse will enable selection of JTAG interface by a strapping pin, GPIO3. If the strapping pin is low when ESP32-S3 is reset, JTAG interface will use GPIO39-GPIO42. If the strapping pin is high, USB_SERIAL_JTAG will be used as the JTAG interface.
Configure Hardware¶
Identify all pins / signals on JTAG interface and ESP32-S3 board, that should be connected to establish communication.
¶ ESP32-S3 Pin
JTAG Signal
MTDO / GPIO40
TDO
MTDI / GPIO41
TDI
MTCK / GPIO39
TCK
MTMS / GPIO42
TMS
Verify if ESP32-S3 pins used for JTAG communication are not connected to some other h/w that may disturb JTAG operation.
Connect identified pin / signals of ESP32-S3 and JTAG interface.
Configure Drivers¶
You may need to install driver s/w to make JTAG work with computer. Refer to documentation of JTAG adapter, that should provide related details.
Connect¶
Connect JTAG interface to the computer. Power on ESP32-S3 and JTAG interface boards. Check if JTAG interface is visible by computer.
To carry on with debugging environment setup, proceed to section Run OpenOCD.