GPIO14 prevents ESP32-WROOM to boot
Posted: Sun Feb 11, 2024 9:48 pm
Hi,
I have a weird behaviour on my custom PCB, which I do not understand.
GPIO14 is connected directly to the input of a darlington transistor.
When you check the schematic of the darlington (attachment), then you will see, that there are some pulldowns (total 13K).
General:
Putting ESP to download mode via GPIO0 and flashing the app is always possible.
What I cannot understand:
For some reason I do measure 880mV at GPIO14 directly after reset/EN=high - despite the darlington-internal pulldown.
How is this possible?
I checked it also on another board - I can not imagine a PCB/design issue.
The weird part:
GPIO14 is no strapping pin or has other special features as far as I know...
After EN=high - as long as GPIO14 has 880mV - the ESP simply does absolutely nothing.
Most of the time I get zero output to UART.
In very very rare cases :
When I connect GPIO14 to GND manually with a cable (no resister), then the ESP boots and executes the app without issues.
When the app is running once, then GPIO14 is high
But again something weird:
When I remove the GPIO14 from GND, before bootloader output has finished and the app has started,
then the ESP again stops and does nothing, until I reconnect GPIO14 to GND.
After reconnecting, ESP again gets alive, WDT does some resets, everything boots again and jumps into the app.
Can someone please help me understanding, what is going on here what eventually could cause this behaviour.
What I already tried:
Burning these efuse changes absolutely nothing.
2x espefuse summary is also attached (with and without the efuses above).
Thank you very much in advance.
I have a weird behaviour on my custom PCB, which I do not understand.
GPIO14 is connected directly to the input of a darlington transistor.
When you check the schematic of the darlington (attachment), then you will see, that there are some pulldowns (total 13K).
General:
Putting ESP to download mode via GPIO0 and flashing the app is always possible.
What I cannot understand:
For some reason I do measure 880mV at GPIO14 directly after reset/EN=high - despite the darlington-internal pulldown.
How is this possible?
I checked it also on another board - I can not imagine a PCB/design issue.
The weird part:
GPIO14 is no strapping pin or has other special features as far as I know...
After EN=high - as long as GPIO14 has 880mV - the ESP simply does absolutely nothing.
Most of the time I get zero output to UART.
In very very rare cases :
Code: Select all
rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57
When the app is running once, then GPIO14 is high
Code: Select all
I (11) boot: ESP-IDF v3.3-dirty 2nd stage bootloader
I (11) boot: compile time 22:59:02
I (11) boot: Enabling RNG early entropy source...
I (15) boot: SPI Speed : 40MHz
I (19) boot: SPI Mode : DIO
I (23) boot: SPI Flash Size : 4MB
I (27) boot: Partition Table:
I (31) boot: ## Label Usage Type ST Offset Length
I (38) boot: 0 nvs WiFi data 01 02 0000f000 00005000
I (45) boot: 1 otadata OTA data 01 00 00014000 00002000
I (53) boot: 2 app0 OTA app 00 10 00020000 00120000
I (60) boot: 3 app1 OTA app 00 11 00140000 00120000
I (68) boot: 4 eeprom Unknown data 01 99 00260000 00005000
I (75) boot: 5 lfs Unknown data 01 99 00265000 0019b000
I (83) boot: End of partition table
I (87) esp_image: segment 0: paddr=0x00020020 vaddr=0x3f400020 size=0x18344 ( 99140) map
I (129) esp_image: segment 1: paddr=0x0003836c vaddr=0x3ffb0000 size=0x0315c ( 12636) load
I (134) esp_image: segment 2: paddr=0x0003b4d0 vaddr=0x40080000 size=0x00400 ( 1024) load
0x40080000: _WindowOverflow4 at /home/user/esp/esp-idf/components/freertos/xtensa_vectors.S:1779
I (136) esp_image: segment 3: paddr=0x0003b8d8 vaddr=0x40080400 size=0x04738 ( 18232) load
I (152) esp_image: segment 4: paddr=0x00040018 vaddr=0x400d0018 size=0x8b2b4 (570036) map
0x400d0018: _flash_cache_start at ??:?
I (346) esp_image: segment 5: paddr=0x000cb2d4 vaddr=0x40084b38 size=0x07a0c ( 31244) load
0x40084b38: spi_flash_mmap_pages at /home/user/esp/esp-idf/components/spi_flash/flash_mmap.c:382
I (366) boot: Loaded app from partition at offset 0x20000
I (366) boot: Disabling RNG early entropy source...
When I remove the GPIO14 from GND, before bootloader output has finished and the app has started,
then the ESP again stops and does nothing, until I reconnect GPIO14 to GND.
After reconnecting, ESP again gets alive, WDT does some resets, everything boots again and jumps into the app.
Can someone please help me understanding, what is going on here what eventually could cause this behaviour.
What I already tried:
Burning these efuse changes absolutely nothing.
Code: Select all
XPD_SDIO_FORCE
XPD_SDIO_REG
XPD_SDIO_TIEH
2x espefuse summary is also attached (with and without the efuses above).
Thank you very much in advance.