Hur man aktiverar SPI / I2C på Raspberry Pi (och vad man använder dem för)

Du vet noga om GPIO-pinnarna på Raspberry Pi, men hur är det med SPI och I2C-kontakterna? Vad är de för, och hur kan du utnyttja dem?

Du vet noga om GPIO-pinnarna på Raspberry Pi, men hur är det med SPI och I2C-kontakterna?  Vad är de för, och hur kan du utnyttja dem?
Annons

Raspberry Pi kan användas för nästan vad som helst. Från hemmet media centra till anpassade retro spel setup, det är säkert att säga att Pi och liknande enstaka datorer blir allestädes närvarande.

När du börjar experimentera med GPIO-pinnar på Raspberry Pi blir sakerna ännu mer intressanta. Vi har redan täckt vad alla stiften gör, så nu ska vi titta på hur du aktiverar SPI- och I2C-protokollen på din Pi och varför du kanske vill.

Vad är SPI på Raspberry Pi?

Innan vi dyker in, låt oss kortfattat täcka vad dessa två protokoll gör.

SPI (eller Serial Peripheral Interface) tillåter en mikrokontroller som Pi att kommunicera med över 100 perifera komponenter samtidigt. Mikrokontrollern fungerar som en "master" för alla "slav" -komponenterna och kan kommunicera med dem med hög hastighet. Detta diagram beskriver en enkel SPI-anslutning:

SPI och I2C på Raspberry Pi
Bildkredit: Cburnett / wikipedia.org

Om det här är första gången du läser om SPI kan det verka ganska skrämmande, men hålla fast vid det! SCLK är klockhastigheten som bestäms av mastern som bestämmer vilken hastighet informationen delas mellan enheterna.

Vid varje cykel (eller "tick") på klockan skickar både mästare och slav en bit information. Det här är vad MOSI (Master Out Slave In) och MISO (Master In Slave Out) -nålarna är för.

SS eller Slave Select-stift (märkt CE0 eller CE1 på Pi) används för att berätta för en slavenhet att kommunicera med mästaren eller inte-vid en viss tidpunkt. I de flesta fall kräver varje slavenhet en egen SS-stift, men kan dela SCLK-, MOSI- och MISO-stiften.

Vissa enheter kan vara "daisy chained" för att dela en SS-stift, vilket gör att de totala stiften används till fyra, plus två för kraft och mark. SPI är känt för att vara oerhört snabbt och används vanligtvis i skiftregister eller ADC (analoga till digitala omvandlare) för att överföra data mellan enheter.

Augmented Startups YouTube-kanalen har en lätt att följa primer för SPI som förklarar protokollet ytterligare:

Hur man aktiverar SPI på Raspberry Pi

För att aktivera SPI på din Raspberry Pi, öppna raspi-config från terminalen genom att ange:

sudo raspi-config 

Navigera till gränssnittsalternativ och välj P4 SPI i följande meny Aktivera / inaktivera automatisk laddning av SPI-kärnmodul . Välj Ja vid fönstret. SPI är nu aktiverat!

SPI och I2C på Raspberry Pi

Alternativt kan du aktivera SPI från filen /boot/config.txt . Öppna ett terminalfönster och skriv in:

 sudo nano /boot/config.txt 

Leta efter en rad som läser # dtparam = spi = on och ta bort # -symbolen. Oavsett hur du aktiverar SPI, starta om din Pi och SPI kommer att aktiveras.

Vad kan du göra med SPI på Raspberry Pi?

Även om det finns hundratals olika projekt som använder många olika SPI-kringutrustning, programmerar ett bra startprojekt din egen RFID-läsare.

Vi använde MFRC-522-läsaren i vår DIY Smart Lock med Arduino och RFID-handledning DIY Smart Lock med Arduino och RFID DIY Smart Lock med Arduino och RFID Så här bygger du ett enkelt RFID-baserat smartlås med hjälp av en Arduino som ryggraden och en några billiga komponenter. Läs mer . För en Raspberry Pi-smaksatt introduktion till RFID, kolla in piddlerintherots djupinstruktion.

