ESP32
| Développeur | |
|---|---|
| Fabricant | |
| Date de sortie |
| Type |
|---|
| Alimentation |
3.3 V CC |
|---|---|
| Processeur |
Tensilica Xtensa LX6 |
| Mémoire |
520 ko |
| ||||||||
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éel FreeRTOS. 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.
Caractéristiques techniques
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 ;
- coprocesseur ultra basse consommation (ULP) ;
- Mémoire : 32 Mo SRAM ;
- Connectivité sans-fil :
- Interfaces de périphériques :
- Segmentation 12-bit sur les ADC (SAR ADC) jusqu'à 18 canaux ;
- 2 × 8 bit DAC ;
- 10 × capteurs de toucher (GPIO de capteur capacitif (en)) ;
- 4 × SPI ;
- 2 × interfaces I²S ;
- 2 × interfaces I²C ;
- 3 × UART ;
- contrôleur hôte SD/SDIO/CE-ATA (en)/MMC/eMMC ;
- contrôleur esclave SDIO/SPI ;
- interface MAC Ethernet avec DMA dédié et support du protocole de temps précis IEEE 1588 ;
- Bus de données CAN 2.0 ;
- contrôleur infrarouge distant (TX/RX, jusqu'à 8 canaux) ;
- Moteur PWM ;
- LED PWM (jusqu'à 16 canaux) ;
- Capteur à effet Hall ;
- pré-amplificateur analogique ultra-basse consommation ;
- Sécurité :
- Standard de sécurité supportant complètement IEEE 802.11,incluant WPA/WPA2 et WAPI de WFA ;
- Secure boot (démarrage sécurisé) ;
- Chiffrement de la Flash ;
- 1024-bit OTP, jusqu'à 768 bit pour les clients ;
- Accélération matérielle du chiffrement : AES, SHA-2, RSA, Cryptographie sur les courbes elliptiques (ECC), Générateur de nombres aléatoires (RNG) ;
- Gestion de l'énergie :
- low-dropout regulator (en) interne.
- Domaines d'alimentation individuels pour le RTC
- Alimentation en sommeil profond de 5 μA ;
- Réveil depuis des interruption GPIO, timer, mesure ADC, interruption du capteur de touché capacitif.
Stockage intégré
L'ESP32 comprend la mémoire intégrée suivante[5] :
| Taille | mémoire |
|---|---|
| SRAM | 520 Kibits |
| Mémoire flash | 448 Kibits |
| NVRAM | 16 Kibits |
Variantes améliorées
Base Xtensa
ESP32-S2
- Comporte un processeur Xtensa LX7 pouvant monter jusqu'à 240 MHz
- Un coprocesseur RISC-V est introduit pour le mode ULP.
- Accélération matérielle du chiffrement
- Il n'y a pas de fonctions Bluetooth[6]
- WiFi 2.4 Ghz (IEEE 802.11b/g/n)[6]
- FPU
ESP32-S3
- Comporte deux processeur Xtensa LX7 pouvant monter jusqu'à 240 MHz
- Accélération matérielle du chiffrement
- Wifi 802.11 b/g/n, Bluetooth 5.0 LE
- Un coprocesseur RISC-V est toujours présent pour le mode ULP[7].
ESP32-PICO-D4
Il s'agit d'un System in package (système dans un paquet) et non d'un SoC[8].
- Deux processeurs Xtensa LX6
- 4MB SPI flash
- WiFi 802.11 b/g/n/e/i, BT
- consommation moyenne de 80 mA.
Base RISC-V
ESP32-C2 (ESP8684)
Cœur d'architecture RISC-V 272 ko de SRAM intégré (16 ko de cache).
- 1 cœur RISC-V 32 bits basse consommation à 120 MHz
- Accélération matérielle du chiffrement
- 576 ko de ROM
- 1 ko eFuse
- WiFi 4.0 b/g/n 2.4 GHz largeur de bande 20 MHz (72.2 Mb/s max)
- Bluetooth 5.0 LE
- Extensions de chiffrement AES
ESP32-C3 (ESP8686)
Contrairement à ses prédécesseurs, le microcontrôleur principal est un unique cœur d'architecture RISC-V RV32IMC 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 meilleures 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)
- Bluetooth 5.0 LE
- Extensions de chiffrement AES
ESP32-C5
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].
- 1 cœur RISC-V 32 bits jusqu'à 160 MHz
- Extension d'accélération du chiffrement AES
- 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 RV32IMAFCZc[19] 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.
- Opérations vectorielles 128-bit, incluant les multiplication, addition, soustraction, décalage et comparaison[19]
- Accélération du chiffrement AES jusqu'à ECDSA.
- Supporte ethernet, mais pas de réseau sans-fil.
- Compatible MIPI I3C
Série ESP32-H
Tous les SoC de la série ESP32-H utilisent le jeu d'instruction RISC-V.
ESP32-H2
Également basé sur un cœur RISC-V 32 bits, orienté basse consommation et sécurité(en) « ESP32-H2 », sur Espressif.
- IEEE 802.15.4
- Thread, Zigbee, Bluetooth 5 (LE)
Variantes à bas prix
Les ESP32-Pico sont notamment utilisés dans les montres connectées. Ils comportent 2 cœurs Tencilia LX6[20].
Outils de développement et systèmes
Il est notamment supporté par les outils de programmation suivants :
- ESP-IDF (développement en C, avec outils en Python, se base sur FreeRTOS, c'est le système de développement de base ;
- Apache NuttX, système compatible POSIX, porté sur ESP32-C3 (RISC-V) uniquement.
- Arduino IDE avec le module ESP32 Arduino Core[21], interface en Java, développement en C++ ;
- Espruino (en) ;
- ESPHome, spécialisé domotique, comportant une interface web pour l'interaction ;
- FAUST, langage de programmation de traitement de données audio, utilisant son DSP[22] ;
- Lua RTOS pour ESP32 ;
- MicroPython, une variante pour l'embarqué du langage Python ;
- mruby (en), une variante pour l'embarqué du langage Ruby ;
- NodeMCU ;
- MicroEJ[23] ;
- ESP32forth, programmation en Forth 32 bits pour ESP32[24]
Systèmes électroniques l'utilisant
IoT
- Les Cartes IoT NodeMCU les plus récents utilisent ESP32-S à la place de ESP8266.
- Le kit de développement modulaire M5Stack.
- Les cartes IoT TTGO
- Les cartes ESP32 d'uPesy[25]
- 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[26]. L'échantillonnage utilisant l'ADC intégré peut être effectué via la plateforme de développement Arduino[27].
Il est notamment adapté à des synthétiseurs au format Eurorack, comme le CTAG-Strämpler[28],[29],[30].
Qun-synthesizer est un synthétiseur analogique portable, basé sur la carte ESP32-LyraT, fonctionnant avec la carte mère Nunomo[31].
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.
Faille de sécurité
Le 6 mars 2025, la société Tarlogic a annoncé une faille de sécurité[32] majeure affectant ce composant et l'annonce a été relayée par plusieurs médias[33]. Cette faille permet à un attaquant de prendre possession d'un appareil et de l'utiliser à sa guise. La communauté encourage vivement à mettre à jour ses équipements dans le dernier firmware disponible et à se maintenir informé des évolutions.
Circuits imprimés
Plaques modulaires à montage en surface
Les circuits imprimés à montage en surface (PCB) basés sur l'ESP32 contiennent directement le SoC ESP32 et sont conçus pour s'intégrer facilement à d'autres circuits imprimés. Des antennes en F inversé sinueux sont utilisées pour les antennes à pistes PCB. Une piste PCB est un chemin conducteur reliant les composants du circuit imprimé, permettant ainsi la connexion des signaux électriques, de l'alimentation et de la masse[34].
Développement et autres cartes
Les cartes de développement et de dérivation étendent le câblage et peuvent ajouter des fonctionnalités, s'appuyant souvent sur les cartes de modules ESP32 et les rendant plus conviviales pour le développement[35].
Annexes
Notes et références
- ↑ (en) Jean-Luc Aufranc, « Posted on January 3, 2020 by Jean-Luc Aufranc (CNXSoft) - 13 Comments on Espressif Systems ESP32 Gets Bluetooth LE 5.0/5.1 Certifications Espressif Systems ESP32 Gets Bluetooth LE 5.0/5.1 Certifications », sur CNX-Software,
- ↑ (en) Jean-Luc Aufranc, « ESP32-C3 WiFi & BLE RISC-V processor is pin-to-pin compatible with ESP8266 », sur CNX-Software,
- ↑ (en) Jean-Luc Aufranc, « ESP32 Arduino 2.0.0 release adds ESP32-C3 and ESP32-S2 support », sur CNX-Sotware
- ↑ (en) « ESP32 Datasheet », Espressif Systems, (consulté le )
- ↑ (en-US) jameswilson, « ESP32 Pinout, Datasheet, Features & Applications - The Engineering Projects », sur www.theengineeringprojects.com, (consulté le )
- « ESP32-S2 Family Datasheet v1.3 »,
- ↑ « ESP32-S3 Datasheet v1.1 »,
- ↑ (en) « ESP32-PICO-D4 System-in-Package Combines ESP32, 4MB SPI Flash, a Crystal Oscillator, and Passive Components », sur CNX-Software,
- ↑ (en) ESP32C3 Series - Datasheet, Espressif Systems, (lire en ligne), p. 17
- ↑ (en) « ESP32-C3 Datasheet », sur Espresssif
- ↑ (en) Elliot Williams, « Hands-On: The RISC-V ESP32-C3 Will Be Your New ESP8266 », sur Hackaday,
- ↑ Jean-Luc Aufranc, « ESP32-C5 RISC-V IoT MCU supports dual-band WiFi 6, Bluetooth 5.0 LE », sur CNX-Software,
- ↑ (en) « ESP32-C6 Datasheet », sur Espresssif
- ↑ (en) Kerry Scharfglass, « New Part Day: Espressif ESP32-C6 Includes WiFi 6 And A RISC-V Core », sur Hackaday,
- ↑ (en) « ESP32-C61: Delivering Affordable Wi-Fi 6 Connectivity », sur Espresssif
- ↑ (en) Tomisin Olujinmi, « Espressif announces the ESP32-C61 WiFi 6 SoC with improved affordability and wireless connectivity », sur CNX-Software,
- ↑ (en) « Espressif ESP32-P4 – A 400 MHz general-purpose dual-core RISC-V microcontroller », sur CNX-Software,
- ↑ (en) « Espressif Reveals ESP32-P4: A High-Performance MCU with Numerous IO-Connectivity and Security Features », sur Espressif,
- (en) « ESP32-P4 Series Datasheet - Pre-release v0.5 », sur Espressif, p.38, il n'est pas parlé de l'extension standar RISC-V V pour le calcul vectoriel
- ↑ (en) « ESP32-PICO Series - Datasheet Version 1.1 », sur Espressif
- ↑ Hendry 2019.
- ↑ (en) « DSP on the ESP32 With Faust », sur faust.grame.fr
- ↑ (en) « MicroEJ Now Supports ESP32 Chipsets | Espressif Systems », sur www.espressif.com (consulté le )
- ↑ (en) « ESP32forth »
- ↑ « Cartes uPesy ESP32 », sur uPesy Electronics (consulté le )
- ↑ (en) Bokontep, « esp32soundsynth », sur compte Bokontep sur Gihub
- ↑ (en) Ivan Voras, « Working with ESP32 Audio Sampling », sur Toptal.com
- ↑ (en) Robert Manzke, « Eurorack audio synthesis platform », sur Hackaday.io,
- ↑ (en) Lewin Day, « Eurorack Synth Module Runs On ESP32 », sur Hackaday,
- ↑ (en) rma-31, « ESP32 real-time audio synthesis platform », sur ESP32.com,
- ↑ (en) raspy135, « Qun-synthesizer », sur compte raspy135 sur Github
- ↑ (en) Miguel Tarascó Acuña, Antonio Vázquez Blanco, « Hacking Bluetooth the Easy way with ESP32 HCI Commands and hidden features », Tralogic, (lire en ligne )
- ↑ Bogdan Bodnar, « Une faille alarmante découverte dans une puce embarquée dans plus d’un milliard d’appareils » , (consulté le )
- ↑ (en-US) Daniel Li, « - How to Size and Route PCB Trace? », (consulté le )
- ↑ « First Impressions of the ESP32 » (consulté le )
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, (ISBN 9781789953121)
- (en) Patrick Marchhart, ESP32 Light Controller, Grin Verlag (ISBN 9783668918344, OCLC 9783668918344)
- (es) Pedro Bertoleti, Proyectos com ESP32 y LORA (ISBN 9788595680661, OCLC 1123096640)
- (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 », (ISBN 9783645606615)
- (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 (OCLC 1016112028)
- (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-213 p. (ISBN 978-2-412-03746-1, BNF 45512787) (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, (OCLC 1122564653)
- Portail de l’électricité et de l’électronique
- Portail de l’informatique