Ich habe mal ein paar
wichtige Merkmale rauskopiert aus dem Handbuch, das mir auch recht gut gefällt
• 32-Bit Xtensa RISC-CPU: Dual-Core Mikrocontroller Tensilica Xtensa LX6
• Betriebsgeschwindigkeit von 160 … 240 MHz
• 520 KB SRAM
• 448 KB ROM
• 16 KB SRAM (in der RTC)
• IEEE 802.11 b/g/ne/I-WLAN
• Bluetooth 4.2
• 12-Bit-ADC mit 18 Kanalen
• 8-Bit-DAC mit 2 Kanalen
• 10 Touch-Sensoren
• Temperatursensor
•
36 GPIOs
• 4 x SPI
• 2 x I2C
• 2 x I2S
• 3 x UART
• 1 x CAN Bus 2.0
• SD-Speicherkarten-Unterstutzung
• Betrieb mit 2,2 … 3,36 V
• RTC-Timer und Watchdog
• Hall-Sensor
• 16 PWM-Kanale
• Ethernet-Schnittstelle
• Interner 8-MHz- und RC-Oszillator
Das offizielle ESP32-Handbuch
• Externer 2 … 60-MHz- und 32 kHz Oszillator
• Kryptografische Hardware-Beschleunigung (AES, HASH, RSA, ECC, RNG)
• IEEE 802.11 Sicherheitsmerkmale
• 5 μa Stromaufnahme im Sleep-Modus
Tabelle 1.1 Vergleich der Grundeigenschaften von ESP32- und ESP8266-Prozessoren.
Technische Daten ESP32 ESP8266
CPU 32-Bit Xtensa L106 Single-Core 32-Bit Xtensa LX6 Dual-Core
Betriebsfrequenz 160 MHz 80 MHz
Bluetooth Bluetooth 4.2 nein
WLAN Ja (HT40) Ja (HT20)
SRAM 512 KB 160 KB
GPIOs 36 17
Hardware-PWM 1 nein
Software-PWM 16 8
SPI/I2C/I2S/UART 4/2/2/2 2/1/2/2
CAN 1 nein
ADC 12-bit 10-bit
Touch-Sensor 10 nein
Temperatursensor 1 nein
Ethernet-MAC-Schnittstelle 1 nein
Tabelle 1.2. Vergleich von ESP32 und ESP8266
1.2 Die Architektur des ESP32
Bild 1.1 zeigt die Funktionsblocke des ESP32-Prozessors (siehe ESP32-Datasheet, Espressif
Systems, 2017). Im Mittelpunkt befindet sich die Dual-Core-CPU Xtensa LX6 mit
dem Speicher. Auf der linken Seite sind die peripheren Schnittstellenblocke wie SPI, I2C,
I2S, SDIO, UART, CAN, ETH, IR, PWM, Temperatursensor, Touch-Sensor, DAC und ADC zu
sehen. Die Bluetooth- und WLAN-Module befinden sich oben in der Mitte des Blockschaltbildes,
der Taktgenerator und der HF-Transceiver rechts daneben. In der rechten Mitte sind
die Module fur kryptographische Hardware-Beschleunigung wie SHA, RSA, AES und RNG zu
sehen. Und ganz unten befinden sich RTC, PMU, Co-Prozessor und der Recovery-Speicher.
KAPITEL 1 • DER ESP32-PROZESSOR
Bild 1.1. Funktionsblöcke des ESP32-Prozessors
Bild 1.2 zeigt die Struktur des Systems, bestehend aus der Dual-Core-CPU mit Harvard-Architektur
mit den Bezeichnungen PRO_CPU (fur Protokoll-CPU) und APP_CPU (fur Applikations-
CPU). Die Module dazwischen sind beiden CPUs gemeinsam. Detaillierte Informationen
zur internen Architektur des ESP32 erhalten Sie im ESP32 Technical Reference
Manual (Espressif Systems, 2017). Einige Informationen uber die internen Module finden
Sie weiter hinten in diesem Buch.
Bild 1.2. Systemstruktur
1.2.1 Die CPU
Die CPU kann mit bis zu 240 MHz betrieben werden und unterstutzt 7-stufiges Pipelining mit
einem 16/24-Bit-Befehlssatz. Gleitkomma-Operationen und DSP-Befehle wie 32-Bit-Multiplikator,
32-Bit-Teiler und 40-Bit-MAC werden unterstutzt. Es stehen bis zu 70 externe und
interne Interrupt-Quellen mit 32 Interrupt-Vektoren zur Verfugung. Das Debugging kann
uber die JTAG-Schnittstelle erfolgen.
Das offizielle ESP32-Handbuch
1.2.2 Interner Speicher
Auf dem Chip gibt es 520 KB SRAM und 448 KB ROM (zum Booten). Das RTC-Modul enthalt
je 8 KB langsamen und schnellen Speicher. Es ist 1 Kbit eFuse verfugbar, wobei 256 Bits
fur die MAC-Adresse und die Chip-Konfiguration reserviert sind, wahrend die restlichen
768 Bits fur User-Anwendungen offenstehen.
1.2.3 Externer Speicher
Es werden bis zu 4x16 MB externer Flash- und SRAM-Speicher unterstutzt, auf den uber
einen High-Speed-Cache zugegriffen werden kann. Bis zu 16 MB des externen Flash-Speichers
werden auf den CPU-Code-Raum, bis zu 8 MB des externen Flash/SRAM-Speichers
auf den CPU-Datenraum abgebildet. Das Lesen von Daten ist sowohl vom Flash als auch
vom SRAM moglich, wahrend Daten nur auf das SRAM geschrieben werden konnen.
1.2.4 Universal-Timer
Vier 64-Bit-Universal-Timer konnen im ESP32-Prozessor software-gesteuert werden. Die
Timer verfugen uber 16-Bit-Vorteiler (2 … 65535) und Auto-Reload-Auf- und Abwartszahler.
Die Timer konnen, wenn so konfiguriert, Interrupts erzeugen.
1.2.5 Watchdog-Timer
Drei Watchdog-Timer mit programmierbaren Timeout-Werten stehen zur Verfugung. Zwei
der Watchdog-Timer sind sogenannte „Main Watchdog Timer" und befinden sich im Block
der Universal-Timer, wahrend der dritte, der „RTC Watchdog Timer", sich im RTC-Modul
befindet. Bei einem Reset der Watchdog-Timer konnen ein Interrupt, ein CPU-Reset, ein
Core-Reset und ein System-Reset erzeugt werden.
1.2.6 Der Systemtakt
Wenn der Prozessor zuruckgesetzt wird, ubernimmt ein externer Quarztakt das System-
Timing. Die Taktfrequenz betragt typischerweise 160 MHz und wird mithilfe einer PLL
konfiguriert.
Ein genauer interner Takt (8 MHz) ist ebenfalls moglich. Dem Programmierer steht es frei,
einen externen oder internen Takt zu wahlen.
Die RTC kann mit einem externen 32-kHz-Quarz, einem internen RC-Oszillator (typischerweise
150 kHz) oder einem internen 8-MHz-Oszillator getaktet werden. Durch eine Teilung
des internen 8-MHz-Taktes durch 256 ist auch eine Taktung der RTC mit 31,25 kHz moglich.
1.2.7 Transceiver
Der ESP32-Prozessor verfugt uber interne 2,4-GHz-Sende- und Empfangsmodule fur
WLAN- und Bluetooth-Kommunikation.
1.2.8 Universal-Ein- und Ausgänge (GPIOs)
Es gibt 34 GPIOs, die fur den digitalen, analogen oder den Einsatz als kapazitiver Touchscreen
konfiguriert werden konnen. Digitalen GPIOs konnen durch Konfiguration interne
Pull-up- oder Pull-Down-Widerstande hinzugefugt oder ein hochohmiger Zustand zugewiesen
werden. Eingangs-Pins konnen so konfiguriert werden, dass sie Interrupts als Flanken
oder Pegelanderung akzeptieren.
KAPITEL 1 • DER ESP32-PROZESSOR
1.2.9 Analog-Digital-Wandler (ADC)
Der ESP32-Prozessor enthalt einen 12-Bit-A/D-Wandler mit 18 Kanalen. Um niedrige Analogspannungen
zu messen, konnen einige der Eingange als programmierbare Verstarker
konfiguriert werden.
1.2.10 Digital-Analog-Wandler (DAC)
Der ESP32-Prozessor verfugt uber zwei unabhangige 8-Bit-D/A-Wandler.
1.2.11 Hall-Sensor
Der Prozessor verfugt uber einen resistiven Hall-Sensor. Befindet sich der Sensor in einem
Magnetfeld, erzeugt er eine kleine Spannung, die vom A/D-Wandler gemessen werden
kann.
1.2.12 Temperatursensor
Weiterhin steht ein interner analoger Temperatursensor fur Temperaturen im Bereich von
-40 … +125 °C zur Verfugung. Die gemessene Temperatur wird vom A/D-Wandler digitalisiert.
Die Messung wird von der Temperatur des Chips und seiner aktiven Module beeinflusst,
so dass der Temperatursensor nur zur Messung von Temperaturschwankungen und
nicht der absoluten Temperatur geeignet ist.
1.2.13 Touch-Sensor
Der Anschluss von bis zu zehn kapazitiven Touch-Sensoren ist moglich. Die GPIO-Pins konnen
die kapazitiven Anderungen erfassen, die durch den direkten Kontakt mit einem Finger
oder einem anderen geeigneten Objekt erzeugt werden.
1.2.14 UART
Fur die serielle Kommunikation (RS232, RS485 und IrDA) sind drei UARTs mit Geschwindigkeiten
von bis zu 5 Mbps vorgesehen.
1.2.15 I2C-Schnittstelle
ESP32-Prozessor bietet bis zu zwei I2C-Bus-Schnittstellen, die im Master- oder Slave-Modus
konfiguriert werden konnen. Die Schnittstellen unterstutzen den 400-Kbit/s-Fast-Transfer-
Modus mit sieben oder zehn Bit breiter Adressierung. Auf diese Pins konnen externe Bauteile
mit I2C-Bus-kompatibler Schnittstelle angeschlossen werden.
1.2.16 I2S-Schnittstelle
Der ESP32-Prozessor unterstutzt bis zu zwei I2S-Bus-Schnittstellen im Master- oder Slave-
Modus, im Voll- oder Halbduplex-Betrieb. Die Taktfrequenz kann 10 kHz bis 40 MHz
betragen.
1.2.17 Infrarot-Controller
Bis zu 8 Kanale einer programmierbaren Infrarot-Fernbedienung werden vom ESP32 unterstutzt.
Die Wellenformen beim Senden und Empfangen konnen im gemeinsam genutzten
512x32-Bit-Speicher niedergelegt werden.
1.2.18 Pulsweitenmodulation
Pulsweitenmodulation (PWM) wird verwendet, um Gerate wie Motoren, elektrische Heizungen,
intelligente Leuchten und Ahnliches zu steuern. Der ESP32 stellt dazu ein programmierbares
Hardware-PWM-Modul und 16 per Software konfigurierbare PWM-Module bereit.
1.2.19 LED-PWM
Mit der LED-PWM konnen bis zu 16 unabhangige digitale Wellenformen mit konfigurierbaren
Tastverhaltnissen und Perioden erzeugt werden. Das Tastverhaltnis lasst sich per
Software in einem Schritt-fur-Schritt-Modus andern.
1.2.20 Impulszähler
Es gibt bis zu acht Impulszahler-Kanale, um Impulse zu erfassen und Impulsflanken zu
zahlen. Wenn der Zahler einen vordefinierten Wert erreicht, kann ein Interrupt erzeugt
werden.
1.2.21 SPI-Schnittstelle
Bis zu vier SPI-Schnittstellen im Master- und Slave-Modus werden vom ESP32 unterstutzt.
An diese Pins konnen externe Bauteile mit SPI-Schnittstelle angeschlossen werden.
1.2.22 Hardware-Beschleuniger
Der ESP32 unterstutzt Hardware-Beschleuniger fur mathematische Operationen mit Algorithmen
wie AES, SHA, RSA und ECC. Diese Beschleuniger helfen, die Verarbeitungsgeschwindigkeit
zu erhohen und auch die Komplexitat der Software zu verringern.
1.3 ESP32-Entwicklungsboards
Der ESP32-Chip ist sehr komplex und lasst sich nicht ohne Hilfsmittel erforschen. Deshalb
gibt es auf dem Markt mehrere Entwicklungsboards auf der Basis des ESP32-Chips. Diese
Entwicklungsplatinen enthalten einen ESP32-Chip und die dazugehorige Hardware, um die
Entwicklung von Projekten auf Basis des ESP32 zu vereinfachen. In diesem Kapitel wollen
wir uns die Eigenschaften einiger popularer ESP32-Entwicklungsboards ansehen.
1.3.1 SparkFun ESP32 Thing
Auf diesem Entwicklungsboard (siehe Bild 1.3) gibt es einen FTDI-Chip, der USB in serielle
Signale umwandelt, damit der Computer mit dem Board kommunizieren kann. Zur Unterstutzung
der Projektentwicklung gibt es LEDs und Tasten auf dem Board. Ein LiPo-Lademodul
ist ebenfalls enthalten, so dass die Platine mit einer geeigneten Batterie versorgt
werden kann. Das Board bietet 28 GPIO und 4 MB Flash-Speicher.
.
.

- ESP32_DEVBOARD_Forum.jpg (172.59 KiB) 4148 mal betrachtet