Zum Inhalt springen

„ESP32“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Halbgeviertstrich, Links optimiert
Packaging generifiziert, bessere Einleitung zur einfachen Software und Hobbyelektronik
Zeile 2: Zeile 2:
[[Datei:ESP32-Dieshot.jpg|mini|Bild des ESP32-[[Die (Halbleitertechnik)|Die]]]]
[[Datei:ESP32-Dieshot.jpg|mini|Bild des ESP32-[[Die (Halbleitertechnik)|Die]]]]


Der '''ESP32''' ist eine kostengünstige und mit geringem Leistungsbedarf ausgeführte [[32-Bit-Architektur|32-Bit]]-[[Mikrocontroller]]familie der [[Volksrepublik China|chinesischen]] Firma [[Espressif]], die im Jahr 2016 vorgestellt wurde. Die Mikrocontroller ermöglichen durch die einfach zugänglichen freie Softwareumgebungen den Aufbau und die Vernetzung von netzwerkbasierten [[Aktuator]]en und [[Sensor]]en.<ref name="ref1" /> Die Bezeichnung ''ESP32'' alleine bezieht sich entweder auf die gesamte Produktfamilie, oder ausschließlich auf den ESP32 genannten Mikrocontroller erster Generation.
Der '''ESP32''' ist eine kostengünstige und mit geringem Leistungsbedarf ausgeführte [[32-Bit-Architektur|32-Bit]]-[[Mikrocontroller]]familie der [[Volksrepublik China|chinesischen]] Firma [[Espressif]], die im Jahr 2016 vorgestellt wurde.<ref name="ref1" /> Die Mikrocontroller sind mit einfach zugänglichen freien Softwareumgebungen wie [[Arduino (Plattform)|Arduino]] programmierbar, oder sogar vollständig ohne Programmierkenntnisse mit [[ESPHome]]. Dies ermöglicht den einfachen Aufbau und die Vernetzung von netzwerkbasierten [[Aktuator]]en und [[Sensor]]en, und hat zu einer weiten Verbreitung der ESP32-Mikrocontroller in der [[Hobbyelektronik]] geführt.<!-- Ein guter Indikator dafür ist beispielsweise die große Menge an Artikeln auf heise.de, die den ESP32 erwähnen: https://www.heise.de/suche?q=esp32&sort_by=date&rm=search --> Die Bezeichnung ''ESP32'' alleine bezieht sich entweder auf die gesamte Produktfamilie, oder ausschließlich auf den ESP32 genannten Mikrocontroller erster Generation.


