Présentation du ESP32‑S31
Espressif a dévoilé le ESP32‑S31, un microcontrôleur qui intègre un Ethernet MAC gigabit (1000 Mbps), un contrôleur USB 2.0 High‑Speed OTG, deux slots SDIO, une interface caméra DVP et un contrôleur LCD parallèle. Ces périphériques, habituellement réservés aux ordinateurs à carte unique (SBC), placent le S31 dans une catégorie hybride entre microcontrôleur et SBC.
Architecture matérielle et capacités de calcul
Le cœur du S31 repose sur deux cœurs RISC‑V 32 bits cadencés jusqu'à 320 MHz. Chaque cœur possède une unité de virgule flottante et un cache L1 de 32 KB d’instructions, tandis qu’un cache L2 partagé de 64 KB stocke les données. Un troisième cœur basse consommation de 40 MHz gère les tâches de veille. L’un des cœurs principaux intègre un chemin de données SIMD de 128 bits, améliorant le traitement vectoriel.
En termes de mémoire, le S31 offre 512 KB de SRAM interne et supporte jusqu’à 64 MB de PSRAM via une interface DDR 8‑bits à 250 MHz. Le flash externe peut atteindre 256 MB. Deux variantes proposent 16 MB ou 32 MB de PSRAM intégrée, mais aucune interface DRAM n’est disponible, ce qui limite le plafond de mémoire exploitable.
Support Linux et implications pour les SBC
Contrairement aux précédents ESP32, le S31 intègre un véritable MMU conforme au schéma de pagination RISC‑V Sv32 à deux niveaux, avec les modes Machine, Supervisor et User. Cette architecture permet l’exécution d’un noyau Linux en mode superviseur, le firmware restant en mode machine. Espressif a publié un BSP Linux basé sur Buildroot et U‑Boot, incluant le noyau, l’arbre de périphériques et le système de fichiers racine. Bien que la société indique que le produit n’est « pas encore recommandé pour la production », la communauté a déjà porté Linux 6.18 (avec pilotes complets) et Linux 7.1 (support d’un écran 800×480).
Le support natif du port Ethernet gigabit, du port USB host (type‑A, 500 mA) et du contrôleur d’affichage rend possible la connexion d’un clavier, d’une souris et d’un moniteur, rapprochant le S31 des SBC classiques comme le Raspberry Pi.
Limites mémoire et performances réseau
Le principal goulot d’étranglement reste la capacité mémoire : le maximum de 64 MB de PSRAM, combiné à l’absence de contrôleur DRAM, contraint les charges de travail Linux à exécuter le noyau depuis le flash pour économiser la RAM volatile. En comparaison, des SBC concurrentes (ex. Milk‑V Duo S) proposent 512 MB de RAM, offrant une marge largement supérieure.
Sur le plan réseau, le processeur à 320 MHz délivre environ 3 900 cycles CPU par trame Ethernet maximale et 215 cycles par trame minimale. Cette allocation de cycles est suffisante pour le débit théorique, mais laisse peu de marge pour des traitements intensifs en même temps que le trafic réseau.