Solution: ESP32
Pin GPIO0
Problem:
ESP32 does not
start in the program after installing download of a program
Solution:
The PIN GPIO0 G0
should not be used as it is used for booting and installing software, firmware,
sketch programs for the BOOT signal.
Extract from the
esp32 Wroom 32 data sheet for the solution of the pins GPIO 0 G0 and EN (Module
Enable)
ESP32-WROOM-32
Datasheet
Using GPIO0 on
ESP32 WROOM 32 node MCU
https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf
Pin Default
SPI Boot Download Boot
GPIO0
Pull-up 1 0
GPIO2
Pull-down Don’t-care 0
The pins such as
Power-on-reset, GPIO0 GPIO2, EN are used during the download of a program
The ESP32 is
called download when installing a program. Software on the Internet uses the
term upload.
During
the chip’s system reset release (power-on-reset, RTC watchdog reset and
brownout reset), the latches of the strapping pins sample the voltage level
as strapping bits of ”0” or ”1”, and hold these bits until the chip is
powered down or shut down. The strapping bits configure the device’s boot
mode, the operating voltage of VDD_SDIO and other initial system settings.
Each strapping pin is connected to its internal pull-up/pull-down during the
chip reset. Consequently, if a strapping pin is unconnected or the connected
external circuit is high-impedance, the internal weak pull-up/pull-down will
determine the default input level of the strapping pins. To change the
strapping bit values, users can apply the external pull-down/pull-up
resistances, or use the host MCU’s GPIOs to control the voltage level of
these pins when powering on ESP32.
|
EN PIN
In addition, the
PIN EN must be set to High after the software has been uploaded.
Solution
Therefore, it is
better to use the PIN G2 GPIO2 right next to it as the output PIN and leave the
GPIO0 G0 for the boot function
Small test
program to see if ESP32 is running. Output on the Serial Monitor
void
setup() {
Serial.begin(115200);
}
void
loop() {
Serial.println("TEST ESP-WROOM-32 if
it works");
delay(500);
}
|