Wie man ESP32S3 JTAG behebt: Error: esp_usb_jtag: could not find or open device!

Problem

Beim Versuch, JTAG auf dem ESP32S3 mit dem internen USB-JTAG mit einem Befehl wie

idf_openocd.sh
idf.py openocd

zu verwenden, sehen Sie einen Fehler wie diesen:

openocd_output.txt
Executing action: openocd
Note: OpenOCD cfg not found (via env variable OPENOCD_COMMANDS nor as a --openocd-commands argument)
OpenOCD arguments default to: "-f board/esp32s3-builtin.cfg"
OpenOCD started as a background task 3169083
Executing action: post_debug
Open On-Chip Debugger v0.12.0-esp32-20250422 (2025-04-22-13:02)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselecting 'jtag'
Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
Info : esp_usb_jtag: capabilities descriptor set to 0x2000
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Error: esp_usb_jtag: could not find or open device!
/home/uli/.espressif/tools/openocd-esp32/v0.12.0-esp32-20250422/openocd-esp32/share/openocd/scripts/target/esp_common.cfg:9: Error:
Traceback (most recent call last):
  File "/home/uli/.espressif/tools/openocd-esp32/v0.12.0-esp32-20250422/openocd-esp32/share/openocd/scripts/target/esp_common.cfg", line 9, in script
"openocd" exited with 1

Wenn Sie die USB-Geräte mit lsusb auflisten, sehen Sie das ESP32S3-Gerät als 303a:0009:

lsusb_output.txt
Bus 001 Device 099: ID 303a:0009 Espressif ESP32-S3

Lösung

Das Problem hier ist, dass OpenOCD nach 303a:1001 sucht (siehe VID set to 0x303a and PID to 0x1001, Quellcode auf GitHub), aber das Gerät tatsächlich 303a:0009 ist.

Der Grund dafür ist, dass der ESP32S3 nicht im Bootloader-Modus ist.

Sie müssen den ESP32S3 in den Bootloader-Modus versetzen, indem Sie die BOOT-Taste gedrückt halten, während Sie die EN-Taste drücken. Dies wird das Gerät zurücksetzen und in den Bootloader-Modus versetzen.


Check out similar posts by category: ESP32