Lösung:
ESP32 Pin GPIO0
Problem:
ESP32 startet nicht in das Programm nach Installieren
Download eines Programms
Lösung:
Das PIN GPIO0 G0 sollte nicht verwendet werden, da es beim
Booten und Installieren von Software, Firmware, Sketch-Programmen für das BOOT
Signal verwendet wird.
Auszug aus dem esp32 Wroom 32 Datenblatt zur Lösung der Pins
GPIO 0 G0 und EN (Module Enable)
ESP32-WROOM-32
Datasheet
Verwendung von GPIO0 unter 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
Die Pins wie Power-on-reset, GPIO0 GPIO2, EN werden während
des Downloads eines Programms
Beim ESP32 spricht man von Download beim Installieren eines
Programms. Bei Software im Internet wird der Begriff Upload verwendet.
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
Zudem muss das PIN EN auf High gesetzt werden, nachdem die
Software hochgeladen wurde.
Lösung
Deshalb ist es besser, man verwendet den PIN G2 GPIO2 gleich
daneben als Ausgabe-PIN und lässt den GPIO0 G0 für die Boot-Funktion
Kleines Testprogramm, ob ESP32 läuft. Ausgabe auf dem Seriellen
Monitor
void
setup() {
Serial.begin(115200);
}
void
loop() {
Serial.println("TEST ESP-WROOM-32 if
it works");
delay(500);
}
|