下载模式的基本原理

ESP32-S3 进入下载模式的基本原理是通过控制 GPIO0 和 EN(RESET)引脚的电平状态来实现的:

  1. GPIO0 引脚--高压(左5):需要拉低(接地GND)。
  2. EN(RESET)引脚左4:需要拉高(接电源)并短暂拉低(复位)。

 

 

ESP32-S3 是一款功能强大的微控制器,具有多种调试和编程接口。默认情况下,ESP32-S3 的 JTAG 接口连接到内置的 USB_SERIAL_JTAG 外设。然而,在某些情况下,你可能需要使用外部 JTAG 适配器进行调试。这时,你需要将 JTAG 接口切换到特定的 GPIO 管脚。为了实现这一点,你可以使用 espefuse.py 工具来烧录 eFuse。

详细描述

  1. DIS_USB_JTAG eFuse
    • 功能:烧录此 eFuse 后,USB_SERIAL_JTAG 和 ESP32-S3 的 JTAG 接口之间的连接将被永久禁用。
    • 效果:此后,你可以将 JTAG 接口连接到 GPIO39-GPIO42。需要注意的是,烧录后,USB_SERIAL_JTAG 的 USB CDC 功能仍然可用,即仍然可以通过 USB CDC 进行烧录和查看日志。
  2. STRAP_JTAG_SEL eFuse
    • 功能:烧录此 eFuse 后,JTAG 接口的选择将由 strapping 管脚 GPIO3 来决定。
    • 效果:ESP32-S3 复位时,如果该 strapping 管脚为低电平,JTAG 接口将使用 GPIO39-GPIO42;如果为高电平,USB_SERIAL_JTAG 将被用作 JTAG 接口。

上述作者采用的是“DIS_USB_JTAG eFuse”因为GPIO3 用作其它接口已被占用(如这个GPIO3 已被开发板占用,请勿选择此方式,如果选择则会导致每次断电开启就会进入复位时进入)。

烧录 DIS_USB_JTAG eFuse

  • 连接 ESP32-S3 到你的电脑。
  • 打开终端并运行以下命令:
espefuse.py --port COM4 burn_efuse DIS_USB_JTAG

这里的 COM4 是你的设备端口,可能需要根据实际情况进行调整。

139bad5632c7a6c2fc9bb2a1977ebd04

 

在执行 espefuse.py --port COM4 burn_efuse DIS_USB_JTAG 命令后,你可以通过读取 eFuse 的状态来检查是否成功禁用了 USB JTAG 接口。以下是详细的步骤:

检查 eFuse 状态

  1. 读取 eFuse 状态
    • 使用 espefuse.py 工具读取 eFuse 的状态,确认 DIS_USB_JTAG eFuse 是否已被烧录。
    • 运行以下命令读取 eFuse 状态:
espefuse.py --port COM4 summary
  1. 检查输出
    • 查看命令输出,找到 DIS_USB_JTAG 的状态。如果 eFuse 已成功烧录,输出中应该显示 DIS_USB_JTAG 被设置为 1

0b1cadfd3783559a362e86addd7fcfcefb74a02659f99d216a5046ed7345ae56

详细解释

  • DIS_USB_JTAG (Disable USB JTAG):这一行显示了 DIS_USB_JTAG eFuse 的状态。
    • True:表示 eFuse 已被烧录,USB JTAG 接口已被禁用。
    • False:表示 eFuse 未被烧录,USB JTAG 接口仍然启用。

进一步验证

除了检查 eFuse 状态,你还可以通过以下方法进一步验证 USB JTAG 接口是否已被禁用:

  1. 尝试使用 USB JTAG 接口
    • 尝试通过 USB JTAG 接口进行调试。如果 USB JTAG 接口已被禁用,你将无法通过 USB 进行 JTAG 调试。
  2. 使用外部 JTAG 接口
    • 连接外部 JTAG 调试器到 ESP32-S3 的 JTAG 引脚(GPIO39-GPIO42),并尝试进行调试。如果外部 JTAG 接口正常工作,说明 USB JTAG 接口已被禁用。

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。