série de SoC comprenant microcontrôleur, Wi-Fi, Bluetooth et DSP De Wikipédia, l'encyclopédie libre
ESP32 est une série de microcontrôleurs de type système sur une puce (SoC) d'Espressif Systems, basé sur l'architecture Xtensa LX6 de Tensilica(en), intégrant la gestion du Wi-Fi et du Bluetooth (jusqu'à LE 5.0 et 5.1[1]) en mode double, et un DSP. C'est une évolution d'ESP8266. Le principal outil de développement est ESP-IDF, logiciel libre développé par Espressif, écrit en C et utilisant le système temps réelFreeRTOS. Il intègre un nombre important de bibliothèques et on retrouve dans son écosystème des bibliothèques tierce libres pour différents types de périphériques liés à l'embarqué et au temps réel.
Le ESP32-C3, WiFi, BLE, Bluetooth, est une variante, annoncée et sorti en novembre 2020, compatible broche à broche avec l'ESP8266, mais utilisant l'architecture RISC-V 32 bits plutôt que Xtensa[2]. Le support du développement via la plateforme et l'IDE d'Arduino est disponible depuis la bibliothèque ESP32 2.0.0[3].
Plus généralement, La série ESP32-C est basée sur RISC-V et la série ESP32-S sur Xtensa LX6.
Son support Wi-Fi et Bluetooth, en fait un système apprécié dans le domaine de l'internet des objets.
Ce SoC rencontre un certain succès depuis quelques années à la fois pour son coût, ses capacités et son intégration dans un nombre croissant de systèmes.
Les ESP32 comprennent notamment les caractéristiques techniques suivantes[4]:
Processeurs:
CPU: Xtensa double-cœur (ou simple-cœur), microprocesseur LX 32 bits, fonctionnant à 160 ou 240 MHz et fournissant jusqu'à 600 DMIPS;
Contrairement à ses prédécesseurs, le microcontrôleur principal est un unique cœur d'architecture RISC-VRV32IMC 400 ko de SRAM intégré (16 ko de cache). Il permet l'utilisation de ESP-IDF, basé sur FreeRTOS[9], à une fréquence maximum de 160 MHz[10]., il apporte cependant de meilleur performances qu'un seul cœur LX7 à 160 MHz[11].
1 cœur RISC-V 32 bits jusqu'à 160 MHz
Accélération du chiffrement
384 ko de ROM
WiFi 4.0 b/g/n 2.4 GHz largeur de bande 20 MHz, 40 MHz en 802.11n (150 Mb/s max)
Basé sur un cœur RISC-V pouvant monter jusqu'à 240 Mhz, ce module n'a pas d'unité d'accélération de chiffrement, mais gère par contre le WiFi 6.0 en double bande. Il permet l'utilisation de ESP-IDF, basé sur FreeRTOS[12].
1 cœur RISC-V 32 bits jusqu'à 240 MHz
dual-band WiFi 6.0 802.11ax (largeur de bande 20MHz) en 2.4 GHz et 5.0 GHz, WiFi 4.0 802.11b/g/n (largeur 20MHz et 40MHZ)
Bluetooth 5.0 LE
Sur circuit intégré: 400 ko RAM, 384 ko ROM
Capteur de température et système d'horloge temps-réel (RTC).
ESP32-C6
Comme le C3, il se base sur un processeur d'architecture RISC-V[13],[14].
IEEE 802.11ax (Wi-Fi 6) à 2.4 GHz, supportant une bande passante de 20 MHz dans le mode 11ax et 20 or 40 MHz de bande passante dans les modes 802.11b/g/n
Bluetooth 5.0 LE (2 Mbps)
ESP32-C61
Comme le C6, il se base sur un processeur d'architecture RISC-V[15],[16].
1 cœur RISC-V 32 bits jusqu'à 160 MHz
Extension d'accélération du chiffrement AES, ECDSA-based Digital Signature (DS) peripheral, Trusted Execution Environment (TTE)
IEEE 802.11ax (Wi-Fi 6) à 2.4 GHz, supportant une bande passante de 20 MHz dans le mode 11ax et 20 ou 40 MHz de bande passante dans les modes 802.11b/g/n
Bluetooth 5.0 LE (2 Mbps) et BLE Mesh 1.1
Quad SPI PSRAM jusqu'à 120 MHz
module Event Task Matrix (ETM) module pour l'automatisation par déclencheur des tâches.
ESP32-P4
L'ESP32-P4 est une version comportant deux contrôleurs RISC-V à 400Mhz et un contrôleur RISC-V basse consommation à 40 Mhz, pour le mode veille[17],[18]:
2 cœurs RISC-V 32 bits jusqu'à 400 MHz
1 cœur RISC-V 32 bits jusqu'à 40 MHz
Un NPU, un décodeur H264 et JPEG, ainsi qu'un processeur géométrique 2D.
Différents modules réseau sans fil, supportant LoRa, WiFi et Bluetooth, autonomes ou intégrés dans d'autres cartes de développement, telles que les cartes de Sipeed basés sur des processeurs RISC-V.
Synthétiseurs
L'ESP32 est adapté à la création des Synthétiseurs avancés, dont des synthétiseurs analogiques. Le langage FAUST ou la bibliothèque ESP32soundsynth permettent de faciliter le développement de synthétiseurs basés sur cette architecture[24]. L'échantillonnage utilisant l'ADC intégré peut être effectué via la plateforme de développement Arduino[25].
Il est notamment adapté à des synthétiseurs au format Eurorack, comme le CTAG-Strämpler[26],[27],[28].
Qun-synthesizer est un synthétiseur analogique portable, basé sur la carte ESP32-LyraT, fonctionnant avec la carte mère Nunomo[29].
Console de jeu portable
Hardkernel, a créé en 2018 Odroid-Go, une console de jeu portable à très bas prix basée sur cette puce.
(en) raspy135, «Qun-synthesizer», sur compte raspy135 sur Github
Bibliographie
(en) Agus Kurniawan, Internet of Things projects with ESP32: build exciting and powerful IoT projects using the all-new Espressif ESP32, Birmingham, UK, Packt Publishing, (ISBN9781789953121)
(de) Udo Brandes, Erste Schritte: Eigene IoT-Lösungen mit dem ESP32: Mikrocontroller, Internet und PC, Haar bei München Franzis, coll.«Mach's einfach», (ISBN9783645606615)
(en) Iain Hendry, ESP32 Development using the Arduino IDE,
(sl) Jan Pleterski, Rok Vrabič et Peter Butala, Krmiljenje DC motorja z mikrokrmilnikom ESP32: zaključna naloga univerzitetnega študijskega programa I. stopnje Strojništvo (OCLC1016112028)
(en) Romain Michon, Daniel Overholt, Stephane Letz, Yann Orlarey, DominiqueFober, Catinca Dumitrascu, A Faust Architecture for the ESP32 Microcontroller, Turin, Sound and Music Computing Conference (SMC-20), (lire en ligne)
Avec MicroPython
Nicholas H. Tollervey, Programmer avec MicroPython: Programmation Python de systèmes embarqués à microcontrôleurs, Paris, O'Reilly / First éditions, , X-213p. (ISBN978-2-412-03746-1, BNF45512787) (programmation en MicroPhython, avec notamment des exemples sur ESP32)
(en) Luca-Dorin Anton, MicroPython complete: the definitive guide to Python for microcontrollers using MicroPython and ESP32, Technics Publications, (OCLC1122564653)