ESP32: Dettagli interni e piedinatura

In questo articolo, parleremo dei dettagli interni e del pinning di ESP32. Ti mostrerò come identificare correttamente i pin guardando il foglio dati, come identificare quale dei pin funziona come OUTPUT / INPUT, come avere una panoramica dei sensori e delle periferiche che ESP32 ci offre, oltre al stivale. Pertanto, credo che, con il video qui sotto, sarò in grado di rispondere a diverse domande che ho ricevuto in messaggi e commenti sui riferimenti ESP32, tra le altre informazioni.

Passaggio 1: Nodo MCU ESP-WROOM-32

Qui abbiamo il PINOUT del

WROOM-32 che funge da buon riferimento per la programmazione. È importante prestare attenzione agli input / output per uso generale (GPIO), ovvero alle porte di input e output di dati programmabili, che possono comunque essere un convertitore AD o un pin touch, come GPIO4, ad esempio. Ciò si verifica anche con Arduino, in cui i pin di input e output possono anche essere PWM.

Passaggio 2: ESP-WROOM-32

Nell'immagine sopra, abbiamo l'ESP32 stesso. Esistono diversi tipi di inserti con caratteristiche diverse a seconda del produttore.

Passaggio 3: Ma quale può essere il corretto pinout da utilizzare per il mio ESP32?

ESP32 non è difficile. È così facile che possiamo dire che non ci sono problemi didattici nel tuo ambiente. Tuttavia, dobbiamo essere didattici, sì. Se vuoi programmare in Assembler, va bene. Ma i tempi di ingegneria sono costosi. Quindi, se tutto ciò che è un fornitore di tecnologia ti dà uno strumento che richiede tempo per comprenderne il funzionamento, questo può facilmente diventare un problema per te, perché tutto ciò aumenterà i tempi di progettazione, mentre il prodotto sta diventando sempre più costoso. Questo spiega la mia preferenza per le cose facili, quelle che possono semplificarci la vita di tutti i giorni, perché il tempo è importante, specialmente nel mondo frenetico di oggi.

Ritornando a ESP32, in un foglio dati, come in quello sopra, abbiamo l'identificazione pin corretta nei punti salienti. Spesso, l'etichetta sul chip non corrisponde al numero effettivo del pin, poiché abbiamo tre situazioni: il GPIO, il numero di serie e anche il codice della scheda stessa.

Come mostrato nell'esempio seguente, abbiamo un collegamento di un LED nell'ESP e la modalità di configurazione corretta:

Si noti che l'etichetta è TX2, ma dobbiamo seguire l'identificazione corretta, come evidenziato nell'immagine precedente. Pertanto, l'identificazione corretta del pin sarà 17. L'immagine mostra quanto vicino dovrebbe rimanere il codice.

Passaggio 4: INPUT / OUTPUT

Durante l'esecuzione dei test INPUT e OUTPUT sui pin, abbiamo ottenuto i seguenti risultati:

INPUT non ha funzionato solo su GPIO0.

OUTPUT non ha funzionato solo sui pin GPIO34 e GPIO35, che sono rispettivamente VDET1 e VDET2.

* I pin VDET appartengono al dominio di potenza dell'RTC. Ciò significa che possono essere utilizzati come pin ADC e che il coprocessore ULP può leggerli. Possono solo essere voci e non uscire mai.

Passaggio 5: diagramma a blocchi

Questo diagramma mostra che ESP32 ha dual core, un'area chip che controlla il WiFi e un'altra area che controlla il Bluetooth. Ha anche un'accelerazione hardware per la crittografia, che consente la connessione a LoRa, una rete interurbana che consente una connessione fino a 15 km, utilizzando un'antenna. Osserviamo anche il generatore di clock, l'orologio in tempo reale e altri punti che coinvolgono, ad esempio, PWM, ADC, DAC, UART, SDIO, SPI, tra gli altri. Tutto ciò rende il dispositivo abbastanza completo e funzionale.

Passaggio 6: periferiche e sensori

ESP32 ha 34 GPIO che possono essere assegnati a varie funzioni, come:

