Introduzione a ESP32-S3
ESP32-S3 è un MCU System-on-Chip (SoC) rilasciato da Espressif, che integra funzionalità Wi-Fi a 2,4 GHz e Bluetooth 5 (LE), incluso il supporto Long Range. È dotato di una potente CPU Xtensa® a 32 bit LX7 dual-core, con una velocità di clock fino a 240 MHz, e dispone di 512 KB di SRAM integrata (TCM). Inoltre, il chip offre 45 pin GPIO programmabili e un’ampia gamma di interfacce di comunicazione. ESP32-S3 supporta anche flash Octal SPI ad alta velocità più grandi e RAM esterna, consentendo agli utenti di configurare la memorizzazione nella cache di dati e istruzioni per migliorare le prestazioni.

Schema dei pin ESP32-S3-DevKitC-1
ESP32-S3-DevKitC è una scheda di sviluppo basata sul modulo ESP32-S3-WROOM-1. È progettata per aiutare gli sviluppatori a prototipare e testare i loro progetti con il microcontrollore della serie ESP32-S3. La scheda offre una varietà di funzionalità hardware e pin che possono essere utilizzati per connettere periferiche e sensori. Di seguito è riportata un’introduzione allo schema dei pin di ESP32-S3-DevKitC:

Descrizione dello schema dei pin
| 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. |
Processore Xtensa LX7 a 32 bit
Riguardo a questo chip, potresti avere domande sul suo processore dual-core Xtensa a 32 bit LX7 integrato, poiché la maggior parte dei chip embedded che vediamo comunemente sono principalmente basati su ARM. Xtensa è diverso dai core ARM; i processori della serie Xtensa LX offrono una forte riconfigurabilità e scalabilità, rendendoli una scelta ideale per applicazioni complesse e intensive di elaborazione del segnale digitale. Con la tecnologia Xtensa, gli ingegneri del sistema possono selezionare l’architettura dell’unità desiderata e creare nuove istruzioni e unità di esecuzione hardware per progettare core di processore significativamente più potenti di quelli basati su metodi tradizionali. Il generatore Xtensa può produrre in modo efficiente un set di strumenti software completi, incluso un sistema operativo, su misura per ogni combinazione specifica del processore. La natura personalizzabile dei processori Xtensa consente una grande flessibilità nella progettazione e un’elevata efficienza, rendendoli la scelta ottimale per tutti i sistemi monolitici altamente sintetizzati. Impiegando una combinazione di riconfigurabilità hardware e programmazione software, i processori Xtensa non solo migliorano le prestazioni computazionali, ma offrono anche facilità di implementazione per scopi di controllo.

Applicazioni di ESP32-S3
Il chip a basso consumo ESP32-S3 è specificamente progettato per i dispositivi Internet of Things (IoT) e ha un’ampia gamma di applicazioni. Si può tranquillamente dire che quasi tutti i prodotti elettronici di consumo sul mercato oggi possono utilizzarlo. Ad esempio, gli elettrodomestici come i condizionatori d’aria o le cuociriso possono essere dotati di esso per abilitare il controllo remoto e la connettività. Alcune aree di applicazione specifiche includono:
- Elettrodomestici intelligenti
- Hub di sensori IoT a basso consumo universale
- Industria automatizzata
- Data logger IOT a basso consumo universale
- Assicurazione medica
- Streaming video della fotocamera
- Elettronica di consumo
- Dispositivo USB
- Agricoltura intelligente
- Riconoscimento vocale
- Macchina POS
- Identificazione delle immagini
- Robot di servizio
- Scheda di rete Wi-Fi + Bluetooth
- Apparecchiature audio
- Rilevamento tattile e di prossimità
ESP32-S3 Vs STM32
L’ESP32-S3 rappresenta un’evoluzione nel design dei chip rispetto alla serie STM32. Mentre i chip STM32 hanno una reputazione consolidata e sono ampiamente utilizzati in varie applicazioni, la serie ESP32 si è posizionata strategicamente all’avanguardia. Integrando direttamente le funzionalità WiFi e Bluetooth nel System-on-Chip (SoC), l’ESP32-S3 soddisfa la crescente domanda di dispositivi intelligenti e connessi nell’era dell’IoT.
Mentre i chip STM32 sono microcontrollori potenti e versatili, potrebbero richiedere componenti o moduli aggiuntivi per abilitare la connettività WiFi e Bluetooth. Al contrario, l’ESP32-S3 offre la comodità di una comunicazione wireless integrata, riducendo la necessità di componenti esterni e semplificando il processo di progettazione per le applicazioni IoT. Un confronto dei diagrammi funzionali dell’ESP32-S3 e STM32F103XX rivelerebbe questo progresso.


