ESP32-S3 固件烧录

今天这篇文章简单记录一下 ESP32 S3 固件的几种烧录方式,第一种比较适合工厂和非开发人员,第二、三种在功能开发过程经常使用。描述比较精简,如有错误欢迎指出。

提醒:进入博主 牛瘪汤 主页了解更多。


提示: ESP32 S3 正常烧录前期,芯片正常供电,使能控制拉高,芯片正常运行。


前期准备

  1. 下载 Flash_download_tool
    ESP32 S3 固件下载可以使用官方下载工具 Flash_download_tool。

  2. 已经安装 Arduino IDE,并且安装 ESP32S3 开发板相关库。

  3. 如果自研的 ESP32S3 板子需要确保硬件连接,然后再连接串口下载。
    ESP32S3 芯片需要先供电,再拉起 CHIP_PU,芯片正常运行。

  • 正常供电
    VDD --> 3V3
    GND --> GND (与供电板“共地”)

  • 串口下载
    TXD0 、RXD0 (需要与USB转串口交叉接线)

ESP TXD0 --> Rx (USB转串口)
ESP RXD0 --> Rx (USB转串口)

  • 进入下载模式
    GPIO0 --> 拉低(进入下载启动模式)
    GPIO46 --> 拉低
    EN --> 从拉低变拉高

1. Flash_download_tool 下载固件

1.1 UART 方式下载固件

  • 启用 UART 下载模式
    flash_tool_uart

  • 选择需要下载固件
    falsh_uart

  • 选择 ESP32S3 对应串口端口号
    flash port
    默认使用 DIO Flash,按照图中方式点击 ‘START’;启动下载,等待下载完成。

1.2 USB 方式下载固件

USB烧录前需要先识别ESP32 S3 的 CDC 串口。CDC 串口被识别后,与常用 USB 转串口芯片相同,会生成端口号。需要注意的是,多个串口同时使用时,需要匹配到对应的端口号。

  • 启用 USB 下载模式
    flash_tool_usb
  • 选择需要下载固件
    flash_usb
  • 选择 ESP32S3 对应串口端口号
    flash port
    默认使用 DIO Flash,按照图中方式点击 ‘START’;启动下载,等待下载完成。 与使用 UART 方式对比,无需按键进入 loader 模式。

2 Arduino 烧录

Arduino 先编译固件再烧录,烧录前需要选择对应的端口号。

  • 选择 ESP32 端口
    工具 --> 端口 --> 端口号(ESPS32 对应的端口号)
  • 选择 ESP32 Flash 模式
    工具 --> Flash Mode --> DIO
    arduino flash
    截图中烧录模式不争取,需要自行修正。

提示:烧录时选择flash模式为DIO,默认是选择QIO模式。
如果是选择QIO模式烧录了程序,板子是无限重启,串口会不断打印系统重启信息。

烧录方法比较简单此处就不多赘述。

3. ESP_IDF 烧录

使用 ESP 官方 IDF 开发环境,代码编译效率和烧录速率相对 Arduino 高很多。接下来以 Linux 环境下使用 ESP_IDF 烧录固件简单讲解。以用户根目录下代码 esp-idf 的实力 blik为例。烧录代码同样需要先编译再烧录。

  • 编译固件
# 代码示例目录
cp ~/esp-idf/examples/get-started/blink .
# 设置目标芯片
idf.py set-target esp32
# 配置工程, 如果已经配置完可以忽略此步骤,没有配置的话,按照需要配置 menuconfig.
idf.py menuconfig
# 编译工程
idf.py build

# 编译工程
idf.py build
  • 烧录固件
- 固件烧录到设备
idf.py -p PORT flash

- 监视输出
idf.py -p PORT monitor

一次执行构建、烧录监视
idf.py -p PORT flash monitor

- 擦除 flash
idf.py -p PORT erase-flash

- 擦除 OTA 数据
idf.py -p PORT erase-otadata

PORT 是 ESP32 烧录时使用端口号,不再区分 USB 模式或者 USB 烧录模式
提示:擦除 flash 耗时久,中途请勿断开设备连接。

结语

文章都看到完了,就不点个关注吗,老铁!
欢迎关注博主–牛瘪汤

更多推荐