Je nach Modell gibt es wesentliche Unterschiede in der Leistungsfähigkeit und Funktionalität der Mikrocontroller. Sie bestehen intern entweder aus einem oder zwei [[Prozessorkern]]en der [[Xtensa]]-Architektur von [[Cadence Design Systems|Cadence]] (ehemals [[Tensilica]]), oder seit 2021 auch mit [[RISC-V]]-Kernen<ref name="heise2" /> (C-Serie und P4) und arbeiten mit einem anpassbaren [[Taktsignal|Systemtakt]] von maximal 160 bis 360&nbsp;MHz. Der interne [[Random-Access Memory|RAM]] weist eine Größe von 272 bis 768&nbsp;KiB RAM auf, kombiniert mit einem internen [[Festwertspeicher]] (ROM), der einen unveränderlichen [[Bootloader]] enthält.<ref>{{cite web | title=Heap Memory Allocation | url=https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/mem_alloc.html | accessdate=2019-09-03 | language=englisch | publisher=Espressif Systems | archiveurl=https://web.archive.org/web/20190714111553/https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/mem_alloc.html | archivedate=2019-07-14}}</ref> Wie der Vorgänger [[ESP8266]] besitzen die meisten Modelle aus der Familie ESP32 keinen internen [[Flash-Speicher]] für die anwendungsspezifische [[Firmware]]. Diese wird in einem externen, seriellen Flash-Speicher abgelegt, der über dezidierte Pins an den Prozessor angeschlossen wird und durch [[Cache]] beschleunigt wird.<ref name="data1" /> Die meisten Modelle unterstützen Flash-Größen von 1–16&nbsp;MiB und [[Serial Peripheral Interface|SPI]]-Geschwindigkeiten bis 80&nbsp;MHz.
Je nach Modell gibt es wesentliche Unterschiede in der Leistungsfähigkeit und Funktionalität der Mikrocontroller. Sie bestehen intern entweder aus einem oder zwei [[Prozessorkern]]en der [[Xtensa]]-Architektur von [[Cadence Design Systems|Cadence]] (ehemals [[Tensilica]]), oder seit 2021 auch mit [[RISC-V]]-Kernen<ref name="heise2" /> (C-Serie und P4) und arbeiten mit einem anpassbaren [[Taktsignal|Systemtakt]] von maximal 160 bis 360&nbsp;MHz. Der interne [[Random-Access Memory|RAM]] weist eine Größe von 272 bis 768&nbsp;KiB RAM auf, kombiniert mit einem internen [[Festwertspeicher]] (ROM), der einen unveränderlichen [[Bootloader]] enthält.<ref>{{cite web | title=Heap Memory Allocation | url=https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/mem_alloc.html | accessdate=2019-09-03 | language=englisch | publisher=Espressif Systems | archiveurl=https://web.archive.org/web/20190714111553/https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/mem_alloc.html | archivedate=2019-07-14}}</ref> Wie der Vorgänger [[ESP8266]] besitzen die meisten Modelle aus der Familie ESP32 keinen internen [[Flash-Speicher]] für die anwendungsspezifische [[Firmware]]. Diese wird in einem externen, seriellen Flash-Speicher abgelegt, der über dezidierte Pins an den Prozessor angeschlossen wird und durch [[Cache]] beschleunigt wird.<ref name="data1" /> Die meisten Modelle unterstützen Flash-Größen von 1–16&nbsp;MiB und [[Serial Peripheral Interface|SPI]]-Geschwindigkeiten bis 80&nbsp;MHz.
Zeile 8: Zeile 8:
Die ESP32-Familie weist diverse [[Peripheriegerät|Peripherie]][[schnittstelle]]n auf, unter anderem stehen mehrere [[UART]]s, SPI-, [[Controller Area Network|CAN-]], [[Pulsweitenmodulation|PWM-]] und [[I²C]]-Schnittstellen, ein ''RMT'' genanntes [[Frequenzumtastung|FSK]]-Modul für [[Infrarotschnittstelle]]n, ein integriertes [[Wireless Local Area Network]] (WLAN nach [[IEEE 802.11]] b/g/n), das auch [[Bluetooth]] und je nach Modell [[IEEE 802.15.4|802.15.4]] ([[Zigarette|Zigbee]], [[Thread (Netzwerkprotokoll)|Thread]] und [[Matter (Standard)|Matter]]) unterstützt, und eine [[Ethernet]]-Schnittstelle über das [[Media Independent Interface]] (MII) zur Verfügung. Als analoge Schnittstellen sind diverse Möglichkeiten vorgesehen, wie [[Analog-Digital-Umsetzer]] und [[Digital-Analog-Umsetzer]] für die Verarbeitung analoger Signale und eingebaute Sensoren, oder ein integrierter [[Hall-Sensor]] zur Messung der [[magnetische Flussdichte|magnetischen Flussdichte]] sowie Kapazitätsmesser für Berührungssensoren. Intern besitzen die Mikrocontroller eine [[Kryptographie|kryptografische]] Einheit zur Hardwareunterstützung von Verschlüsselungsverfahren, beispielsweise dem [[Advanced Encryption Standard]] (AES), deren Einsatz aber in bestimmten Fällen wie dem [[RSA-Kryptosystem]] und damit dem wichtigen [[HTTPS]]-Protokoll eine Verlangsamung statt einer Beschleunigung bewirkt.<ref name="crypto" /> Weiterhin enthalten manche Modelle einen mit ca. 16–40&nbsp;MHz langsamer getakteten [[Koprozessor]] mit niedrigem Stromverbrauch, der neben einer [[Echtzeituhr]] auch die Abfrage von Sensordaten im [[Bereitschaftsbetrieb]] erlaubt.
Die ESP32-Familie weist diverse [[Peripheriegerät|Peripherie]][[schnittstelle]]n auf, unter anderem stehen mehrere [[UART]]s, SPI-, [[Controller Area Network|CAN-]], [[Pulsweitenmodulation|PWM-]] und [[I²C]]-Schnittstellen, ein ''RMT'' genanntes [[Frequenzumtastung|FSK]]-Modul für [[Infrarotschnittstelle]]n, ein integriertes [[Wireless Local Area Network]] (WLAN nach [[IEEE 802.11]] b/g/n), das auch [[Bluetooth]] und je nach Modell [[IEEE 802.15.4|802.15.4]] ([[Zigarette|Zigbee]], [[Thread (Netzwerkprotokoll)|Thread]] und [[Matter (Standard)|Matter]]) unterstützt, und eine [[Ethernet]]-Schnittstelle über das [[Media Independent Interface]] (MII) zur Verfügung. Als analoge Schnittstellen sind diverse Möglichkeiten vorgesehen, wie [[Analog-Digital-Umsetzer]] und [[Digital-Analog-Umsetzer]] für die Verarbeitung analoger Signale und eingebaute Sensoren, oder ein integrierter [[Hall-Sensor]] zur Messung der [[magnetische Flussdichte|magnetischen Flussdichte]] sowie Kapazitätsmesser für Berührungssensoren. Intern besitzen die Mikrocontroller eine [[Kryptographie|kryptografische]] Einheit zur Hardwareunterstützung von Verschlüsselungsverfahren, beispielsweise dem [[Advanced Encryption Standard]] (AES), deren Einsatz aber in bestimmten Fällen wie dem [[RSA-Kryptosystem]] und damit dem wichtigen [[HTTPS]]-Protokoll eine Verlangsamung statt einer Beschleunigung bewirkt.<ref name="crypto" /> Weiterhin enthalten manche Modelle einen mit ca. 16–40&nbsp;MHz langsamer getakteten [[Koprozessor]] mit niedrigem Stromverbrauch, der neben einer [[Echtzeituhr]] auch die Abfrage von Sensordaten im [[Bereitschaftsbetrieb]] erlaubt.


Der ESP32 erster Generation ist in dem Chipgehäuse [[Quad Flat No Leads Package]] (QFN) mit 48 Pins untergebracht (Größe: 6 × 6&nbsp;mm) und wird im Handel meistens auf kleinen Modulen unter Bezeichnungen wie ''ESP-WROOM'' vertrieben. Diese halbfertigen [[Leiterplatte]]nmodule umfassen neben dem Prozessor und einem seriellen Flash-Speicher für die Firmware auch die WLAN-Antenne sowie eine Stromversorgung und erlauben so einfache Anwendungen, beispielsweise im Rahmen der [[Hobbyelektronik]].<ref name="heise1" />
Die ESP32 sind in den Chipgehäusen [[Quad Flat No Leads Package]] (QFN) untergebracht und werden im Handel meistens auf kleinen Modulen unter Bezeichnungen wie ''ESP-WROOM'' vertrieben. Diese halbfertigen [[Leiterplatte]]nmodule umfassen neben dem Prozessor und einem seriellen Flash-Speicher für die Firmware auch die WLAN-Antenne sowie eine Stromversorgung und erlauben so einfache Anwendungen, beispielsweise im Rahmen der Hobbyelektronik.<ref name="heise1" />


Hauptplattform für die Softwareentwicklung ist ein [[Software Development Kit]] (SDK) unter [[MIT-Lizenz]] namens ''ESP-IDF''<ref>{{Internetquelle |url=https://docs.espressif.com/projects/esp-idf/en/stable/esp32/index.html |titel=ESP-IDF Programming Guide - ESP32 - — ESP-IDF Programming Guide v5.5.1 documentation |abruf=2025-09-18}}</ref>, basierend auf [[FreeRTOS]], welches die Programmierung in [[C (Programmiersprache)|C]], [[C++]] und (inoffiziell) [[Rust (Programmiersprache)|Rust]] ermöglicht. Offiziell unterstützt wird weiterhin die Softwarebibliothek esp-rs<ref>{{Internetquelle |url=https://github.com/esp-rs |titel=esp-rs |sprache=en |abruf=2025-09-18}}</ref> für die Entwicklung in [[Rust (Programmiersprache)|Rust]]. Von anderen Entwicklern werden weiterhin verschiedene Entwicklungsplattformen zur Verfügung gestellt, einschließlich [[Arduino (Plattform)|Arduino]] (C++), [[MicroPython]] ([[Python (Programmiersprache)|Python]]), [[NodeMCU]] und [[Lua]] RTOS<ref name="lua1" /> (beide Lua) oder [[ESPHome]]<ref name="esphome" /> (keine Programmierkenntnisse erforderlich).<ref name="sdk1" />
Hauptplattform für die Softwareentwicklung ist ein [[Software Development Kit]] (SDK) unter [[MIT-Lizenz]] namens ''ESP-IDF''<ref>{{Internetquelle |url=https://docs.espressif.com/projects/esp-idf/en/stable/esp32/index.html |titel=ESP-IDF Programming Guide - ESP32 - — ESP-IDF Programming Guide v5.5.1 documentation |abruf=2025-09-18}}</ref>, basierend auf [[FreeRTOS]], welches die Programmierung in [[C (Programmiersprache)|C]], [[C++]] und (inoffiziell) [[Rust (Programmiersprache)|Rust]] ermöglicht. Offiziell unterstützt wird weiterhin die Softwarebibliothek esp-rs<ref>{{Internetquelle |url=https://github.com/esp-rs |titel=esp-rs |sprache=en |abruf=2025-09-18}}</ref> für die Entwicklung in Rust. Von anderen Entwicklern werden weiterhin verschiedene Entwicklungsplattformen zur Verfügung gestellt, einschließlich Arduino (C++), [[MicroPython]] ([[Python (Programmiersprache)|Python]]), [[NodeMCU]] und [[Lua]] RTOS<ref name="lua1" /> (beide Lua) oder ESPHome<ref name="esphome" />.


== Modellvergleich ==
== Modellvergleich ==

Version vom 19. September 2025, 11:22 Uhr

ESP32-Prozessor (Bildmitte) auf einer Leiterplatte bestückt. Links die gedruckte WLAN-Antenne
Bild des ESP32-Die

Der ESP32 ist eine kostengünstige und mit geringem Leistungsbedarf ausgeführte 32-Bit-Mikrocontrollerfamilie der chinesischen Firma Espressif, die im Jahr 2016 vorgestellt wurde.[1] Die Mikrocontroller sind mit einfach zugänglichen freien Softwareumgebungen wie Arduino programmierbar, oder sogar vollständig ohne Programmierkenntnisse mit ESPHome. Dies ermöglicht den einfachen Aufbau und die Vernetzung von netzwerkbasierten Aktuatoren und Sensoren, und hat zu einer weiten Verbreitung der ESP32-Mikrocontroller in der Hobbyelektronik geführt. Die Bezeichnung ESP32 alleine bezieht sich entweder auf die gesamte Produktfamilie, oder ausschließlich auf den ESP32 genannten Mikrocontroller erster Generation.

Je nach Modell gibt es wesentliche Unterschiede in der Leistungsfähigkeit und Funktionalität der Mikrocontroller. Sie bestehen intern entweder aus einem oder zwei Prozessorkernen der Xtensa-Architektur von Cadence (ehemals Tensilica), oder seit 2021 auch mit RISC-V-Kernen[2] (C-Serie und P4) und arbeiten mit einem anpassbaren Systemtakt von maximal 160 bis 360 MHz. Der interne RAM weist eine Größe von 272 bis 768 KiB RAM auf, kombiniert mit einem internen Festwertspeicher (ROM), der einen unveränderlichen Bootloader enthält.[3] Wie der Vorgänger ESP8266 besitzen die meisten Modelle aus der Familie ESP32 keinen internen Flash-Speicher für die anwendungsspezifische Firmware. Diese wird in einem externen, seriellen Flash-Speicher abgelegt, der über dezidierte Pins an den Prozessor angeschlossen wird und durch Cache beschleunigt wird.[4] Die meisten Modelle unterstützen Flash-Größen von 1–16 MiB und SPI-Geschwindigkeiten bis 80 MHz.

Die ESP32-Familie weist diverse Peripherieschnittstellen auf, unter anderem stehen mehrere UARTs, SPI-, CAN-, PWM- und I²C-Schnittstellen, ein RMT genanntes FSK-Modul für Infrarotschnittstellen, ein integriertes Wireless Local Area Network (WLAN nach IEEE 802.11 b/g/n), das auch Bluetooth und je nach Modell 802.15.4 (Zigbee, Thread und Matter) unterstützt, und eine Ethernet-Schnittstelle über das Media Independent Interface (MII) zur Verfügung. Als analoge Schnittstellen sind diverse Möglichkeiten vorgesehen, wie Analog-Digital-Umsetzer und Digital-Analog-Umsetzer für die Verarbeitung analoger Signale und eingebaute Sensoren, oder ein integrierter Hall-Sensor zur Messung der magnetischen Flussdichte sowie Kapazitätsmesser für Berührungssensoren. Intern besitzen die Mikrocontroller eine kryptografische Einheit zur Hardwareunterstützung von Verschlüsselungsverfahren, beispielsweise dem Advanced Encryption Standard (AES), deren Einsatz aber in bestimmten Fällen wie dem RSA-Kryptosystem und damit dem wichtigen HTTPS-Protokoll eine Verlangsamung statt einer Beschleunigung bewirkt.[5] Weiterhin enthalten manche Modelle einen mit ca. 16–40 MHz langsamer getakteten Koprozessor mit niedrigem Stromverbrauch, der neben einer Echtzeituhr auch die Abfrage von Sensordaten im Bereitschaftsbetrieb erlaubt.

Die ESP32 sind in den Chipgehäusen Quad Flat No Leads Package (QFN) untergebracht und werden im Handel meistens auf kleinen Modulen unter Bezeichnungen wie ESP-WROOM vertrieben. Diese halbfertigen Leiterplattenmodule umfassen neben dem Prozessor und einem seriellen Flash-Speicher für die Firmware auch die WLAN-Antenne sowie eine Stromversorgung und erlauben so einfache Anwendungen, beispielsweise im Rahmen der Hobbyelektronik.[6]

Hauptplattform für die Softwareentwicklung ist ein Software Development Kit (SDK) unter MIT-Lizenz namens ESP-IDF[7], basierend auf FreeRTOS, welches die Programmierung in C, C++ und (inoffiziell) Rust ermöglicht. Offiziell unterstützt wird weiterhin die Softwarebibliothek esp-rs[8] für die Entwicklung in Rust. Von anderen Entwicklern werden weiterhin verschiedene Entwicklungsplattformen zur Verfügung gestellt, einschließlich Arduino (C++), MicroPython (Python), NodeMCU und Lua RTOS[9] (beide Lua) oder ESPHome[10].

Modellvergleich

Modell Prozessortyp max. Takt RAM ROM Cache max. Flash-Größe Koprozessor GPIOs Besonderheiten
ESP32 (Original) 1–2x Xtensa LX6 240 MHz 520 KiB 448 KiB 64 KiB (2x32) 8 MiB ja 34 I2S-Schnittstelle
ESP32-H2 1x RISC-V 96 MHz 320 KiB 128 KiB 16 KiB 4 MiB nein 19 802.15.4
ESP32-C3 1x RISC-V 160 MHz 400 KiB 384 KiB 16 KiB 16 MiB nein 22
ESP32-C5 1x RISC-V 240 MHz 384 KiB 320 KiB 32 KiB 32 MiB ja 29 802.15.4
ESP32-C6 1x RISC-V 160 MHz 512 KiB 320 KiB 32 KiB 16 MiB ja 31 802.15.4
ESP32-S2 1x Xtensa LX7 240 MHz 240 KiB 128 KiB 16 KiB 1 GiB (10,5 MiB gleichzeitig) ja 43 USB, Kamera- und LCD-Schnittstellen
ESP32-S3 2x Xtensa LX7 240 MHz 512 KiB 384 KiB 32 KiB I, 64 KiB D 1 GiB (32 MiB gleichzeitig) ja 45 USB, Kamera- und LCD-Schnittstellen
ESP32-P4 2x RISC-V 360 MHz 768 KiB 128 KiB 16 KiB L1I, 64 KiB L1D, max. 512 KiB L2 64 MiB ja 55 JPEG und H.264-Hardwarecodecs, MIPI- und LCD-Schnittstellen

Galerie

Literatur

Commons: ESP32 – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. Espressif Announces the Launch of ESP32 Cloud on Chip and Funding by Fosun Group. 7. September 2016, abgerufen am 8. Dezember 2023.
  2. Enter at Your Own RISC! – Intermezzo mit RISC-V und dem ESP32-C3. heise online, abgerufen am 29. November 2022.
  3. Heap Memory Allocation. Espressif Systems, archiviert vom Original am 14. Juli 2019; abgerufen am 3. September 2019 (englisch).
  4. ESP32 Datasheet Version 2.3. Abgerufen am 22. Juni 2018.
  5. Performance Evaluation of Cryptographic Algorithms on ESP32 with Cryptographic Hardware Acceleration Feature. 22. Februar 2022, abgerufen am 28. Dezember 2024.
  6. Großer Bruder: Espressif ESP32. heise online, abgerufen am 22. Juni 2018.
  7. ESP-IDF Programming Guide - ESP32 - — ESP-IDF Programming Guide v5.5.1 documentation. Abgerufen am 18. September 2025.
  8. esp-rs. Abgerufen am 18. September 2025 (englisch).
  9. Lua RTOS for ESP32. Abgerufen am 22. Juni 2018.
  10. ESPHome – Github. Abgerufen am 22. Dezember 2024.

Referenzfehler: Das in <references> definierte <ref>-Tag mit dem Namen „sdk1“ wird im vorausgehenden Text nicht verwendet.