Rapsberry Pi: Il Connettore GPIO

9
12/12/14 15:52 Rapsberry Pi: il connettore GPIO Page 1 of 9 http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm 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.

description

Guida Raspberry

Transcript of Rapsberry Pi: Il Connettore GPIO

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

    Page 1 of 9http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

    Rapsberry Pi: il connettore GPIOElettronica, per passione - Idee per chi gioca con l'elettronica (... o ci lavora)

    Raspberry Pi possiede diverse interfacce tipiche dei PC: ethernet, USB, HDMI, audioe video analogico. Sono presenti anche altre interfacce proprietarie, per esempiol'interfaccia verso la webcam 1080p.

    In questo tutorial si far riferimento solo a GPIO: 26 (o 40) pin di facile accesso fisicoattraverso 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 tradi loro di un decimo di pollice (2,54 mm). Se avete il Rasberry B+, (qui altreinformazioni) i pin sono 40, con analoga disposizione.

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

    Page 2 of 9http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

    La numerazione di pin quella indicata nella figura di apertura: i pin con numeri parisono quelli verso il bordo del circuito stampato, quelli con numero dispari all'interno.Questa non la numerazione standard dei circuiti integrati, ma quella tipica deiconnettori.

    Il pin numero 1 il pi vicino alla scheda SD; identificato sul circuito stampato daun piccolo rettangolo bianco con la scritta P1; guardando al lato opposto, l'unico cheha 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 collegareun 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) apartire 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 peresempio una piccola morsa parallela. Forse pi semplice acquistare l'intero cavo giassemblato, si trova a pochi euro in uno dei tanti siti on-line oppure in un negozio dicomponenti 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 unpo' di manualit nel piegare i pin di un connettore angolare a 26 (40) poli.

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

    Page 3 of 9http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

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

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

    Page 4 of 9http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

    Il cavo pu essere indifferentemente collegato verso l'interno oppure verso l'esternodel circuito stampato del Raspberry Pi, avendo l'unica attenzione di allineare ilconduttore rosso con il pin 1, cio verso il lato con la scheda SD. Purtroppo ilconnettore sul Raspberry Pi non idiot proof (termine quasi tecnico, traducibilecome "a prova di idiota"...) e quindi sempre possibile collegarlo, erroneamente, alcontrario, 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.

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

    Page 5 of 9http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

    Cavetti singoli

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

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

    Page 6 of 9http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

    Il rischio di danni fisici

    Alcune importanti osservazioni che riguardano possibili danni permanenti alRaspberry Pi:

    i pin sul connettore GPIO arrivano direttamente al processore, senza alcunaprotezione: un errore porta facilmente alla distruzione fisica del SOC ARM!la tensione per il livello logico alto 3.3 V. La connessione diretta a logicaalimentata per esempio a 5 V danneggia permanentemente il Raspberry Pi chenon 5 volt tollerant.la massima corrente disponibile dai pin di uscita dell'ordine di 10 mA; limitata internamente, ma meglio non rischiarela massima corrente disponibile sul pin dell'alimentazione a 3.3 V 50 mA; se la

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

    Page 7 of 9http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

    superate, Raspberry Pi potrebbe spegnersi brutalmentela corrente disponibile sui pin +5 V arriva direttamente dall'alimentatore delRaspberry Pi, che gi deve fornire circa 700 mA al processore. Quindi, se usate iltipico alimentatore USB da 1 A, potete prelevare fino a 300 mA dal connettoredella 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. Leprime 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 14nuovi pin, prima non presenti.

    Indicativamente la seconda versione in distribuzione dal settembre 2012, la terzadal 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 sonoperfettamente utilizzabili, con la funzione indicata.

    Il bus I2C

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

    Page 8 of 9http://www.vincenzov.net/tutorial/RaspberryPi/connettore-GPIO.htm

    Il bus I2C/SMBus richiede due soli pin:

    SDA, disponibile sul pin 3SCL, 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 nonsono di conseguenza utilizzabili i pin GPIO2 e GPIO3 (oppure GPIO0 e GPIO1 per larevisione 1).

    Non necessario inserire le due resistenze di pull-up richieste da questo bus perchgi presenti sulla scheda. Entrambe sono da 1.8 k! (R1 e R2 sul circuito stampato) econnesse alla tensione di 3.3 V. Si fa osservare che tale valore non compatibile con lespecifiche SMBus, sebbene probabilmente questa informazione irrilevante ai finipratici.

    Per evitare danni permanenti, i segnali presenti su SDA e SCL devono esserecompresi tra 0 V e 3.3 V. In realt, come gi detto, il bus I2C del Raspberry Pi ha ilpull-up passivo collegato a 3.3 V e quindi in teoria funziona anche con dispositivi I2Calimentati a 5 V. Il consiglio per quello di usare tali circuiti solo se sapeteesattamente 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 Piverso la perifericaPin 21: MISO (Master Input, Slave output). E' usata dalla periferica pertrasmettere dati al Raspberry PiPin 23: SCLK. E' il clock, generato sempre dal Raspberry PiPin 24: CE0 (Chip Enable numero 0). Quando attivo, seleziona la primaperiferica. E' associato al file /dev/spidev0.0Pin 26: CE1 (Chip Enable numero 1). Quando attivo, seleziona la secondaperiferica. E' associato al file /dev/spidev0.1

  • 12/12/14 15:52Rapsberry Pi: il connettore GPIO

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

    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 perevitare danni permanenti

    Il bus seriale asincrono

    Raspberry Pi dispone di una porta che, dal punto di vista logico, compatibile conRS232. Lo scopo l'uso con un terminale, in genere emulato su PC (perlomeno sequest'ultimo possiede ancora tale interfaccia...). Ovviamente pu essere utilizzatoanche 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 attivatoall'accensione: questi pin non sono di conseguenza disponibili per altri usi se nencambiando 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 facilmenteacquistabile o realizzabile.

    Il bus 1-wire

    Questo bus permette di collegare un numero (teoricamente) molto elevato didispositivi, utilizzano un numero minimo di fili. La versione implementata inRaspberry Pi realizzata via software e quindi presenta qualche problema dicompatibilit, sia a livello elettrico che di temporizzazioni, ma se dovete collegare unamanciata di sensori di temperatura perfettamente adatto.

    Il pin utilizzato di default per la connessione GPIO4 (pin 7). Anche in questo caso ilmodulo non , nella configurazione standard, caricato al boot.