Why does my ESP32 keep on reseting after startup?

时间:2018-02-03 10:06:44

标签: c arduino-ide esp32

I have wired up my ESP32 and after I power it, it keeps on restarting with the message:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:812
load:0xffffffff,len:-1
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:812
load:0xffffffff,len:-1
ets Jun  8 2016 00:22:57

I have connected a number of devices with a keypad connected on GPIOs [6, 7, 8, 15, 4, 16, 17, 15] and both RTC and LCD Serial Adapter connected on pins [21, 22]. All devices are powered by the ESP32's 5V pin.

Now, strangely, when resetting, if I press number 1 on the keypad (4x4) or disconnect it, the resetting stops and everything works as expected even after reconnecting it. The same happens with the LCD serial adapter. All other devices do not affect the ESP32.

Any insight as to what may be causing this peculiar behavior will be greatly appreciated.

3 个答案:

答案 0 :(得分:1)

您的日志似乎与我一个月以来得到的日志非常相似。可以刷新未启用安全启动的项目。但是在启用安全启动的情况下(在menuconfig下)构建并刷新完全相同的项目,这给了我“ bootloop” “ load:0xffffffff,len:-1”

可能是您的bootloader.bin大小超出了默认限制(0x7000)。这会导致分区表的默认偏移量(0x8000)重叠。

对于我来说,我的bootloader.bin大小约为0x9000(没有进行十六进制转储)。

为了克服这个问题,我在menuconfig下将分区表的偏移量从0x8000更改为0x10000。 (这导致应用程序图像的偏移量从0x10000变为0x20000),然后使用'esptool.py write_flash ...'进行相应的闪烁,或使用'idf.py flash'。

另一种方法是减小bootloader.bin的大小,也许是通过将详细输出减小为“警告”或“错误”

答案 1 :(得分:0)

从ESP32你可以安全地拉出大约12mA的电流量。你可能有太多的设备由它的5V引脚供电。 考虑使用额外的电源。如果这样做,请不要忘记将GND互连。

答案 2 :(得分:0)

总是尝试的第一件事是消除过程。一次删除一个设备,看看哪个附件导致问题。

但是看看我的数据是闪存使用GPIO 6-11。可能会仔细检查我。我有一个来自Andreas Spiess的文档,其中有几个电路板的引脚排列,并且这些GPIO被阻止,因为它们被闪存使用时无法使用。