Come abilitare SPI / I2C su Raspberry Pi (E cosa usarli per)

Probabilmente conosci i pin GPIO sul Raspberry Pi, ma che dire dei connettori SPI e I2C? A cosa servono e come puoi farne uso?

Probabilmente conosci i pin GPIO sul Raspberry Pi, ma che dire dei connettori SPI e I2C?  A cosa servono e come puoi farne uso?
Annuncio pubblicitario

Il Raspberry Pi può essere utilizzato per quasi tutto. Dai media center domestici alle configurazioni personalizzate di giochi retrò, è sicuro affermare che il Pi e simili computer a scheda singola stanno diventando onnipresenti.

Quando inizi a sperimentare con i pin GPIO su Raspberry Pi, le cose diventano ancora più interessanti. Abbiamo già spiegato cosa fanno tutti questi pin, quindi ora vediamo come abilitare i protocolli SPI e I2C sul tuo Pi e perché potresti volerlo.

Cos'è SPI su Raspberry Pi?

Prima di immergerti, spieghiamo brevemente cosa fanno questi due protocolli.

SPI (o Serial Peripheral Interface) consente a un microcontrollore come il Pi di comunicare con oltre 100 componenti periferici contemporaneamente. Il microcontrollore agisce da "maestro" su tutti i componenti "slave" e può comunicare con essi ad alta velocità. Questo schema delinea una semplice connessione SPI:

SPI e I2C sul Raspberry Pi
Immagine di credito: Cburnett / wikipedia.org

Se questa è la prima volta che leggi la SPI, può sembrare piuttosto intimidatoria, ma resta fedele! SCLK è la velocità di clock impostata dal master che determina la velocità di condivisione delle informazioni tra i dispositivi.

Ad ogni ciclo (o "tick") del clock, sia il master che lo slave inviano e ricevono un bit di informazioni. Questo è ciò che sono perni MOSI (Master Out Slave In) e MISO (Master In Slave Out).

Il pin SS o Slave Select (contrassegnato CE0 o CE1 sul Pi) viene utilizzato per comunicare a un dispositivo slave di comunicare con il master, o meno, in un dato momento. Nella maggior parte dei casi, ogni dispositivo slave richiede il proprio pin SS, ma può condividere i pin SCLK, MOSI e MISO.

Alcuni dispositivi possono essere "collegati a margherita" per condividere un pin SS, mantenendo i pin totali utilizzati fino a quattro, più due per alimentazione e massa. SPI è noto per essere incredibilmente veloce ed è comunemente usato nei registri a scorrimento o ADC (convertitori analogico-digitali) per trasmettere dati tra dispositivi.

Startup Augmented Il canale YouTube ha un primer facile da seguire per SPI che spiega ulteriormente il protocollo:

Come abilitare SPI su Raspberry Pi

Per abilitare SPI sul tuo Raspberry Pi, apri raspi-config dal terminale inserendo:

sudo raspi-config 

Passare a Interfacing Options e nel menu seguente selezionare P4 SPI Abilita / disabilita il caricamento automatico del modulo del kernel SPI . Selezionare al prompt della finestra. SPI ora è abilitato!

SPI e I2C sul Raspberry Pi

In alternativa, è possibile abilitare SPI dal file /boot/config.txt . Apri una finestra di terminale e inserisci:

 sudo nano /boot/config.txt 

Cerca una riga che legge # dtparam = spi = on e rimuovi il simbolo # . In qualunque modo tu abiliti SPI, riavvia il tuo Pi e SPI sarà abilitato.

Cosa puoi fare con SPI su Raspberry Pi?

Mentre ci sono centinaia di diversi progetti che utilizzano molte periferiche SPI diverse, un buon progetto iniziale è la programmazione del proprio lettore RFID.

Abbiamo usato il lettore MFRC-522 nel nostro Smart Lock fai da te con Arduino e RFID tutorial DIY Smart Lock con Arduino e RFID DIY Smart Lock con Arduino e RFID Ecco come costruire un semplice smart lock basato su RFID usando un Arduino come backbone e pochi componenti economici. Leggi di più . Per un'introduzione all'RFID di Raspberry Pi, dai un'occhiata a Instructable approfondito di piddlerintheroot.