Denna typ av inställning är inte bara för hobbyelektronik heller. I vår samling av bästa Raspberry Pi-projekt De 13 bästa Raspberry Pi-projekten från 2017 De 13 bästa Raspberry Pi-projekten från 2017 Du kommer att bli blåst bort av dessa imponerande kreativa Raspberry Pi-projekt. Läs mer, vi presenterade ett fullskaligt MES-system som använder Raspberry Pi och RFID, som en del av en storskalig fabrikverksamhet i Europa.

Vad är I2C på Raspberry Pi?

I2C är ett kommunikationsprotokoll skapat av Phillips Electronics, som har sett en överflöd av användning i mikrokontrollerbaserade hobbyprojekt. Anledningen till detta är uppenbart - det använder bara två ledningar istället för SPI: s minsta fyra. Den stöds också av användarbaserade bibliotek. Det finns många komponenter som är avsedda att användas med I2C på Raspberry Pi. Medan det är långsammare än SPI, fungerar det fortfarande tillräckligt snabbt för de flesta dagliga användningsområden.

I likhet med SPI har protokollet en huvudenhet, såsom Pi, och en slavenhet, såsom en skärm, skiftregister eller motordrivrutin.

Den första anslutningen mellan enheterna är SCL (Serial Clock) som ställs in av mastern för att synkronisera överföringen av data. Den andra raden är SDA (Serial Data) som överför data fram och tillbaka mellan alla enheter på I2C-bussen.

Huvudanordningen börjar kommunikera med en startbit och en sju bitars hex-adress . Detta måste matcha slavenheten för att de ska kunna kommunicera. Så här kan så många enheter användas med endast två ledningar.

Mästarenheten specificerar då om den vill läsa eller skriva ( R / W ) slaven innan den mottar en bekräftelse eller ACK tillbaka.

En lätt att följa och fördjupa koll på I2C återges av YouTuber Augmented Startups:

Hur man aktiverar I2C på Raspberry Pi

I2C är också aktiverat på Pi via raspi-config- menyn. Öppna terminalen och skriv in:

 sudo raspi-config 

Använd piltangenterna för att välja gränssnittsalternativ, följt av P5 I2C Aktivera / inaktivera automatisk laddning av I2C-kärnmodul . Bekräfta att du vill aktivera protokollet och du bör se en bekräftelseskärm.

SPI och I2C på Raspberry Pi

Som med SPI kan du också aktivera I2C genom att ändra din config.txt-fil. Öppna en terminal och skriv in:

 sudo nano /boot/config.txt 

Ändra # dtparam = i2c_arm = på, ta bort # -symbolen.

SPI och I2C på Raspberry Pi

Starta om din Pi, och I2C är redo att gå!

Vad kan du göra med I2C på Raspberry Pi?

I2C är utmärkt för alla projekt som kräver ett stort antal utgångar. En typisk användning är för LCD-skärmar, vilket kräver upp till 16 stift att använda. I2C ger detta till endast två för kommunikation och två för kraft och mark.

Många LCD-skärmar levereras med en I2C-ryggsäck, som gör dem mycket enklare att sätta upp och frigör resten av dina Pi-stift till andra sensorer och kringutrustning.

TheRaspberryPiGuy har en detaljerad YouTube-handledning om att installera och använda en LCD-skärm med I2C på Raspberry Pi

Använda SPI och I2C sparar pinnar!

SPI och I2C på Raspberry Pi är verkligen inte för kompletta hobby elektronik nybörjare, men de är inte heller något att vara rädd för.

Innan du dyker in, skulle det vara en bra idé att följa vår nybörjare guide till Raspberry Pi för att lära sig grunderna.

Att arbeta genom några exempel är det bästa sättet att lära sig, och vi ser fram emot att se vad du gör med! Vem vet vad konstigt och underbart Raspberry Pi skapelser 10 Rarlig hallon Pi-projekt 10 Rarlig hallon Pi-projekt Det finns en arg forskare inom var och en av oss, och Raspberry Pi låter din inre löne komma ut och spela. Ibland blir saker konstiga. Väldigt konstigt. Läs mer du ska göra?

In this article