下载模式的基本原理
ESP32-S3 进入下载模式的基本原理是通过控制 GPIO0 和 EN(RESET)引脚的电平状态来实现的:
- GPIO0 引脚--高压(左5):需要拉低(接地GND)。
- EN(RESET)引脚左4:需要拉高(接电源)并短暂拉低(复位)。
ESP32-S3 是一款功能强大的微控制器,具有多种调试和编程接口。默认情况下,ESP32-S3 的 JTAG 接口连接到内置的 USB_SERIAL_JTAG 外设。然而,在某些情况下,你可能需要使用外部 JTAG 适配器进行调试。这时,你需要将 JTAG 接口切换到特定的 GPIO 管脚。为了实现这一点,你可以使用 espefuse.py
工具来烧录 eFuse。
详细描述
- DIS_USB_JTAG eFuse:
- 功能:烧录此 eFuse 后,USB_SERIAL_JTAG 和 ESP32-S3 的 JTAG 接口之间的连接将被永久禁用。
- 效果:此后,你可以将 JTAG 接口连接到 GPIO39-GPIO42。需要注意的是,烧录后,USB_SERIAL_JTAG 的 USB CDC 功能仍然可用,即仍然可以通过 USB CDC 进行烧录和查看日志。
- 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
是你的设备端口,可能需要根据实际情况进行调整。
在执行 espefuse.py --port COM4 burn_efuse DIS_USB_JTAG
命令后,你可以通过读取 eFuse 的状态来检查是否成功禁用了 USB JTAG 接口。以下是详细的步骤:
检查 eFuse 状态
- 读取 eFuse 状态:
- 使用
espefuse.py
工具读取 eFuse 的状态,确认DIS_USB_JTAG
eFuse 是否已被烧录。 - 运行以下命令读取 eFuse 状态:
- 使用
espefuse.py --port COM4 summary
- 检查输出:
- 查看命令输出,找到
DIS_USB_JTAG
的状态。如果 eFuse 已成功烧录,输出中应该显示DIS_USB_JTAG
被设置为1
。
- 查看命令输出,找到
详细解释
- DIS_USB_JTAG (Disable USB JTAG):这一行显示了
DIS_USB_JTAG
eFuse 的状态。- True:表示 eFuse 已被烧录,USB JTAG 接口已被禁用。
- False:表示 eFuse 未被烧录,USB JTAG 接口仍然启用。
进一步验证
除了检查 eFuse 状态,你还可以通过以下方法进一步验证 USB JTAG 接口是否已被禁用:
- 尝试使用 USB JTAG 接口:
- 尝试通过 USB JTAG 接口进行调试。如果 USB JTAG 接口已被禁用,你将无法通过 USB 进行 JTAG 调试。
- 使用外部 JTAG 接口:
- 连接外部 JTAG 调试器到 ESP32-S3 的 JTAG 引脚(GPIO39-GPIO42),并尝试进行调试。如果外部 JTAG 接口正常工作,说明 USB JTAG 接口已被禁用。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)