ESP32

ESP32
Crédit image:
licence CC BY-SA 4.0 🛈
Développeur
Fabricant
Date de sortie
Fonctions
Type

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 , 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, 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

Schéma fonctionnel de l'ESP32

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 :
  • Sécurité :
  • Gestion de l'énergie :
    • low-dropout regulator 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.

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[5]
  • 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

Crédit image:
licence CC BY-SA 4.0 🛈
Carte NodeMCU équipé d'un ESP32-C3-32S

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ériel 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[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
  • 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[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.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[12],[13].

  • 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[14],[15].

  • 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[16],[17] :

  • 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.
  • 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 utilise 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)

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[18], interface en Java, développement en C++ ;
  • Espruino  ;
  • ESPHome, spécialisé domotique, comportant une interface web pour l'interaction ;
  • FAUST, langage de programmation de traitement de données audio, utilisant son DSP[19] ;
  • Lua RTOS pour ESP32 ;
  • MicroPython, une variante pour l'embarqué du langage Python ;
  • mruby , une variante pour l'embarqué du langage Ruby ;
  • NodeMCU ;
  • MicroEJ[20] ;
  • ESP32forth, programmation en Forth 32 bits pour ESP32[21]

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[22]
  • 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[23]. L'échantillonnage utilisant l'ADC intégré peut être effectué via la plateforme de développement Arduino[24].

Il est notamment adapté à des synthétiseurs au format Eurorack, comme le CTAG-Strämpler[25],[26],[27].

Qun-synthesizer est un synthétiseur analogique portable, basé sur la carte ESP32-LyraT, fonctionnant avec la carte mère Nunomo[28].

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

  1. (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,
  2. (en) Jean-Luc Aufranc, « ESP32-C3 WiFi & BLE RISC-V processor is pin-to-pin compatible with ESP8266 », sur CNX-Software,
  3. (en) Jean-Luc Aufranc, « ESP32 Arduino 2.0.0 release adds ESP32-C3 and ESP32-S2 support », sur CNX-Sotware
  4. (en) « ESP32 Datasheet », Espressif Systems, (consulté le )
  5. a et b « ESP32-S2 Family Datasheet v1.3 »,
  6. « ESP32-S3 Datasheet v1.1 »,
  7. (en) « ESP32-PICO-D4 System-in-Package Combines ESP32, 4MB SPI Flash, a Crystal Oscillator, and Passive Components », sur CNX-Software,
  8. (en) ESP32C3 Series - Datasheet, Espressif Systems, (lire en ligne), p. 17
  9. (en) « ESP32-C3 Datasheet », sur Espresssif
  10. (en) Elliot Williams, « Hands-On: The RISC-V ESP32-C3 Will Be Your New ESP8266 », sur Hackaday,
  11. Jean-Luc Aufranc, « ESP32-C5 RISC-V IoT MCU supports dual-band WiFi 6, Bluetooth 5.0 LE », sur CNX-Software,
  12. (en) « ESP32-C6 Datasheet », sur Espresssif
  13. (en) Kerry Scharfglass, « New Part Day: Espressif ESP32-C6 Includes WiFi 6 And A RISC-V Core », sur Hackaday,
  14. (en) « ESP32-C61: Delivering Affordable Wi-Fi 6 Connectivity », sur Espresssif
  15. (en) Tomisin Olujinmi, « Espressif announces the ESP32-C61 WiFi 6 SoC with improved affordability and wireless connectivity », sur CNX-Software,
  16. (en) « Espressif ESP32-P4 – A 400 MHz general-purpose dual-core RISC-V microcontroller », sur CNX-Software,
  17. (en) « Espressif Reveals ESP32-P4: A High-Performance MCU with Numerous IO-Connectivity and Security Features », sur Espressif,
  18. Hendry 2019.
  19. (en) « DSP on the ESP32 With Faust », sur faust.grame.fr
  20. (en) « MicroEJ Now Supports ESP32 Chipsets | Espressif Systems », sur www.espressif.com (consulté le )
  21. (en) « ESP32forth »
  22. « Cartes uPesy ESP32 », sur uPesy Electronics (consulté le )
  23. (en) Bokontep, « esp32soundsynth », sur compte Bokontep sur Gihub
  24. (en) Ivan Voras, « Working with ESP32 Audio Sampling », sur Toptal.com
  25. (en) Robert Manzke, « Eurorack audio synthesis platform », sur Hackaday.io,
  26. (en) Lewin Day, « Eurorack Synth Module Runs On ESP32 », sur Hackaday,
  27. (en) rma-31, « ESP32 real-time audio synthesis platform », sur ESP32.com,
  28. (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)