固件升级

[English]


1. Host MCU 如何通过串口对 ESP32 进行烧录升级?

更新时间:2022.4.22


2. 如何使用 USB 转串口工具对 ESP32 系列的模组下载固件?

USB 转串口对 ESP32 系列的模组下载固件的接线方式如下:

乐鑫模组 3V3 GND TXD RXD IO0 EN
串口工具 3V3 GND RXD TXD DTR RTS

注: ESP8266 模组需要额外将 IO15 接地。

更新时间:2022.4.22


3. ESP32 是否支持使用 JTAG 管脚直接烧写程序?

ESP32 支持使用 JTAG 管脚 直接烧写程序,参考文档:上传待调试的应用程序

更新时间:2022.4.22


4. ESP32 能否通过 OTA 开启 Security Boot 功能?

  • 不推荐这样开启,因为这样操作存在风险,并且需要多次 OTA 固件。

  • Security Boot 功能存在于 Bootloader 中,需要首先更新 Bootloader 才可以开启该功能。

    1. 首先,检测目前设备的分区表是否可以存放开启 Security Boot 后的 Bootloader。

    2. 然后,更新一个支持写入 Bootloader 分区的中间固件。默认配置中无法擦写 Bootloader 分区,需要 make menuconfig 单独开启。

    3. 随后,将中间固件签名后 OTA 到目标设备,运行中间固件,中间固件先进行 OTA Bootloader, 再 OTA 被签名的新固件。

    4. 如果在 OTA Bootloader 时出现中途断电或者断网失败重启,设备将无法启动,需要重新烧录。

更新时间:2022.4.22


5. ESP32 如何设置 Flash SPI 为 QIO 模式?

  • 可通过 menuconfig -\ Serial flasher config -\ Flash SPI mode 配置端进行设置,对应 API 为 esp_image_spi_mode_t()

更新时间:2022.4.22


6.使用 ESP32-WROVER-B 模组通过 Flash 下载工具 下载 AT 固件,当完成写 Flash 后,结果显示 ERROR。但使用 ESP32-WEOVER-E 的模组下载相同的 AT 固件结果却显示正常,是什么原因?

  • ESP32-WROVER-B 模组引出了 FLASH SPI 的管脚,但 ESP32-WROVER-E 模组没有引出 FLASH SPI 的管脚,请先检查 ESP32-WROVER-B 模组的 FLASH SPI 引脚是否被外部其他应用电路复用。

  • ESP32-WROVER-B 的 FLASH SPI 的 CMD 引脚接 GND 会导致 Flash 无法启动,报错将打印如下日志:

 rst:0x10 (RTCWDT_RTC_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
 flash read err, 1000
 ets_main.c 371 
 ets Jun  8 2016 00:22:57

更新时间:2022.4.22


7. 使用 ESP32-WROVER-E 模组下载程序后,上电打印日志如下,是什么原因?

rst:0x10 (RTCWDT_RTC_RESET),boot:0x37(SPI_FLASH_BOOT)
【2020-12-11 15:51:42 049】invalrd header:0xffffffff
invalrd header:0xffffffff 
invalrd header:0xffffffff
  • 出现如上报错日志一般情况为 GPIO12 拉高导致,ESP32-WROVER-E 模组 GPIO12 不能拉高,建议将 GPIO12 拉低测试一下。可参见 ESP32 boot log 指南

更新时间:2022.4.22