Anche questo tipo di installazione non è solo per l'elettronica per hobby. Nella nostra collezione dei migliori progetti Raspberry Pi I 13 migliori progetti Raspberry Pi del 2017 I 13 migliori progetti Raspberry Pi del 2017 Rimarrai stupefatto da questi progetti Raspberry Pi straordinariamente creativi. Per saperne di più, abbiamo presentato un sistema MES completo che funziona con Raspberry Pi e RFID, come parte di una grande fabbrica in Europa.

Che cos'è I2C su Raspberry Pi?

I2C è un protocollo di comunicazione creato da Phillips Electronics, che ha visto un'ondata di utilizzo in progetti di hobby basati su microcontrollore. Il motivo è ovvio: utilizza solo due fili anziché i quattro minimi di SPI. È anche ben supportato da librerie create dall'utente. Ci sono molti componenti progettati per essere usati con I2C su Raspberry Pi. Mentre è più lento di SPI, funziona ancora abbastanza velocemente per la maggior parte degli usi quotidiani.

Proprio come SPI, il protocollo ha un dispositivo master, come il Pi, e un dispositivo slave, come uno schermo, un registro a scorrimento o un driver motore.

La prima connessione tra i dispositivi è SCL (Serial Clock) che viene impostata dal master per sincronizzare il trasferimento dei dati. La seconda linea è l' SDA (Serial Data) che trasferisce i dati avanti e indietro tra tutti i dispositivi sul bus I2C.

Il dispositivo master inizia la comunicazione con un bit di avvio e un indirizzo esadecimale a sette bit. Questo deve corrispondere al dispositivo slave affinché possano comunicare. Questo è il modo in cui così tanti dispositivi possono essere utilizzati con solo due fili.

Il dispositivo master specifica quindi se vuole leggere o scrivere ( R / W ) lo slave, prima di ricevere un riconoscimento o un ACK .

Uno sguardo semplice e approfondito su I2C viene fornito ancora una volta dalle startup aumentate di YouTuber:

Come abilitare I2C su Raspberry Pi

I2C è anche abilitato sul Pi tramite il menu raspi-config . Apri il terminale e inserisci:

 sudo raspi-config 

Utilizzare i tasti freccia per selezionare Opzioni di interfaccia, seguito da P5 I2C Abilita / disabilita il caricamento automatico del modulo del kernel I2C . Conferma che vuoi abilitare il protocollo e dovresti vedere una schermata di conferma.

SPI e I2C sul Raspberry Pi

Come con SPI, puoi anche abilitare I2C modificando il tuo file config.txt. Apri un terminale e inserisci:

 sudo nano /boot/config.txt 

Modifica # dtparam = i2c_arm = on, rimuovendo il simbolo # .

SPI e I2C sul Raspberry Pi

Riavvia il tuo Pi e I2C è pronto per partire!

Cosa puoi fare con I2C su Raspberry Pi?

I2C è ottimo per qualsiasi progetto che richiede un numero elevato di uscite. Un uso tipico è per schermi LCD, che richiedono fino a 16 pin da utilizzare. I2C porta questo solo a due per la comunicazione e due per l'alimentazione e la messa a terra.

Molti schermi LCD sono dotati di uno "zaino" I2C collegato, che li rende molto più semplici da configurare e liberando il resto dei pin Pi per altri sensori e periferiche.

TheRaspberryPiGuy ha un'esercitazione dettagliata su YouTube sulla configurazione e l'uso di uno schermo LCD con I2C su Raspberry Pi

Utilizzando SPI e I2C salva i pin!

SPI e I2C su Raspberry Pi non sono certamente per i principianti dell'elettronica completa, ma non sono nemmeno da temere.

Prima di immergerti, sarebbe una buona idea seguire la nostra guida per principianti su Raspberry Pi per imparare le basi.

Lavorare attraverso alcuni progetti di esempio è il modo migliore per imparare, e non vediamo l'ora di vedere cosa ne pensi! Chissà quali strane e meravigliose creazioni di Raspberry Pi 10 Weirdest Raspberry Pi Projects 10 Weirdest Raspberry Pi Projects C'è uno scienziato pazzo dentro ognuno di noi, e il Raspberry Pi lascia uscire il tuo loon interiore e giocare. A volte, le cose diventano strane. Molto strano. Leggi altro che farai?

In this article