La decisione di Espressif di dotare l’ESP32 di funzionalità WiFi e Bluetooth fin dall’inizio ha permesso loro di sfruttare le tendenze emergenti e rispondere alle mutevoli esigenze dell’industria elettronica. Con la crescente importanza della connettività internet e della comunicazione wireless, le funzionalità integrate dell’ESP32-S3 si allineano perfettamente alle esigenze dei moderni prodotti elettronici.
Inoltre, la serie ESP32-S3 offre non solo WiFi e Bluetooth, ma vanta anche miglioramenti in termini di prestazioni, efficienza energetica e facilità d’uso. Sebbene la serie STM32 possa ancora avere alcuni vantaggi in termini di prestazioni pure e stabilità, l’ESP32-S3 si sta rapidamente recuperando e ha già guadagnato popolarità in varie applicazioni IoT e dispositivi connessi.
Creazione di una scheda microcontroller con ESP32-S3
Per applicare il chip ESP32-S3 a prodotti pratici, è necessario confezionarlo e integrarlo con circuiti periferici e porte di comunicazione IO per la comunicazione con dispositivi esterni. Ad esempio, per creare un dispositivo di controllo accessi con riconoscimento facciale, è necessaria un’interfaccia fotocamera per collegare una fotocamera esterna per l’acquisizione e l’elaborazione delle immagini, un circuito antenna per la connettività WiFi o Bluetooth e una flash SPI per archiviare grandi quantità di dati. La figura seguente è lo schema ufficiale del circuito, che generalmente include circa 20 resistori, condensatori, induttori, un oscillatore a cristallo passivo e una flash SPI.

Se trovi impegnativo progettare questi circuiti, puoi optare per moduli ESP32-S3 pre-progettati e confezionati. L’utilizzo di moduli può ridurre il nostro ciclo di sviluppo, ma potrebbe comportare un costo più elevato. In alternativa, possiamo sviluppare moduli seguendo lo schema ufficiale fornito da Espressif. I moduli rilasciati ufficialmente da Espressif sono mostrati nella seguente immagine.


I moduli rilasciati da Espressif avranno diversi modelli. In realtà, il chip principale è lo stesso dell’ESP32-S3. La differenza tra i diversi modelli risiede nella dimensione della Flash e della PSRAM off-chip. Il modello con la configurazione più alta rilasciato ufficialmente è ESP32-S3- WROOM-1-N16R8, ha 16 MB di Flash e 8 MB di PSRAM, penso che questa configurazione sia sufficiente per il nostro sviluppo:
| 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 |
Possiamo utilizzare questi moduli confezionati per progettare una scheda microcomputer a chip singolo con funzioni specifiche. Se vuoi realizzare una scheda di sviluppo con funzioni generali, il metodo comune è quello di far uscire tutti gli IO del modulo, in modo che gli utenti possano utilizzarlo in base alle proprie esigenze. Puoi collegare dispositivi esterni da solo, quindi ho progettato una mini scheda di sviluppo ESP32-S3 di uso generale, come mostrato nella figura seguente:
Progettazione di una scheda di espansione con ESP32-S3
Non tutti i board di sviluppo necessitano di progettare board di espansione, è sufficiente progettare direttamente le corrispondenti interfacce esterne durante la progettazione del board di sviluppo. Ma questo causerà un problema. Se dobbiamo realizzare altri prodotti, l’intero board di sviluppo deve essere riprogettato, il che causerà alcuni sprechi di tempo e costi hardware. La mia idea è che il nostro board di sviluppo principale rimanga invariato e possiamo progettare alcuni board di espansione con le corrispondenti interfacce in base alle esigenze del prodotto, in modo che il nostro tempo di sviluppo sia molto più veloce, perché è molto facile progettare board di interfacce esterne. Un’altra ragione è che se alcune funzioni sulla nostra scheda principale falliscono e non possono essere riparate, abbiamo solo bisogno di una scheda principale migliore e non dobbiamo apportare modifiche alle schede di espansione collegate ai dispositivi esterni.
Qui, per facilitare il nostro apprendimento e sviluppo di ESP32-S3, utilizzeremo diverse funzioni. È impossibile mettere tutte queste funzioni su un unico board di sviluppo, il che causerebbe un costo troppo elevato. Sarà molto più conveniente se scegliamo board di espansione a basso costo e con funzioni specifiche in base alle diverse esigenze di apprendimento. Questo ci facilita l’avvio. Ho prima progettato una scheda di espansione che collega vari sensori, come mostrato nella figura seguente:




