Großer Bruder: Espressif ESP32

Schnelleres WLAN (bis 150 Mbit/s), zwei Prozessoren (160 MHz), Bluetooth (Low Energy), noch mehr Speicher und viel Peripherie soll der neue Chip bringen.

In Pocket speichern vorlesen Druckansicht 14 Kommentare lesen
Ein ESP32 auf einem weißem Breadboard

(Bild: Markus Ulsaß)

Lesezeit: 19 Min.
Von
  • Markus Ulsaß
Inhaltsverzeichnis

Der neue Mikrocontroller des chinesischen Herstellers Espressif mit dem Namen ESP32, der im Frühherbst erscheinen soll, verspricht noch mehr Möglichkeiten zu bieten als der bei Hardware-Bastlern für seinen geringen Preis und gute Verfügbarkeit beliebte ESP8266 (siehe auch Make 6/15). Der ESP32 soll zwar kein direkter Nachfolger sein und wird etwas teurer werden, dafür bietet er eine Menge an zusätzlichen Optionen.

Wir haben uns das Developer Board des ESP32 angeschaut. Bisher haben erst 200 Beta-Tester weltweit ein ESP32-Entwicklerboard bekommen. Auf diesem ESP-WROOM-03 ist ein Chip mit der Bezeichnung "ESP31B" verbaut, der sich zu dem endgültigen Chip noch unterscheiden kann.

Das 18 mm × 20 mm × 3 mm große Board wurde mit einem für Breadboards geeigneten Breakout-Board geliefert. An Bauteilen sind unter anderem ein 26 MHz- und ein 32 kHz-Taktgeber, ein 32 Mbit (4 Megabyte) großes EEPROM (EM25Q32) als SPI-Flash sowie jede Menge Hühnerfutter in SMD-Bauweise bestückt. Außerdem gibt es eine für Bluetooth und WLAN angepasste Antenne, die als Platinenbahn ausgeführt ist. Betrieben wird das System mit 3 bis 3,6 Volt. Die genauen Spezifikationen findet man im PDF zum ESP32-WROOM-03.

Erste Eindrücke vom ESP32 (4 Bilder)

Das Espressif ESP32 Developer Board wurde an 200 Beta-Tester verschickt.
(Bild: Markus Ulsaß)

Zunächst einmal eine kleine Einschränkung ganz am Anfang: Das uns vorliegende Developer-Modul mit einem ESP31B kann sich von dem endgültigen Chip noch unterscheiden. Einiges, was an Eigenschaften vom Hersteller angekündigt wurde, ist mit dem Developer Board (noch) nicht möglich beziehungsweise noch nicht getestet worden oder ändert sich noch. Das liegt unter anderem auch daran, dass das Software Development Kit (SDK) und die dazugehörigen APIs (Application Programming Interfaces) noch in einer frühen Entwicklungsphase stecken. Durch die sehr aktive Community ist der Funktionsumfang und vor allem das Preis-Leistungs-Verhältnis bemerkenswert. Bei Espressif handelt es sich zudem um einen Chip-Entwickler, der die Quellen für die API weitgehend freigibt.

ESP32 (ESP31B) ESP8266
Ethernet MAC Interface Nicht vorhanden
GPIOs für 10 Touch-Sensoren Nicht vorhanden
Temperatur-Sensor (on-chip) Nicht vorhanden
Remote-Controller-Funktionalität Nicht vorhanden
Hall-Sensor Nicht vorhanden
Digital-to-Analog Converter (DAC) Nicht vorhanden
CAN 2.0 Nicht vorhanden
Analog-to-Digital Converter (ADC): 16 Kanäle mit 12-Bit SAR-ADC mit Unterstützung für einen Low-Noise Amplifier (LNA) 10-bit ADC, kein LNA
2 I2C-Schnittstellen 1 I2C-Schnittstelle
16 Kanäle für PWM 8 Kanäle für PWM
GPIOs (General-Purpose Input/Output): 36 GPIOs: 17
4 SPI-Schnittstellen mit Quad-SPI und maximal 80 MHz 3 SPI-Schnittstellen mit Quad-SPI und maximal 80 MHz

