ESP32
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 ESP32-C3, WiFi & BLE, 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 : 520 KiO 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 touché (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.
ESP32-S2
- Comporte deux 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
- WiFi 2.4 Ghz (IEEE 802.11b/g/n)[5]
- 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[6].
ESP32-PICO-D4
Il s'agit d'un System on Package (système dans un paquet) et non d'un SoC[7].
- 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-C3
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é. . Il permet l'utilisation de ESP-IDF, basé sur FreeRTOS [8], à une fréquence maximum de 160 MHz[9]., il apporte cependant de meilleur performances qu'un seul cœur LX7 à 160 MHz[10].
- 1 cœur RISC-V 32 bits jusqu'à 160 MHz
- Accélération du chiffrement
- WiFi 5.0 b/g/n 2.4 GHz, 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[11].
- 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 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[12],[13].
- 1 cœur RISC-V 32 bits jusqu'à 160 MHz
- Accélération du chiffrement
- 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 11b/g/n
- Bluetooth 5.0 LE (2 Mbps)
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[14], 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[15] ;
- 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[16] ;
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[17]
- 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[18]. L'échantillonnage utilisant l'ADC intégré peut être effectué via la plateforme de développement Arduino[19].
Il est notamment adapté à des synthétiseurs au format Eurorack, comme le CTAG-Strämpler[20],[21],[22].
Qun-synthesizer est un synthétiseur analogique portable, basé sur la carte ESP32-LyraT, fonctionnant avec la carte mère Nunomo[23].
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.
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 )
- « 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)
- (en) ESP32-C3 Datasheet (lire en ligne)
- (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 (lire en ligne)
- (en) Kerry Scharfglass, « New Part Day: Espressif ESP32-C6 Includes WiFi 6 And A RISC-V Core », sur Hackaday,
- 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 )
- « 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
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