Introduction à l'ESP32-S3
ESP32-S3 est un microcontrôleur SoC (System-on-Chip) commercialisé par Espressif, intégrant les fonctionnalités Wi-Fi 2,4 GHz et Bluetooth 5 (LE), y compris la prise en charge longue portée. Il est équipé d'un puissant processeur double cœur Xtensa® 32 bits LX7, cadencé à 240 MHz, et dispose de 512 Ko de mémoire SRAM (TCM) intégrée. De plus, la puce offre 45 broches GPIO programmables et une large gamme d'interfaces de communication. L'ESP32-S3 prend également en charge une mémoire flash SPI octale haute vitesse plus grande et une RAM externe, permettant aux utilisateurs de configurer la mise en cache des données et des instructions pour améliorer les performances.

Brochage ESP32-S3-DevKitC-1
L'ESP32-S3-DevKitC est une carte de développement basée sur le module ESP32-S3-WROOM-1. Elle est conçue pour aider les développeurs à prototyper et tester leurs projets avec le microcontrôleur de la série ESP32-S3. La carte offre une variété de fonctionnalités matérielles et de broches qui peuvent être utilisées pour connecter des périphériques et des capteurs. Vous trouverez ci-dessous une présentation du brochage de l'ESP32-S3-DevKitC :

Description du brochage
| Pin | Description |
|---|---|
| ESP32-S3-WROOM-1 Module | Main module with microcontroller, Wi-Fi, and Bluetooth. |
| USB-UART Bridge | Allows USB communication with ESP32-S3 module. |
| USB Port | Power and serial connection through USB. |
| BOOT Button | Puts ESP32-S3 into bootloader mode for firmware upload. |
| EN Button | Resets the ESP32-S3 module. |
| User Buttons | Two buttons for user-defined purposes. |
| User LEDs | LEDs controlled by the ESP32-S3 for visual feedback. |
| GPIO Pins | General Purpose Input/Output pins for various functions. |
| Analog Input Pins | Pins to read analog signals from sensors. |
| I2C Pins | Pins for I2C communication with sensors. |
| SPI Pins | Pins for high-speed communication with devices. |
| UART Pins | Pins for serial communication with other devices. |
| SD Card Slot | Slot for interfacing with SD cards. |
| JTAG Header | Header for advanced debugging and programming. |
| Power Supply Pins | Pins for 3.3V and GND connections. |
Processeur Xtensa LX7 32 bits
En ce qui concerne cette puce, vous vous posez peut-être des questions sur son processeur double cœur Xtensa 32 bits LX7 intégré, car la plupart des puces embarquées que nous voyons couramment sont principalement basées sur ARM. Xtensa est différent des cœurs ARM ; les processeurs de la série Xtensa LX offrent une forte reconfigurabilité et évolutivité, ce qui en fait un choix idéal pour les applications complexes et intensives de traitement des signaux numériques. Grâce à la technologie Xtensa, les ingénieurs concepteurs de systèmes peuvent sélectionner l'architecture souhaitée et créer de nouvelles instructions et unités d'exécution matérielles afin de concevoir des cœurs de processeur nettement plus puissants que ceux basés sur les méthodes traditionnelles. Le générateur Xtensa peut produire efficacement un ensemble complet d'outils logiciels, y compris un système d'exploitation, adaptés à la combinaison spécifique de chaque processeur. La nature personnalisable des processeurs Xtensa offre une grande flexibilité de conception et une efficacité élevée, ce qui en fait le choix optimal pour tous les systèmes monopuces hautement synthétisés. En combinant la reconfigurabilité matérielle et la programmation logicielle, les processeurs Xtensa améliorent non seulement les performances de calcul, mais offrent également une mise en œuvre facile à des fins de contrôle.

Applications de l'ESP32-S3
La puce basse consommation ESP32-S3 est spécialement conçue pour les appareils connectés à l'Internet des objets (IoT) et offre un large éventail d'applications. On peut affirmer sans risque de se tromper que presque tous les produits électroniques grand public actuellement disponibles sur le marché peuvent l'utiliser. Par exemple, les appareils électroménagers tels que les climatiseurs ou les cuiseurs à riz peuvent en être équipés pour permettre leur contrôle à distance et leur connectivité. Voici quelques domaines d'application spécifiques :
- Appareils électroménagers intelligents
- Hub universel de capteurs IoT à faible consommation
- Industrie automatisée
- Enregistreur de données IoT universel à faible consommation
- Assurance médicale
- Diffusion vidéo par caméra
- Électronique grand public
- Périphérique USB
- Agriculture intelligente
- Reconnaissance vocale
- Terminal de point de vente
- Identification d'images
- Robot de service
- Carte réseau Wi-Fi + Bluetooth
- Équipement audio
- Capteurs tactiles et de proximité
ESP32-S3 vs STM32
L'ESP32-S3 représente une évolution dans la conception des puces par rapport à la série STM32. Alors que les puces STM32 jouissent d'une réputation bien établie et sont largement utilisées dans diverses applications, la série ESP32 s'est stratégiquement positionnée en tête de peloton. En intégrant directement les fonctionnalités WiFi et Bluetooth dans le système sur puce (SoC), l'ESP32-S3 répond à la demande croissante d'appareils intelligents et connectés à l'ère de l'IoT.
Si les puces STM32 sont des microcontrôleurs puissants et polyvalents, elles peuvent nécessiter des composants ou des modules supplémentaires pour permettre la connectivité WiFi et Bluetooth. En revanche, l'ESP32-S3 offre la commodité d'une communication sans fil intégrée, réduisant ainsi le besoin de composants externes et simplifiant le processus de conception des applications IoT. Une comparaison des schémas fonctionnels de l'ESP32-S3 et du STM32F103XX permettrait de mettre en évidence cette avancée.


