Sei sulla pagina 1di 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

Rapsberry Pi: il connettore GPIO


Elettronica, per passione - Idee per chi gioca con l'elettronica (... o ci lavora)
Raspberry Pi possiede diverse interfacce tipiche dei PC: ethernet, USB, HDMI, audio
e video analogico. Sono presenti anche altre interfacce proprietarie, per esempio
l'interfaccia verso la webcam 1080p.
In questo tutorial si far riferimento solo a GPIO: 26 (o 40) pin di facile accesso fisico
attraverso cui possibile utilizzare una serie di segnali di ingresso/uscita digitali,
diversi bus seriali (I2C, SPI, seriale asincrono) e le alimentazioni di 3.3 V e 5 V.

Il connettore meccanico
Il connettore GPIO originale costituito da 26 pin disposti su due file, distanziati tra
di loro di un decimo di pollice (2,54 mm). Se avete il Rasberry B+, (qui altre
informazioni) i pin sono 40, con analoga disposizione.

http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 1 of 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

La numerazione di pin quella indicata nella figura di apertura: i pin con numeri pari
sono quelli verso il bordo del circuito stampato, quelli con numero dispari all'interno.
Questa non la numerazione standard dei circuiti integrati, ma quella tipica dei
connettori.
Il pin numero 1 il pi vicino alla scheda SD; identificato sul circuito stampato da
un piccolo rettangolo bianco con la scritta P1; guardando al lato opposto, l'unico che
ha un pad in rame di forma quadrata e non circolare.

Flat cable (cavo piatto)


Il primo modo per realizzare il collegamento tra Raspberry Pi ed il mondo esterno
l'uso di un cavo piatto a 13x2 (oppure 20x2) poli. E' il metodo preferito per collegare
un circuito stampato, oppure quando c' la necessit di usare numerosi fili.
Il cavo formato da 26 (40) fili uniti tra di loro, numerati da 1 a 26 (da 1 a 40) a
partire da quello rosso (o di altro colore diverso dagli altri, ovviamente). Il connettore
a perforazione di isolante, cio si monta a pressione, senza spelare i fili, usando per
esempio una piccola morsa parallela. Forse pi semplice acquistare l'intero cavo gi
assemblato, si trova a pochi euro in uno dei tanti siti on-line oppure in un negozio di
componenti elettronici.
Un po' scomodo il collegamento con la breadboard: serve un apposito adattatore
(utile un motore di ricerca, scrivendo raspberry pi flat cable breadboard) oppure un
po' di manualit nel piegare i pin di un connettore angolare a 26 (40) poli.

http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 2 of 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

E' importante verificare che il cavetto sia costruito correttamente in quanto spesso ho
visto connettori collegati "casualmente", anche tra quelli acquistati pre-assemblati:
l'unico filo rosso deve essere allineato con il triangolo o la V presente sul connettore
plastico, che identifica il pin 1; irrilevante invece il fatto che il connettore plastico
sia "sopra" o "sotto", corretto anche un montaggio misto. Tutti i cavi piatti mostrati
in questa pagina sono realizzati correttamente e sono funzionalmente assolutamente
identici tra di loro.

http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 3 of 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

Il cavo pu essere indifferentemente collegato verso l'interno oppure verso l'esterno


del circuito stampato del Raspberry Pi, avendo l'unica attenzione di allineare il
conduttore rosso con il pin 1, cio verso il lato con la scheda SD. Purtroppo il
connettore sul Raspberry Pi non idiot proof (termine quasi tecnico, traducibile
come "a prova di idiota"...) e quindi sempre possibile collegarlo, erroneamente, al
contrario, con un sicuro malfunzionamento e possibili danni permanenti.
Entrambi i collegamento di seguito mostrati sono corretti e funzionalmente identici:
la scelta tra i due solo questione di comodit.

http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 4 of 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

Cavetti singoli
In alternativa al cavo piatto possibile l'uso di semplici cavetti opportunamente
intestati; la scelta migliore se si hanno poche connessioni provvisorie. I colori non
sono ovviamente un fatto estetico! Per l'acquisto rivolgersi ad un negozio di
elettronica (fisico oppure on-line) o ad un famoso sito di aste on-line.

http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 5 of 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

Il rischio di danni fisici


Alcune importanti osservazioni che riguardano possibili danni permanenti al
Raspberry Pi:
i pin sul connettore GPIO arrivano direttamente al processore, senza alcuna
protezione: un errore porta facilmente alla distruzione fisica del SOC ARM!
la tensione per il livello logico alto 3.3 V. La connessione diretta a logica
alimentata per esempio a 5 V danneggia permanentemente il Raspberry Pi che
non 5 volt tollerant.
la massima corrente disponibile dai pin di uscita dell'ordine di 10 mA;
limitata internamente, ma meglio non rischiare
la massima corrente disponibile sul pin dell'alimentazione a 3.3 V 50 mA; se la
http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 6 of 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