Hunderte von Projekten und Tutorials zu zahlreichen Anwendungen vor allem im Bereich Internet of Things zeigen die Fähigkeiten des alten ESP8266. Was kann der ESP32 (Pinout) besser als sein kleiner Bruder und vor allem: Welche neuen Möglichkeiten erschließen sich dem Anwender dadurch? Dazu werfen wir einen Blick unter die Haube des neuen Chips, schauen, was verbessert wurde beziehungsweise auf welche neuen Schnittstellen man zugreifen kann.

Eine der wichtigsten Neuerungen ist der zweite 32-Bit Prozessor (Tensilica L106), den Espressif dem SoC (System on Chip) spendiert hat. Damit wird der neue Chip nicht nur kraftvoller (bis zu 400 MIPS), sondern es fallen auch wichtige Beschränkungen des ESP8266 weg. So ist das Auslesen des analogen Eingangs oder die Programmierung von Verzögerungsschleifen beim ESP8266 in manchen Situationen nicht unproblematisch und soll manchmal zu falschen Werten beziehungsweise zum Reset des Controllers führen, wenn der Prozessor sich gleichzeitig um die WLAN-Kommunikation kümmern muss. Prinzipiell muss man bisher dafür sorgen, dass es im Programmablauf nicht zu Kollisionen kommt.

Mit einer Standard-Taktung von 160 MHz wird zudem der Takt für das Prozessor-Duo verdoppelt. Laut Espressif ist das Chip-Design sogar auf maximal 240 MHz ausgelegt. Getestet wurde das bisher aber noch nicht. Mit 400 MIPS dürfte sogar eine rudimentäre Spracherkennung möglich werden, die zur Zeit in viele Smart-Home Geräte eingebaut wird (Amazon Echo, Google Home). Erweitertes internes ROM, SRAM und die Möglichkeiten, über das schnelle Quad-SPI (QSPI) mit bis zu 80 MHz insgesamt 64 MByte Flash anzubinden, zeigen die Möglichkeiten des potenten Prozessor-Duos.

Selbst für Fritzing gibt es schon ein ESP32-Bauteil von Sparkfun.

(Bild: Markus Ulsaß)

Das ROM für das Bootprogramm und Grundfunktionen wurde auf 128 kBytes aufgestockt - jeder der Cores kann dabei auf eigenes ROM zugreifen. An SRAM stehen jetzt 416 kBytes zur Verfügung (Heap & Data: 150 kBytes, Code: 60 kBytes). Unterstützt werden 32 Interrupt-Vektoren von etwa 80 Interrupt-Quellen. Wie beim ESP8266 können Programmcode und Daten in den externen Flash-Speicher ausgelagert werden. Der ESP32 unterstützt bis zu 64 MByte (ESP8266: 16 MByte).

Mit einer Erhöhung der Bandbreite auf 40 MHz im 802.11n-Standard und damit bis zu 150 MBit/s (nach Angaben von Espressif) soll endlich das Streaming von Videodaten über WLAN möglich werden. Audio-Streaming, wie man es für ein Internet-Radio oder das lokale Abspielen von Musik benötigt, dürften so kein Problem mehr sein. Eine Kamera könnte somit über das SDIO Interface für SD-Speicherkarten angebunden werden. Damit sind theoretisch 200 Mbps auf vier Datenbussen mit 50 MHz möglich.

Mit Bluetooth 4.2 Low Energy (BLE) und Bluetooth Legacy erweitert der ESP32 seine Fähigkeiten im Funk um einen wichtigen Standard. Audio-Headsets und Bluetooth-Lautsprecher auf Basis des neuen Chips sind durchaus vorstellbar. Mit BLE werden nun auch stromsparende Wearables und Sensorbausteine möglich.