Solo digitale;

Abilitato per analogico (può essere configurato come digitale);

Abilitato per tocco capacitivo (può essere configurato come digitale);

E altri.

È importante notare che la maggior parte dei GPIO digitali può essere configurata come pull-up o pull-down interno o configurata per alta impedenza. Se impostato come input, il valore può essere letto attraverso il registro.

Passaggio 7: GPIO

Convertitore analogico-digitale (ADC)

Esp32 integra ADC a 12 bit e supporta misurazioni su 18 canali (pin abilitati analogici). Il coprocessore ULP nell'ESP32 è inoltre progettato per misurare le tensioni durante il funzionamento in modalità di sospensione, che consente un basso consumo energetico. La CPU può essere riattivata da un'impostazione di soglia e / o tramite altri trigger.

Convertitore digitale-analogico (DAC)

È possibile utilizzare due canali DAC a 8 bit per convertire due segnali digitali in due uscite di tensione analogiche. Questi DAC doppi supportano l'alimentazione come riferimento di tensione in ingresso e possono pilotare altri circuiti. I canali doppi supportano conversioni indipendenti.

Passaggio 8: sensori

Touch Sensor

ESP32 ha 10 GPIO a rilevamento capacitivo che rilevano variazioni indotte quando si tocca o si avvicina a un GPIO con un dito o altri oggetti.

L'ESP32 ha anche un sensore di temperatura e un sensore Hall interno, ma per lavorare con essi è necessario modificare le impostazioni dei registri. Per maggiori dettagli, consultare il manuale tecnico tramite il link:

//www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf

Passaggio 9: cane da guardia

L'ESP32 ha tre timer di sorveglianza: uno su ciascuno dei due moduli timer (chiamato Timer watchdog primario o MWDT) e uno sul modulo RTC (chiamato Timer watchdog RTC o RWDT).

Passaggio 10: Bluetooth

Interfaccia Bluetooth v4.2 BR / EDR e Bluetooth LE (a basso consumo energetico)

ESP32 integra un controller di connessione Bluetooth e una banda base Bluetooth, che eseguono protocolli in banda base e altre routine di collegamento di basso livello, come modulazione / demodulazione, elaborazione di pacchetti, elaborazione di bit-stream, salto di frequenza, ecc.

Il controller di connessione funziona in tre stati principali: standby, connessione e sniff. Consente connessioni multiple e altre operazioni, come la richiesta, la pagina e l'associazione semplice sicura, e quindi consente Piconet e Scatternet.

Passaggio 11: avvio

Su molte schede di sviluppo con USB / seriale incorporato, esptool.py può ripristinare automaticamente la scheda in modalità di avvio.

ESP32 entrerà nel caricatore di avvio seriale quando GPIO0 viene mantenuto basso sul ripristino. Altrimenti, eseguirà il programma in flash.

GPIO0 ha una resistenza pullup interna, quindi se è senza una connessione, andrà in alto.

Molte schede usano un pulsante "Flash" (o "BOOT" su alcune schede di sviluppo Espressif) che porta il GPIO0 verso il basso quando viene premuto.

GPIO2 dovrebbe anche essere lasciato scollegato / mobile.

Nell'immagine sopra, puoi vedere un test che ho eseguito. Ho messo l'oscilloscopio su tutti i pin dell'ESP per vedere cosa è successo quando è stato acceso. Ho scoperto che quando ottengo un pin, genera oscillazioni di 750 microsecondi, come mostrato nell'area evidenziata sul lato destro. Cosa possiamo fare al riguardo? Abbiamo diverse opzioni, come dare un ritardo con un circuito con un transistor, ad esempio un espansore della porta. Sottolineo che GPIO08 è invertito. L'oscillazione esce verso l'alto e non verso il basso.

Un altro dettaglio è che abbiamo alcuni pin che iniziano in alto e altri in basso. Pertanto, questo PINOUT è un riferimento a quando ESP32 si accende, specialmente quando si lavora con un carico per attivare, ad esempio, un triac, un relè, un contattore o un po 'di corrente.

Articoli Correlati