ESP32: Interne Details und Pinbelegung
In diesem Artikel werden wir über die internen Details und das Fixieren von ESP32 sprechen. Ich werde Ihnen zeigen, wie Sie die Pins korrekt identifizieren, indem Sie sich das Datenblatt ansehen, wie Sie identifizieren, welche der Pins als OUTPUT / INPUT fungieren, wie Sie einen Überblick über die Sensoren und Peripheriegeräte erhalten, die der ESP32 uns zusätzlich zu den Pins bietet Stiefel. Daher glaube ich, dass ich mit dem folgenden Video unter anderem mehrere Fragen beantworten kann, die ich in Nachrichten und Kommentaren zu den ESP32-Referenzen erhalten habe.
Schritt 1: NodeMCU ESP-WROOM-32

Hier haben wir den PINOUT der
WROOM-32, das als gute Referenz für das Programmieren dient. Es ist wichtig, auf GPIOs (General Purpose Input / Output) zu achten, dh auf programmierbare Dateneingabe- und -ausgangsanschlüsse, bei denen es sich weiterhin um einen AD-Wandler oder einen Touch-Pin handeln kann, z. B. GPIO4. Dies tritt auch beim Arduino auf, wo die Eingangs- und Ausgangspins auch PWM sein können.
Schritt 2: ESP-WROOM-32

Im obigen Bild haben wir den ESP32 selbst. Je nach Hersteller gibt es verschiedene Arten von Einsätzen mit unterschiedlichen Eigenschaften.
Schritt 3: Aber was ist die richtige Pinbelegung für mein ESP32?




ESP32 ist nicht schwierig. Es ist so einfach, dass wir sagen können, dass es in Ihrer Umgebung keine didaktischen Bedenken gibt. Wir müssen jedoch didaktisch sein, ja. Wenn Sie in Assembler programmieren möchten, ist das in Ordnung. Entwicklungszeit ist jedoch teuer. Wenn Ihnen also alles, was ein Technologielieferant ist, ein Werkzeug bietet, das Zeit braucht, um seine Funktionsweise zu verstehen, kann dies leicht zu einem Problem für Sie werden, da dies die Entwicklungszeit verlängert, während das Produkt immer teurer wird. Dies erklärt meine Vorliebe für einfache Dinge, die unseren Alltag erleichtern können, weil Zeit wichtig ist, insbesondere in der heutigen geschäftigen Welt.
Zurück zum ESP32, in einem Datenblatt wie oben, haben wir die korrekte Pin-Identifikation in den Markierungen. Oft stimmt das Etikett auf dem Chip nicht mit der tatsächlichen Nummer des Pins überein, da wir drei Situationen haben: den GPIO, die Seriennummer und auch den Code der Karte selbst.
Wie im folgenden Beispiel gezeigt, haben wir eine LED-Verbindung im ESP und den richtigen Konfigurationsmodus:
Beachten Sie, dass das Etikett TX2 ist, wir jedoch die korrekte Identifikation befolgen müssen, wie im vorherigen Bild hervorgehoben. Daher ist die korrekte Identifikation des Pins 17. Das Bild zeigt, wie nah der Code bleiben sollte.
Schritt 4: EINGANG / AUSGANG

Bei der Durchführung von INPUT- und OUTPUT-Tests an den Pins haben wir die folgenden Ergebnisse erhalten:
INPUT funktionierte nicht nur unter GPIO0.
OUTPUT funktionierte nicht nur an den GPIO34- und GPIO35-Pins, die VDET1 bzw. VDET2 sind.
* Die VDET-Pins gehören zur Leistungsdomäne der RTC. Dies bedeutet, dass sie als ADC-Pins verwendet werden können und dass der ULP-Coprozessor sie lesen kann. Sie können nur Einträge sein und werden nie beendet.
Schritt 5: Blockdiagramm

Dieses Diagramm zeigt, dass der ESP32 über einen Dual Core verfügt, einen Chipbereich, der WLAN steuert, und einen weiteren Bereich, der Bluetooth steuert. Es verfügt auch über eine Hardwarebeschleunigung für die Verschlüsselung, die die Verbindung zu LoRa ermöglicht, einem Fernnetz, das eine Verbindung von bis zu 15 km mithilfe einer Antenne ermöglicht. Wir beobachten auch den Taktgenerator, die Echtzeituhr und andere Punkte, an denen unter anderem PWM, ADC, DAC, UART, SDIO, SPI beteiligt sind. Dies alles macht das Gerät ziemlich vollständig und funktionsfähig.
Schritt 6: Peripheriegeräte und Sensoren