Besonders stromsparende Modi bis hinunter zu 2 µA ermöglicht auch der neue Ultra Low Power (ULP)-Prozessor und die RTC (Real Time Clock), da Programme und Daten für den ULP-Prozessor in das SRAM (bis zu 8 kBytes) der RTC ausgelagert werden können und somit auch im Deep Sleep-Modus auf Peripherie, Interrupts und Timer zugegriffen werden kann. So kann man die stromhungrigen 32-Bit-Prozessoren aufwecken, wenn es nötig ist, und danach sofort wieder schlafen legen. Batteriebetriebene ESP-Geräte werden noch ausdauernder und zahlreiche neue gänzlich drahtlose Geräte für das Internet of Things und Smart Home werden möglich, die zuvor noch an der Steckdose hängen mussten.

Verdrahtet werden kann der ESP32 zukünftig auch mit dem LAN und zwar über den neuen Media Access Controller (MAC). Eine Neuerung in der Peripherie soll auch ein CAN-BUS-Controller 2.0 sein, zehn kapazitive Eingänge (low noise/high sensitivity), an die Touch-Sensoren angeschlossen werden können, sowie ein Remote-Controller, der mit acht Kanälen ausgestattet ist und über den per pulse waveform eigene Protokolle programmiert werden können. Hierzu gibt es allerdings noch keine weiterreichenden Informationen.

Besonders der neue Analog-Digital Wandler (ADC) mit jetzt 12 Bit Auflösung und 16 Kanälen wird für Projekte im Bereich Messen begrüßt werden. Die Begrenzung auf eine maximale Spannung bis 1 Volt am Eingang (wie beim ESP8266) ist Geschichte. Zukünftig werden vier Spannungsbereiche von 0 bis 4 Volt möglich und damit sind zahlreiche Sensoren deutlich einfacher anzuschließen. Zusätzlich bietet der ESP32 jetzt einen Digital-Analog Wandler (DAC) mit zwei 10 Bit Kanälen.

Die Zahl der (teilweise mehrfach genutzten) Ein- und Ausgänge, welche als GPIOs (General Purpose Input Output) bezeichnet werden, hat sich verdoppelt. Im ESP32 sind jetzt 36 nutzbar, auch wenn natürlich einige davon standardmäßig schon mit anderen Funktionen für weitere Peripherie belegt sind.

Bereits in der Beta-Phase unterstützt von der Arduino-IDE

(Bild: Markus Ulsaß)

Eine Kernfrage bei kleinen, smarten Geräten ist oft der Stromhunger. Damit steht und fällt die Möglichkeit unabhängig von der Steckdose betrieben zu werden. Für Wearables oder Roboter ist das vorteilhaft. Der ESP32 unterstützt verschiedene Power-Modes, die durch den neuen Ultra-Low-Power-Prozessor in Kombination mit der RTC bis zu wenigen Mikroampere herunter - trotz zahlreicher aktiver Peripherie - betrieben werden können. Die wichtigsten Modi sind:

  • Active Mode: Alle Einheiten des Chips sind aktiviert. In ersten Tests scheint der ESP32 noch stromhungriger als sein Vorgänger zu sein, denn der Stromverbrauch liegt bei etwa 160-260 mA (alle Angaben zum Verbrauch vom Hersteller).
  • Modem Sleep Mode: Die CPUs arbeiten, WLAN und Bluetooth sind deaktiviert. Stromverbrauch 3-20 mA.
  • Light Sleep Mode: Die CPU ist ausgeschaltet - Ultra Low Power (ULP) und RTC arbeiten, externe Interrupts sind möglich. Stromverbrauch 0,8 mA.
  • Deep Sleep Mode: Nur die RTC ist aktiviert, der ULP-Prozessor kann eingeschaltet werden. Stromverbrauch 2-25 µA .