ESP32入门之程序烧录:烧录错误总结

系列文章目录

《ESP32入门之GPIO:点亮一盏LED灯》


目录

系列文章目录

前言

一、ESP32烧录错误总结

1.错误一:等待报头超时

2.错误二:没有接收到串行数据

3.错误三:没有串口权限

4.错误四:数据包头 (0xXX) 无效:可能的串行噪音或损坏。

5.错误五:拒绝许可 dev/ttyUSB0

6.错误六:将压缩数据写入flash失败

7.错误七:MD5文件与flash中的数据不匹配!

二、ESP32串口烧录方法

1.strapping管脚

 2.log打印

三、方法总结

参考资料 


前言

ESP32系类芯片、模组等烧录程序时失败原因及解决方法总结。

本文仅供个人参考学习之用,不做其他任何用途。

一、ESP32烧录错误总结

1.错误一:等待报头超时

A fatal error occurred: Timed out waiting for packet header

此错误通常意味着esp32模组(芯片)没有正常进入下载模式,也有可能串口被占用。

解决方案:通过串口调试助手查看是否有进入下载模式的打印;检查模组的strapping管脚电平是否处于下载模式的电平;检查串口是否被占用。

2.错误二:没有接收到串行数据

A fatal error occurred: No serial data received

此错误通常意味着某种硬件问题,如TX、RX引脚未连接,usb转串口工具(CH340等)硬件存在问题等。

解决方案:检查串口引脚连接是否正常,更换usb转串口工具等。

3.错误三:没有串口权限

Failed to open port /dev/ttyUSB0

此错误通常出现在Linux向esp32烧录固件时,说明串口此时确实对应的权限。

解决方案:此时可执行以下命令以将用户添加至 dialout 组。

sudo usermod -a -G dialout $USER

4.错误四:数据包头 (0xXX) 无效:可能的串行噪音或损坏。

A fatal error occurred: Invalid head of packet (0xXX): Possible serial noise or corruption.

此错误通常意味着以下某种硬件问题:

1)使用质量差的usb电缆;

2)开发板spi flash 引脚短路等问题;

3)烧录时的电压不稳定等;

解决方案:更换usb电缆;更换模组或开发板尝试;更换稳压电源供电

5.错误五:拒绝许可 dev/ttyUSB0

Permission denied: '/dev/ttyUSB0'

此错误说明串口被其它工具占用。

解决方案:检查串口调试助手工具关闭串口。

6.错误六:将压缩数据写入flash失败

A fatal error occurred: Failed to write compressed data to flash after seq 32 (result was C100)

本人没有实际遇见过此问题,也许与flah参数有关,解决方法可以参考论坛。

解决方案:参考《压缩数据写入flash失败》

7.错误七:MD5文件与flash中的数据不匹配!

A fatal error occurred: MD5 of file does not match data in flash!

这意味着 esptool.py 将新的二进制文件写入闪存后,它会读回内容,并且不匹配。本人没有实际遇见过这个错误,但看论坛里的讨论似乎与flah有关,也许是flash损坏或引脚焊接问题,解决方法可以尝试参考论坛的方法。

解决方案:参考《MD5文件与flash中的数据不匹配》


二、ESP32串口烧录方法

ESP系列芯片从ESP8266到现在的ESP32S3都支持通过固定串口烧录(烧录时的串口io固定),串口烧录也是最常用的烧录方式。下面将介绍如何让ESP系列芯片进入下载模式。

1.strapping管脚

ESP系列芯片上电时会检测strapping管脚的电平状态来决定芯片的工作模式,并通过串口将log打印出来。因此,通过检测strapping管脚的电平状态可以有效帮助我们确认芯片是否处于固件下载模式。不同系列的ESP芯片可以通过芯片规格书获取其对应的strapping管脚。

以ESP32为例,芯片规格书的strapping管脚描述如下:

 与下载启动模式相关的strapping管脚有GPIO0和GPIO2,当这两个IO在上电时都处于低电平时ESP32芯片将进入下载模式,但由于GPIO2默认处于下拉模式,即低电平状态,所以我们一般只需要关注GPIO0的状态即可。GPIO0默认处于上拉模式,因此在烧录固件时我们需要将GPIO0外部下拉,使其处于低电平状态,从而让芯片进入下载模式。其它ESP系列芯片与此类似。

 2.log打印

1.固件下载模式:

rst:0x1(POWERON_RESET),boot:0x3(DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2)) 

2.芯片启动模式: 

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

三、方法总结

ESP32芯片固件下载时可能遇到的错误多种多样,既可能是软件原因,也可能是硬件原因,但无论是什么错误都可以通过以下一些方法来进行初步排查:

1)通过串口调试助手查看log以确定芯片是否处于固件下载模式。

2)没有log时可通过电压表检测芯片strapping引脚电平来确定芯片状态。

3)尽量使用稳压电源为芯片或模组供电。

4)检查串口是否有足够的权限及是否被被占用。

5)尝试更换usb电缆或usb转串口工具(CH340等)。

6)尝试更换模组或芯片。

7)尝试降低波特率。

8)尝试使用官方下载工具先进行flash擦除后再进行烧录。


参考资料 

1、《ESP32启动信息参考》0

2、《故障排除》

3、《官方下载工具》

  • 20
    点赞
  • 157
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用\[1\]和引用\[2\]的内容,ESP8266烧录固件的步骤如下: 1. 打开烧录工具,选择正确的串口和波特率。 2. 依次选择固件文件,并点击“START”开始烧录。 3. 如果烧录过程中卡在等待上电同步,可以按一下复位键。 4. 烧录完成后,断电并重启ESP8266。 根据引用\[3\]的内容,烧录固件的文件目录结构如下: - 工具文件夹:包含烧录工具和串口调试助手等工具。 - 文档文件夹:包含开发参考文档。 - 烧录固件文件夹:根据不同开发板的类型,包含相应的固件文件。 请根据自己的设备和固件选择正确的文件,并按照上述步骤进行烧录。 #### 引用[.reference_title] - *1* *3* [【esp8266】①烧录指南](https://blog.csdn.net/u010177891/article/details/90348729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【ESP8266 快速入门】应用举例:烧录无线中继固件详细教学](https://blog.csdn.net/qq_44078824/article/details/127823075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值