electroimc.com

Confronto dei microcontrollori Espressif

Un gruppo di schede Espressif ESP8266 e ESP32-S2 Figura 1: Alcuni dei moduli prodotti dalla Espressif, come l'ESP8266 e ESP32-S2.

Di recente Espressif ha incredibilmente ridotto i cicli di release per i suoi microcontrollori, arrivando ad annunciare 3 nuovi modelli negli ultimi 6 mesi. Questo senza sacrificare l'innovazione, arrivando a presentare il primo microcontrollore con supporto a 802.11ax (Wi-Fi 6), l'ESP32-C6.

Data l'esplosione di microcontrollori, ho pensato di fare un po' di ordine con una tabella comparativa, che si può trovare di seguito e al seguente link su Github. Purtroppo la tabella non è completa perchè per gli ultimi 2 annunciati (ESP32-S3 e ESP32-C6) non sono stati ancora rilasciati i datasheet completi. Verrà aggiornata non appena tutte le informazioni saranno rese disponibili.

In tabella ho riportato tutti i modelli rilasciati da Espressif, ovvero ESP8266, ESP32, ESP32-S2, ESP32-C3, ESP32-S3, e l'ultimo arrivato ESP32-C6. Ovviamente il confronto con gli ultimi arrivati è impietoso (ormai son passato 7 anni dal suo rilascio), ma può essere utile per capire nel concreto i miglioramenti che sono avvenuti tra le varie release.

Ad ogni modo, noterete che con le ultime 2 release Espressif ha finalmente suddiviso i suoi processori in 2 macro gruppi. Il primo gruppo include i microprocessori di fascia alta, per dispositivi che non devono scendere a compromessi, mentre il secondo gruppo include quelli di fascia più economica, con un minor numero di funzionalità ma che beneficiano dalla connettività Wi-Fi e Bluetooth come i fratelli maggiori.

Inoltre, Espressif ha di recente rilasciato ESP Product Selector, un servizio per confrontare tutti i modelli disponibili in tutte le loro declinazioni e revisioni. Purtroppo è possibile confrontare solo 3 modelli alla volta, e non vengono riportate alcune informazioni che potrebbero essere rilevanti, quali DMA e timer disponibili, quindi per una panoramica più veloce ed efficace consiglio la tabella sopracitata.

Tabella 1: Confronto tra le famiglie Espressif
ESP8266 ESP32 ESP32-S2 ESP32-S3 ESP32-C3 ESP32-C6
Data di annuncio 2014, Agosto 2016, Settembre 2019, Settembre 2020, Dicembre 2020, Novembre 2021, Aprile
Processore principale Tensilica L106 32-bit (fino a 160MHz) Tensilica Xtensa 32-bit LX6 (fino a 240MHz) (dual core opzionale) Tensilica Xtensa 32-bit LX7 (fino a 240MHz) Tensilica Xtensa 32-bit LX7 dual core (fino a 240MHz) RISC-V 32-bit (fino a 160MHz) RISC-V 32-bit (fino a 160MHz)
SRAM 160KB 520KB 320KB 512KB 400KB 400KB
ROM 0 448KB 128KB 384KB 384KB 384KB
JTAG X ?
Cache 32 KB instruction 64KB 8/16KB (configurabile) ? 16KB ?
WiFi Wi-Fi 4 (solo fino a 72.2Mbps) Wi-Fi 4 Wi-Fi 4 Wi-Fi 4 Wi-Fi 4 Wi-Fi 6
Bluetooth X BLE 4.2 (aggiornamento a 5.0, con limitazioni) X BLE 5.0 BLE 5.0 BLE 5.0
Ethernet X X ? X ?
RTC memory 768B 16KB 16KB 16KB 8KB ?
PMU ? ?
Coprocessore ULP X ULP-RISC-V ? X ?
Acceleratore crittografico X SHA, RSA, AES, RNG SHA, RSA, AES, RNG, HMAC, Firma digitale SHA, RSA, AES, RNG, HMAC, Firma digitale SHA, RSA, AES, RNG, HMAC, Firma digitale SHA, RSA, AES, RNG, HMAC, Firma digitale
Secure boot X
Cifratura Flash X XTS-AES-128/256 XTS-AES-128 XTS-AES-128
SPI 2 4 4 ? 3 ?
I2C 1 2 2 ? 1 ?
I2S 1 2 1 ? 1 ?
UART 2 (solo un TX) 3 2 ? 2 ?
SDIO Host 0 1 0 2 0 0
SDIO Slave 0 1 0 0 0 0
GPIO 17 34 43 44 22 22
LED PWM 5 16 8 ? 6 ?
MCPWM 0 6 0 2 0 0
Contatore di impulsi 0 8 4 ? 0 X
GDMA* 0 0 0 ? 6 ?
USB X X USB OTG 1.1 ? Seriale / JTAG ?
TWAI** 0 1 1 ? 1 ?
ADC 1x 10-bit SAR 2x 12-bit SAR, fino a 18 canali 2x 13-bit SAR, fino a 20 canali ? 2x 12-bit SAR, fino a 6 canali ?
DAC X 2x 8-bit 2x 8-bit ? X X
RMT 1x trasmissione + 1x ricezione 8x trasmissione / ricezione 4x trasmissione / ricezione ? 2x trasmissione + 2x ricezione ?
Timer 2x 23-bit*** 4x 64-bit 4x 64-bit ? 2x 54-bit + 1x 52-bit ?
Sensore di temperatura ? ?
Sensore effetto Hall X X ? X ?
Sensore Touch 0 10 14 ? X ?

* Tutti i microcontrollori hanno il DMA. Quando il campo è segnato come "assente", significa che lo sviluppatore non ha il controllo diretto sulla periferica di DMA. Con il termine General DMA, Espressif intende una periferica DMA che può essere utlizzata da diverse perifiche e comandata dallo sviluppatore, assegnando in modo flessibile canali DMA alle periferche più critiche.

** Nei vecchi datasheet e in ancune documentazioni questa periferica è chiamata CAN bus.

*** Un timer è deidicato al Wi-Fi, quindi non può essere usato liberamente dallo sviluppatore.

Contributi e suggerimenti per migliorare le informazioni in tabella sono apprezzati!

Bibliografia e ulteriori letture

  1. Confronto dei microcontrollori Espressif
  2. ESP Product Selector
  3. Annuncio ufficiale di ESP32-C6

Totale: 7ms

Copyright 2014-2021 electroimc.com