Esp8266: differenze tra le versioni

Da EigenWiki.
Vai alla navigazione Vai alla ricerca
(Chiarimenti e correzioni)
m (Aggiunto die-shot)
 
(3 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
=== Hardware ===
=== Hardware ===
Informazioni sulla famiglia NodeMCU: https://www.esp8266.com/wiki/doku.php?id=esp8266-module-family
Schematiche: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/NODEMCU_DEVKIT_V1.0.PDF
Schematiche: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/NODEMCU_DEVKIT_V1.0.PDF


Pinout: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/Documents/NODEMCU_DEVKIT_V1.0_PINMAP.png
Pinout: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/Documents/NODEMCU_DEVKIT_V1.0_PINMAP.png


Die shot: https://zeptobars.com/en/read/Espressif-ESP8266-wifi-serial-rs232-ESP8089-IoT


==== Caveat ====  
==== Caveat ====  
Riga 9: Riga 12:
* D4 (GPIO2) e D8 (GPIO15) all'avvio devono essere rispettivamente HI e LOW (tramite dei pull-up/down già presenti), per cui *dovrebbero* essere usati come output.
* D4 (GPIO2) e D8 (GPIO15) all'avvio devono essere rispettivamente HI e LOW (tramite dei pull-up/down già presenti), per cui *dovrebbero* essere usati come output.
* D9 (GPIO3) e D10 (GPIO1) sono condivisi con la seriale (RXD0 e TXD0).
* D9 (GPIO3) e D10 (GPIO1) sono condivisi con la seriale (RXD0 e TXD0).
* D0 (GPIO16) è stupido, può essere solo scritto/letto, ma non supporta PWM o qualunque altra cosa. È usato per risvegliare il processore.
* D11 (GPIO9) e D12 (GPIO10) sono sul lato opposto, ed etichettate come SD2 e SD3.
* D11 (GPIO9) e D12 (GPIO10) sono sul lato opposto, ed etichettate come SD2 e SD3.
* D11 (e forse anche D12 - non testato) non funziona come PWM, ma funziona come input (con interrupt).
* I pin etichettati con SD* (compresi SD2 e SD3) sono i pin SPI, e sono collegati internamente alla flash.
* D0 (GPIO16) è stupido, può essere solo scritto/letto, ma non supporta PWM o qualunque altra cosa. È usato per risvegliare il processore.
* SD3 (D12) può essere usato come PWM/interrupt (a proprio rischio e pericolo, visto che è connesso anche alla flash), mentre il medesimo uso di SD2 (D11) provoca un reset e riavvio del sistema.


Complessivamente vi sono 10 GPIO completamente funzionali, 12 se si rinuncia alla seriale.


Complessivamente vi sono 8 GPIO completamente funzionali, 10 se si rinuncia alla seriale, e 11 usando uno dei pin usati per la flash.


=== Installazione toolchain ===
=== Installazione toolchain ===
Si raccolgono qui le procedure di installazione della toolchain per programmare l'Esp8266, nei vari casi d'uso.
Si raccolgono qui le procedure di installazione della toolchain per programmare l'Esp8266, nei vari casi d'uso.


Riga 26: Riga 29:
==== Arch Linux ====
==== Arch Linux ====
La procedura generica non funziona, almeno non con l'ultima versione di GCC.
La procedura generica non funziona, almeno non con l'ultima versione di GCC.
È disponibile un pacchetto aur.
È disponibile un [https://aur.archlinux.org/packages/esp-open-sdk-git/ pacchetto AUR]:
 
  $ git clone https://aur.archlinux.org/esp-open-sdk-git.git
  $ git clone https://aur.archlinux.org/esp-open-sdk-git.git
  $ makepkg -si
  $ makepkg -si
Riga 34: Riga 36:


Installare esptool:
Installare esptool:
  # pacman -S esptool
  # pacman -S esptool


Riga 53: Riga 54:


A questo scopo si può usare esplorer (https://github.com/4refr0nt/ESPlorer), disponibile in AUR per Arch.
A questo scopo si può usare esplorer (https://github.com/4refr0nt/ESPlorer), disponibile in AUR per Arch.
[[Categoria:Hardware]]
[[Categoria:HowTo]]
[[Categoria:Elettronica]]

Versione attuale delle 17:54, 2 giu 2018

Hardware

Informazioni sulla famiglia NodeMCU: https://www.esp8266.com/wiki/doku.php?id=esp8266-module-family

Schematiche: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/NODEMCU_DEVKIT_V1.0.PDF

Pinout: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/Documents/NODEMCU_DEVKIT_V1.0_PINMAP.png

Die shot: https://zeptobars.com/en/read/Espressif-ESP8266-wifi-serial-rs232-ESP8089-IoT

Caveat

  • D3 (GPIO0) DEVE essere usato come output, visto che è condiviso con la funzione di flash, se è basso all'avvio il SoC entra in modalità flash.
  • D4 (GPIO2) e D8 (GPIO15) all'avvio devono essere rispettivamente HI e LOW (tramite dei pull-up/down già presenti), per cui *dovrebbero* essere usati come output.
  • D9 (GPIO3) e D10 (GPIO1) sono condivisi con la seriale (RXD0 e TXD0).
  • D0 (GPIO16) è stupido, può essere solo scritto/letto, ma non supporta PWM o qualunque altra cosa. È usato per risvegliare il processore.
  • D11 (GPIO9) e D12 (GPIO10) sono sul lato opposto, ed etichettate come SD2 e SD3.
  • I pin etichettati con SD* (compresi SD2 e SD3) sono i pin SPI, e sono collegati internamente alla flash.
  • SD3 (D12) può essere usato come PWM/interrupt (a proprio rischio e pericolo, visto che è connesso anche alla flash), mentre il medesimo uso di SD2 (D11) provoca un reset e riavvio del sistema.


Complessivamente vi sono 8 GPIO completamente funzionali, 10 se si rinuncia alla seriale, e 11 usando uno dei pin usati per la flash.

Installazione toolchain

Si raccolgono qui le procedure di installazione della toolchain per programmare l'Esp8266, nei vari casi d'uso.

Linux generico

Arch Linux

La procedura generica non funziona, almeno non con l'ultima versione di GCC. È disponibile un pacchetto AUR:

$ git clone https://aur.archlinux.org/esp-open-sdk-git.git
$ makepkg -si

Il PKGBUILD scaricherà e compilerà il toolchain. La procedura è decisamente lenta (>40 min).

Installare esptool:

# pacman -S esptool

Download firmware con supporto LUA

$ git clone https://github.com/nodemcu/nodemcu-firmware

Collegare l'ESP tramite una MicroUSB al computer, e verificare il funzionamento:

$ esptool --port <serial-port> flash_id

In questo modo, fra le altre cose si vedono le specifiche della scheda e le dimensioni della flash (typ. 4MB).

A questo punto è possibile compilare e flashare il firmware:

$ cd nodemcu-firmware
$ make
$ make flash4m

A questo punto il dispositivo dovrebbe essere pronto ad accogliere i file .lua!

A questo scopo si può usare esplorer (https://github.com/4refr0nt/ESPlorer), disponibile in AUR per Arch.