求助:使用VS Code ESP-IDF扩展调试ESP32-C3内置JTAG失败
解决Xiao ESP32-C3内置USB-JTAG调试时OpenOCD无法识别设备的问题
针对你遇到的OpenOCD启动调试时提示LIBUSB_ERROR_NOT_FOUND、无法找到JTAG设备的问题,结合你的排查情况,提供以下针对性解决方案:
1. 修正OpenOCD的设备VID/PID配置
Xiao ESP32-C3的默认USB VID/PID可能和OpenOCD预设的0x303a 0x1001不匹配,需要手动指定:
- 找到OpenOCD的ESP32-C3配置文件,路径为:
C:\Users\XXX\.espressif\tools\openocd-esp32\v0.12.0-esp32-20241016\openocd-esp32\share\openocd\scripts\target\esp32c3.cfg - 打开文件,找到
adapter driver esp_usb_jtag这一行,在下方添加Xiao设备的VID/PID(可从设备管理器的设备属性中查看):esp_usb_jtag vid_pid 0x2886 0x802F - 保存文件后重启VS Code的调试会话
2. 彻底重置USB驱动绑定
即使已经安装WINUSB,也可能存在驱动绑定错误:
- 打开设备管理器,找到"USB JTAG/serial debug unit (Interface 2)",右键选择卸载设备,勾选“删除此设备的驱动程序软件”
- 拔下开发板,等待10秒后重新插入
- 打开Zadig,选择对应的Interface 2接口,重新安装WINUSB驱动
3. 验证并启用JTAG eFuse
如果JTAG被eFuse禁用,也会导致无法识别:
- 在VS Code的ESP-IDF终端执行命令,检查eFuse状态:
esptool.py efuse summary - 查看输出中
JTAG_DISABLE项,如果值为1,说明JTAG被禁用,执行以下命令启用(注意:eFuse烧录不可逆,确认后操作):esptool.py efuse burn_efuse JTAG_DISABLE 0
4. 降级OpenOCD版本
新版本OpenOCD可能对Xiao ESP32-C3存在兼容性问题:
- 在VS Code中打开命令面板(Ctrl+Shift+P),输入
ESP-IDF: Configure ESP-IDF Extension - 选择
OpenOCD version,切换到v0.11.0-esp32-20221026版本 - 等待安装完成后重启调试会话
问题核心说明
LIBUSB_ERROR_NOT_FOUND错误本质是OpenOCD通过libusb库无法找到匹配的USB设备,常见原因包括:设备VID/PID与配置不匹配、USB驱动未正确绑定到JTAG接口、系统USB权限冲突、OpenOCD版本兼容性问题,或是ESP32-C3的JTAG eFuse被禁用。
内容的提问来源于stack exchange,提问作者Michael Nigbor
相关产品推荐
相关产品推荐

