Risoluzione Problemi Raspberry Pi Vol. VI: GPIO

Raspberry Pi dispone di un’interfaccia GPIO, acronimo di General Purpose Input Output. Questo tipo di interfaccia consente ai dispositivi che ne siano dotati di interagire con un’altra periferica. Tali periferiche possono agire come input o output, per controllare o fungere da segnalatore agli altri dispositivi.

La piedinatura GPIO del Raspberry Pi è configurabile individualmente “pin a pin” e, prima di parlare di eventuali problemi che possono verificarsi durante un normale utilizzo, diamole un’occhiata:

Raspberry Pi

Consigli generali sull’utilizzo dell’interfaccia GPIO

Il primo concetto da avere ben chiaro in mente quando si utilizza l’interfaccia GPIO, è la tensione massima tollerata da ogni singolo pin. Al contrario di quello che pensano in tanti, il solo livello logico di funzionamento consentito è di 3,3V.

Attenzione: Tensioni superiori ai 3,3V danneggiano irrimediabilmente la board.

Cortocircuitare i due pin GPIO + 3,3 V e + 5 V o un pin di alimentazione a terra, fa andare in protezione il Raspberry Pi. Il polifusibile di ingresso scatta e si ripristina automaticamente dopo essersi raffreddato (ricristallizzazione del polimero). Il processo di ricristallizzazione può richiedere diverse ore, quindi in previsione di problemi come questo, tenete sempre un Raspberry Pi di scorta.

Elettricità Statica

I pin GPIO si collegano direttamente al nucleo del processore ARM e sono sensibili all’elettricità statica, quindi è fortemente consigliato evitare di toccare i pin ove possibile. Toccate sempre una superficie metallica prima di toccare i pin GPIO (o qualsiasi dispositivo ad essi collegato). Anche se è un problema sostanzialmente raro, è stato verificato che l’elettricità statica è in grado di bruciare il Raspberry Pi.

Testare l’interfaccia GPIO

Ogni volta che l’interfaccia GPIO dà problemi, è possibile eseguire un test diagnostico (richiede la libreria pigpio).

Attenzione: per tutta la durata del test non collegare nulla ai pin GPIO (niente LED, fili, cavi ecc.).

Da riga di comando digitare:

gpiotest

Il test verifica che ogni pin GPIO possa essere letto e scritto, e che i pull-up e pull-down della resistenza interna siano funzionanti.

 

Se il test è andato a buon fine, dovreste avere un output simile a questo:

tutti i pin dell’interfaccia GPIO funzionano correttamente in lettura e scrittura e le relative resistenze di pull-up e pull-down funzionano senza problemi.

In caso di problemi, l’output sarà invece simile a questo:

Come vedete non solo non è possibile una lettura o una scrittura di alcuni pin GPIO, ma le resistenze di pull-up e pull-down sono bruciate.

Visualizzare le forme d’onda dei pin GPIO con piscope

Se volete spingervi oltre e controllare in tempo reale il funzionamento dell’interfaccia GPIO,  alcuni siti consigliano l’utilizzo di piscope, un visualizzatore di forme d’onda. Piscope è uno strumento software per visualizzare i livelli di segnale di un progetto di circuito digitale o analogico. Ovviamente dovete essere in grado di leggere la forma d’onda e il segnale corrispondente, pertanto se siete alle prime armi non è la strada che consigliamo.

 

Se vi siete persi i capitoli precedenti della guida alla Risoluzione dei problemi con Raspberry Pi, potete trovarli qui:

 

 

 

###Da sempre appassionato di tecnologia, soffro di insaziabile curiosità scientifica. Adoro sperimentare e approfondire le mie conoscenze sulle ultime novità sul mercato in termini di hardware, alta tecnologia e videogiochi. Attratto e coinvolto nella prototipazione hardware dalla piattaforma Arduino, Raspberry Pi e Nvidia Jetson.### ###Always passionate about technology, I am suffering from insatiable scientific curiosity. I love experimenting and deepening of my knowledge on the latest news on the market in terms of hardware, hi-tech and video games. Got attracted and involved in hardware prototyping by the Arduino platform, Raspberry Pi and Nvidia Jetson.###

2 Comments

  1. Francesco | | Reply

    Articolo interessantissimo.
    Ho necessità proprio di verificare le porte del mio Raspberry 3B+
    Mi servirebbe un aiutino
    Poichè sul mio non era presente la libreria ho installato pigpio-master (L’unica che ho trovato).
    Purtroppo il comando gpiotest non c’è.
    Dove stò sbagliando?
    Ringrazio anticipatamente per la pazienza e l’aiuto.
    Grazie

    • Fabrizio Bianchini | | Reply

      Buongiorno Francesco,

      l’installazione che hai eseguito va bene, adesso dobbiamo testare il GPIO e vedere se tutto funziona.

      Didatticamente parlando, pigpio è un daemon: non è altro che un programma che lanci e aspetti che ti restituisca qualcosa. Un daemon non prevede interazione con l’utente, quindi una volta lanciato dovrai aspettare che esegua tutta la procedura. C’è un comando di “brute force” che lo stoppa, ma lo vediamo dopo. In genere, consiglio sempre di non stopparlo ma lasciargli finire tutta la procedura.

      Il comando per lanciare il test è il seguente (va fatto con permessi di root):

      sudo pigpiod

      se vuoi stopparlo

      sudo killall pigpiod

      Mi raccomando, scollega tutto dagli header GPIO per fare il test.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.