硬件Bug

  • 起因
  • 第一个bug
  • 第一个bug总结
  • 第二个bug


起因

今天刚拿到的PCB就马上焊好了,接电源发现能亮就很nice,但是把主控esp-12F焊上去就发现事情没这么简单,我是打算要用arduino IDE开发,但是凭之前的经验,新的芯片要用arduinoIDE开发就要进行BootLoader烧写,但是我不会啊😂,于是就想到了之前的esp32-cam可以直接用串口下载arduino程序,一试,故事就开始了😒

第一个bug

ets Jan  8 2013,rst cause:1, boot mode:(2,0)
Fatal exception (28): 
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x0289cbcc, depc=0x00000000

如上,串口调试上位机疯狂打印,尴尬😅,吓得我赶紧去看原理图

ESP32的nvs_open的内容如何删除_正常运行


有趣,原本要接EN的S8050基极接成了复位,枯了,话不多说,飞线安排!

ESP32的nvs_open的内容如何删除_单片机_02


ESP32的nvs_open的内容如何删除_重启_03


问题还没解决!,再看看手册

rst cause num:

rst cause :

1

电源重启

2

外部复位

3

硬件看门狗复位

电源重启???
检查一番又没有发现问题

ets Jan  8 2013,rst cause:1, boot mode:(2,2)
Fatal exception (0): 
epc1=0x400fffbf, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000

好像有点不一样,还是电源问题,,,,先睡了,明天见【2020/9/20/1:00】

我又来了,无意间看到手册说模块只能3.3V供电,又想起来直接用笔记本USB的5V是虚拟电压,于是采用充电宝供电,电脑接串口,测试了一下,,凉凉,还是没用,继续看手册
boot mode:括号内第二位无实际意义,第一位按表中数据分析启动信息

boot mode num:

mode

GPIO0

GPIO2

GPIO15

0

-

0

0

0

1

下载模式

0

1

0

2

-

1

0

0

3

运行模式

1

1

0

4

-

0

0

1

5

-

0

1

1

6

-

1

0

1

7

-

1

1

1

分析表中数据发现我上电没在运行模式,看看电路

ESP32的nvs_open的内容如何删除_正常运行_04


完了,GPIO2没接3V3,还好可以一坨锡把LED堵上

ESP32的nvs_open的内容如何删除_单片机_05


堵完上电!!!

波特率76800,按下复位后

ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 2408, room 16 
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0 
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0 
tail 8
chksum 0xd8
csum 0xd8

2nd boot version : 1.6
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000

rf cal sector: 1017
rf[112] : 00
rf[113] : 00
rf[114] : 01

SDK ver: 2.0.0(5a875ba) compiled @ Aug  9 2016 15:12:27
phy ver: 1055, pp ver: 10.2

正常运行了,测试AT指令,返回OK。

第一个bug总结

到这里第一个Bug算是解决了,总结一下就是模块正常运行就是要GPIO0、GPIO2接3V3,GPIO15接地,下载时GPIO0、GPIO15接地,GPIO2接3V3,不管什么模式GPIO2一定要接3V3!

第二个bug

接下来就是去下载了,先试试直接用arduino IDE下载一个空程序,配置如下

ESP32的nvs_open的内容如何删除_重启_06

报错如下😂

esptool.py v2.8
Serial port COM6
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
    raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

于是百度找到一种方法,编译完出现以下情况,按下boot烧录(GPIO0接地),直到出现加载烧录时松开

Serial port COM6
Connecting........__

尝试了一下

esptool.FatalError: Timed out waiting for packet header
esptool.FatalError: Timed out waiting for packet header

没用啊😅,然后我就试着出现connecting…就一直按着直到烧录完在松开

configuring flash size...
Auto-detectedFlash size:4MB
compressed 260848 bytes to 192747...
writing at 0x00010000...(41 %)

成功了!!!

ESP32的nvs_open的内容如何删除_正常运行_07


熟悉的界面又来了😄😄😄

修完之后的板子留个纪念

ESP32的nvs_open的内容如何删除_正常运行_08