Espressif hat mit dem ESP32-S31 einen neuen Mikrocontroller vorgestellt, der durch die Integration einer vollwertigen RISC-V-MMU (Sv32), Gigabit-Ethernet, USB 2.0 High-Speed OTG und umfangreicher Funkstandards die Lücke zu Einplatinencomputern (SBCs) schließt. Obwohl der Arbeitsspeicher auf maximal 64 MB PSRAM und 512 KB SRAM begrenzt ist, ermöglicht die Hardware erstmals das native Ausführen eines Linux-Kernels im Supervisor-Modus, was bereits zu frühen Community-Linux-Ports (u. a. auf Basis von Linux 6.18 und 7.1) führt.
Wichtigste Punkte
CPU und MMU: Zwei 32-bit RISC-V-Kerne mit bis zu 320 MHz, Gleitkommaeinheit (FPU), 128-bit SIMD-Datenpfad, ein separater 40-MHz-Low-Power-Kern sowie eine echte Sv32-Zweiebenen-Seitenetabellen-MMU mit Maschinen-, Supervisor- und Benutzer-Privilegienmodi.
Netzwerk und Konnektivität: Integrierter 1000 Mbps Ethernet MAC (über RGMII und RJ45) kombiniert mit Wi-Fi 6 (2,4 GHz), Bluetooth 5.4 (LE und Classic BR/EDR) sowie einem 802.15.4-Funkstandard für Thread und Zigbee.
Peripherie: USB 2.0 High-Speed OTG-Controller (Typ-A-Buchse mit 500 mA), SDIO-Host-Controller mit zwei Slots, DVP-Kamera-Schnittstelle (8–16 Bit), paralleler LCD-Controller (bis 24-Bit RGB), zwei I2S-Controller mit Bluetooth-Audiosynchronisation und ein CAN-FD-Controller.
Speicherarchitektur: Unterstützung für bis zu 64 MB PSRAM (über eine 250 MHz 8-bit DDR-Schnittstelle) und bis zu 256 MB Flash-Speicher, flankiert von 512 KB internem SRAM.
Software-Ökosystem: Ein offizielles Linux BSP von Espressif basierend auf Buildroot und U-Boot (inklusive Kernel, Device Tree und Root-Dateisystem) sowie Community-Ports wie Linux 6.18 und Linux 7.1 (letzteres mit Unterstützung für ein 800x480 LCD-Panel).
Diskussions-Highlights
XIP-Unterstützung (Execute-in-Place): Diskutanten wiesen darauf hin, dass die Entfernung der XIP-Unterstützung für RISC-V in Linux ab Version 7.1 der Grund dafür ist, dass Espressifs offizieller Port auf Linux 6.18 setzt. XIP ist kritisch, um den Kernel direkt aus dem NOR-Flash auszuführen, ohne wertvollen RAM zu verschwenden.
Retro-Emulation: Dank der vielseitigen GPIOs, Audio-/Video-Peripherie und der zusätzlichen Rechenkerne wird der Chip als ideale Plattform für Hardware-Emulatoren gehandelt (unter Verweis auf GitHub-Projekte wie Retro-Gamer, ESPectrum für den ZX Spectrum und tiny386).
Namensgebung: Die Bezeichnung „S31“ wurde kritisiert, da sie ein inkrementelles Update des S3 suggeriert, obwohl sich die Architektur stark unterscheidet und eher vom P4-Modell abgeleitet ist (wobei im Vergleich zum P4 der MIPI-CSI-Kameraanschluss zugunsten von Funkmodulen weggefallen ist).
Wettbewerb und Leistung: Im Vergleich zu echten SBCs oder Konkurrenten wie dem Milk-V Duo S (512 MB RAM) bleibt der ESP32-S31 beim Arbeitsspeicher stark limitiert, punktet jedoch mit einem extrem niedrigen Stromverbrauch im Sleep-Modus (91 bis 147 mA) und integrierten Multistandard-Funkmodulen.
Glossar
MMU (Memory Management Unit): Eine Hardwarereinheit, die für die Verwaltung des virtuellen Speichers, die Adressübersetzung und die Prozessisolation (Speicherschutz) zuständig ist.
RISC-V: Eine offene Befehlssatzarchitektur (ISA) auf Basis des RISC-Prinzips (Reduced Instruction Set Computer), die frei lizenziert und modifiziert werden kann.
Sv32: Ein von der RISC-V-Architektur definiertes Seitenbank- und Adressübersetzungsschema für 32-Bit-Systeme mit einem zweistufigen Tabellensystem.
PSRAM (Pseudo-SRAM): Ein dynamischer RAM-Speicher (DRAM), der intern eine Auffrischung logisch verbirgt, sodass er sich extern wie ein statischer RAM (SRAM) ansteuern lässt.
XIP (Execute-in-Place): Eine Technik, bei der Programmcode direkt aus dem nicht-flüchtigen Speicher (wie NOR-Flash) ausgeführt wird, ohne ihn vorher in den Arbeitsspeicher (RAM) kopieren zu müssen.
OTG (On-The-Go): Eine USB-Spezifikation, die es Geräten erlaubt, sowohl als aktiver Host als auch als passives Peripheriegerät zu agieren.
RGMII (Reduced Gigabit Media Independent Interface): Eine standardisierte Hardwareschnittstelle zur Verbindung von Ethernet-MAC-Controllern mit physischen Netzwerktrips (PHY) bei Gigabit-Geschwindigkeiten.
SBC (Single-Board Computer): Ein vollständiger Einplatinencomputer, der alle notwendigen Komponenten wie CPU, RAM und Peripherie auf einer einzigen Platine vereint und typischerweise vollwertige Betriebssysteme ausführt.
BSP (Board Support Package): Eine Sammlung von Treibern, Bootloadern und Konfigurationsdateien, die es einem Betriebssystem ermöglichen, auf einer spezifischen Hardwareplattform zu starten und zu laufen.