La décision d'Espressif d'équiper dès le départ l'ESP32 de fonctionnalités WiFi et Bluetooth lui a permis de tirer parti des nouvelles tendances et de répondre aux besoins changeants de l'industrie électronique. Avec l'importance croissante de la connectivité Internet et des communications sans fil, les fonctionnalités intégrées de l'ESP32-S3 répondent parfaitement aux exigences des produits électroniques modernes.
De plus, la série ESP32-S3 offre non seulement le WiFi et le Bluetooth, mais aussi des améliorations en termes de performances, d'efficacité énergétique et de facilité d'utilisation. Bien que la série STM32 puisse encore présenter certains avantages en termes de performances brutes et de stabilité, l'ESP32-S3 rattrape rapidement son retard et a déjà gagné en popularité dans diverses applications IoT et appareils connectés.
Fabrication d'une carte à microcontrôleur avec ESP32-S3
Pour appliquer la puce ESP32-S3 à des produits pratiques, elle doit être encapsulée et complétée par des circuits périphériques et des ports d'E/S de communication pour la communication avec des appareils externes. Par exemple, pour créer un dispositif de contrôle d'accès par reconnaissance faciale, une interface caméra est nécessaire pour connecter une caméra externe pour l'acquisition et le traitement d'images, un circuit d'antenne pour la connectivité WiFi ou Bluetooth, et une mémoire flash SPI pour stocker de grandes quantités de données. La figure suivante est le schéma officiel du circuit, qui comprend généralement environ 20 résistances, condensateurs, inductances, un oscillateur à quartz passif et une mémoire flash SPI.

Si vous trouvez la conception de ces circuits difficile, vous pouvez opter pour des modules ESP32-S3 pré-conçus et pré-assemblés. L'utilisation de modules peut raccourcir notre cycle de développement, mais cela peut entraîner un coût plus élevé. Nous pouvons également développer des modules en suivant le schéma officiel fourni par Espressif. Les modules officiellement commercialisés par Espressif sont présentés dans l'image suivante.


Les modules commercialisés par Espressif seront disponibles en différents modèles. En réalité, la puce centrale est la même que celle de l'ESP32-S3. La différence entre les différents modèles réside dans la taille de la mémoire Flash et de la PSRAM hors puce. Le modèle avec la configuration la plus élevée officiellement commercialisé est l'ESP32-S3-WROOM-1-N16R8, qui dispose de 16 Mo de mémoire Flash et de 8 Mo de mémoire PSRAM. Je pense que cette configuration est suffisante pour notre développement :
| Model | Flash2 | PSRAM | Ambient temperature (℃) | Module size (mm) |
|---|---|---|---|---|
| ESP32-S3-WROOM-1-N4 | 4 MB (Quad SPI) | - | -40~85 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-N8 | 8 MB (Quad SPI) | - | -40~85 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-N16 | 16 MB (Quad SPI) | - | -40~85 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-H4 | 4 MB (Quad SPI) | - | -40~105 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-N4R2 | 4 MB (Quad SPI) | 2 MB (Quad SPI) | -40~85 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-N8R2 | 8 MB (Quad SPI) | 2 MB (Quad SPI) | -40~85 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-N16R2 | 16 MB (Quad SPI) | 2 MB (Quad SPI) | -40~85 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-N4R8 | 4 MB (Quad SPI) | 8 MB (Octal SPI) | -40~65 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-N8R8 | 8 MB (Quad SPI) | 8 MB (Octal SPI) | -40~65 | 18.0 * 25.5 * 3.1 |
| ESP32-S3-WROOM-1-N16R8 | 16 MB (Quad SPI) | 8 MB (Octal SPI) | -40~65 | 18.0 * 25.5 * 3.1 |
Nous pouvons utiliser ces modules packagés pour concevoir une carte micro-ordinateur à puce unique dotée de fonctions spécifiques. Si vous souhaitez créer une carte de développement avec des fonctions générales, la méthode courante consiste à faire sortir toutes les E/S du module, afin que les utilisateurs puissent l'utiliser selon leurs besoins. Vous pouvez connecter vous-même des périphériques externes. J'ai donc conçu une mini-carte de développement ESP32-S3 à usage général, comme le montre la figure ci-dessous :
Carte d'extension de conception avec ESP32-S3
Toutes les cartes de développement ne nécessitent pas la conception de cartes d'extension. Il suffit de concevoir directement les interfaces externes correspondantes lors de la conception de la carte de développement. Mais cela pose un problème. Si nous devons fabriquer d'autres produits, il faut repenser entièrement la carte de développement, ce qui entraîne une perte de temps et des coûts matériels supplémentaires. Mon idée est que notre carte de développement principale reste inchangée et que nous puissions concevoir des cartes d'extension avec des interfaces correspondantes en fonction des besoins du produit, afin que notre temps de développement soit beaucoup plus rapide, car il est très facile de concevoir des cartes d'interface externes. Une autre raison est que si certaines fonctions de notre carte principale tombent en panne et ne peuvent être réparées, nous n'avons besoin que d'une meilleure carte principale et nous n'avons pas besoin d'apporter de modifications aux cartes d'extension connectées à des périphériques externes.
Ici, afin de faciliter notre apprentissage et le développement de l'ESP32-S3, nous utiliserons différentes fonctions. Il est impossible de mettre toutes ces fonctions sur une seule carte de développement, ce qui entraînerait un coût trop élevé. Il sera beaucoup plus pratique de choisir des cartes d'extension moins coûteuses et ne comportant que des fonctions spécifiques en fonction des différents besoins d'apprentissage. Cela nous permettra de démarrer plus facilement. J'ai d'abord conçu une carte d'extension qui connecte divers capteurs, comme le montre la figure ci-dessous :