superate, Raspberry Pi potrebbe spegnersi brutalmente


la corrente disponibile sui pin +5 V arriva direttamente dall'alimentatore del
Raspberry Pi, che gi deve fornire circa 700 mA al processore. Quindi, se usate il
tipico alimentatore USB da 1 A, potete prelevare fino a 300 mA dal connettore
della porta GPIO; se la superate, Raspberry Pi si potrebbe spegnere brutalmente

I segnali elettrici
Esistono diverse revisioni del Raspberry Pi e tre versioni del connettore GPIO. Le
prime due versioni sono solo leggermente diverse tra di loro; la terza versione (B+)
uguale alla seconda per quanto riguarda i primi 26 pin, ma sono stati aggiunti 14
nuovi pin, prima non presenti.
Indicativamente la seconda versione in distribuzione dal settembre 2012, la terza
dal luglio 2014.

Se usate KiCad EDA Software Suite, sono disponibili le librerie Raspberry.lib.


Alcuni pin erano inizialmente indicati come DNC (italianizzando: da non connettere)
perch riservati ad usi futuri. In realt questo ipotesi venuta meno e quindi sono
perfettamente utilizzabili, con la funzione indicata.

Il bus I2C

http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 7 of 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

Il bus I2C/SMBus richiede due soli pin:


SDA, disponibile sul pin 3
SCL, disponibile sul pin 5
Nell'installazione predefinita il modulo I2C non attivo: per poterlo utilizzare
necessario attivarlo, come descritto nella pagina I2C con Bash. Se stato attivato non
sono di conseguenza utilizzabili i pin GPIO2 e GPIO3 (oppure GPIO0 e GPIO1 per la
revisione 1).
Non necessario inserire le due resistenze di pull-up richieste da questo bus perch
gi presenti sulla scheda. Entrambe sono da 1.8 k! (R1 e R2 sul circuito stampato) e
connesse alla tensione di 3.3 V. Si fa osservare che tale valore non compatibile con le
specifiche SMBus, sebbene probabilmente questa informazione irrilevante ai fini
pratici.
Per evitare danni permanenti, i segnali presenti su SDA e SCL devono essere
compresi tra 0 V e 3.3 V. In realt, come gi detto, il bus I2C del Raspberry Pi ha il
pull-up passivo collegato a 3.3 V e quindi in teoria funziona anche con dispositivi I2C
alimentati a 5 V. Il consiglio per quello di usare tali circuiti solo se sapete
esattamente quello che state facendo.

Il bus SPI
I pin utilizzati da Raspberry Pi per la comunicazione SPI sono cinque:
Pin 19: MOSI (Master Output Slave Input). E' l'uscita dei dati, dal Raspberry Pi
verso la periferica
Pin 21: MISO (Master Input, Slave output). E' usata dalla periferica per
trasmettere dati al Raspberry Pi
Pin 23: SCLK. E' il clock, generato sempre dal Raspberry Pi
Pin 24: CE0 (Chip Enable numero 0). Quando attivo, seleziona la prima
periferica. E' associato al file /dev/spidev0.0
Pin 26: CE1 (Chip Enable numero 1). Quando attivo, seleziona la seconda
periferica. E' associato al file /dev/spidev0.1
http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 8 of 9

Rapsberry Pi: il connettore GPIO

12/12/14 15:52

Quando attivato il modulo SPI non sono disponibili i rispettivi pin GPIO (GPIO 7, 8,
9, 10 e 11).
I circuiti SPI collegati al Raspberry Pi non devono essere alimentati a 5 V per
evitare danni permanenti

Il bus seriale asincrono


Raspberry Pi dispone di una porta che, dal punto di vista logico, compatibile con
RS232. Lo scopo l'uso con un terminale, in genere emulato su PC (perlomeno se
quest'ultimo possiede ancora tale interfaccia...). Ovviamente pu essere utilizzato
anche in altro modo.
I pin utilizzati sono l'8 e il 10 (GPIO14 e GPIO15), rispettivamente per la trasmissione
(TxD) e per la ricezione (RxD). Il modulo che gestisce la seriale attivato
all'accensione: questi pin non sono di conseguenza disponibili per altri usi se nen
cambiando la modalit di boot
La tensione standard di RS232 12 V e quindi per prevenire danni gravi
necessario prevedere uno specifico adattatore di livelli, peraltro facilmente
acquistabile o realizzabile.

Il bus 1-wire
Questo bus permette di collegare un numero (teoricamente) molto elevato di
dispositivi, utilizzano un numero minimo di fili. La versione implementata in
Raspberry Pi realizzata via software e quindi presenta qualche problema di
compatibilit, sia a livello elettrico che di temporizzazioni, ma se dovete collegare una
manciata di sensori di temperatura perfettamente adatto.
Il pin utilizzato di default per la connessione GPIO4 (pin 7). Anche in questo caso il
modulo non , nella configurazione standard, caricato al boot.

http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

Page 9 of 9