Der ESP32 verfügt über 34 GPIOs, die verschiedenen Funktionen zugewiesen werden können, z.
Nur digital;
Analog aktiviert (kann als digital konfiguriert werden);
Capacitive-Touch-fähig (kann als digital konfiguriert werden);
Und andere.
Es ist wichtig zu beachten, dass die meisten digitalen GPIOs als internes Pull-up oder Pulldown oder für hohe Impedanz konfiguriert werden können. Bei Eingabe als Eingang kann der Wert durch das Register gelesen werden.
Schritt 7: GPIO
Analog-Digital-Wandler (ADC)
Der Esp32 integriert 12-Bit-ADCs und unterstützt Messungen auf 18 Kanälen (analog aktivierte Pins). Der ULP-Coprozessor im ESP32 dient auch zur Messung von Spannungen im Ruhemodus, was einen geringen Stromverbrauch ermöglicht. Die CPU kann durch eine Schwellenwerteinstellung und / oder durch andere Trigger geweckt werden.
Digital-Analog-Wandler (DAC)
Zwei 8-Bit-DAC-Kanäle können verwendet werden, um zwei digitale Signale in zwei analoge Spannungsausgänge umzuwandeln. Diese zwei DACs unterstützen die Stromversorgung als Eingangsspannungsreferenz und können andere Schaltkreise ansteuern. Dual-Kanäle unterstützen unabhängige Konvertierungen.
Schritt 8: Sensoren


Berührungssensor
Der ESP32 verfügt über 10 GPIOs mit kapazitiver Erkennung, die induzierte Variationen erkennen, wenn ein GPIO mit einem Finger oder anderen Objekten berührt oder sich diesem nähert.
Der ESP32 verfügt auch über einen Temperatursensor und einen internen Hallsensor. Um jedoch mit ihnen arbeiten zu können, müssen Sie die Einstellungen der Register ändern. Weitere Einzelheiten finden Sie im technischen Handbuch über den Link:
//www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
Schritt 9: Watchdog
Der ESP32 verfügt über drei Überwachungstimer: einen auf jedem der beiden Timermodule (als Primary Watchdog Timer oder MWDT bezeichnet) und einen auf dem RTC-Modul (als RTC Watchdog Timer oder RWDT bezeichnet).
Schritt 10: Bluetooth


Bluetooth-Schnittstelle v4.2 BR / EDR und Bluetooth LE (Low Energy)
Der ESP32 integriert einen Bluetooth-Verbindungscontroller und ein Bluetooth-Basisband, die Basisbandprotokolle und andere Verbindungsroutinen auf niedriger Ebene ausführen, wie z. B. Modulation / Demodulation, Paketverarbeitung, Bitstromverarbeitung, Frequenzsprung usw.
Der Verbindungscontroller arbeitet in drei Hauptzuständen: Standby, Verbindung und Sniff. Es ermöglicht mehrere Verbindungen und andere Vorgänge wie Abfragen, Seiten und sicheres einfaches Pairing und ermöglicht somit Piconet und Scatternet.
Schritt 11: Booten


Auf vielen Entwicklungskarten mit eingebettetem USB / Seriell kann esptool.py die Karte automatisch in den Startmodus zurücksetzen.
ESP32 tritt in den seriellen Bootloader ein, wenn der GPIO0 beim Zurücksetzen niedrig gehalten wird. Andernfalls wird das Programm in Flash ausgeführt.
GPIO0 verfügt über einen internen Pullup-Widerstand. Wenn also keine Verbindung besteht, wird dieser hoch.
Viele Boards verwenden eine Schaltfläche mit der Bezeichnung "Flash" (oder "BOOT" auf einigen Espressif-Entwicklungsboards), die den GPIO0 beim Drücken nach unten führt.
GPIO2 sollte auch nicht verbunden / schwebend bleiben.
Im Bild oben sehen Sie einen Test, den ich durchgeführt habe. Ich habe das Oszilloskop auf alle Stifte des ESP gesetzt, um zu sehen, was passiert ist, als es eingeschaltet wurde. Ich habe festgestellt, dass ein Pin Schwingungen von 750 Mikrosekunden erzeugt, wie im hervorgehobenen Bereich auf der rechten Seite gezeigt. Was können wir dagegen tun? Wir haben verschiedene Möglichkeiten, wie zum Beispiel eine Verzögerung mit einer Schaltung mit einem Transistor, einem Türexpander. Ich weise darauf hin, dass GPIO08 umgekehrt ist. Die Schwingung tritt nach oben und nicht nach unten aus.
Ein weiteres Detail ist, dass wir einige Pins haben, die in Hoch und andere in Niedrig beginnen. Daher bezieht sich dieser PINOUT auf das Einschalten des ESP32, insbesondere wenn Sie mit einer Last arbeiten, um beispielsweise einen Triac, ein Relais, ein Schütz oder eine Stromversorgung auszulösen.