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

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

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 “bemästra” till alla “slav” komponenter, och kan kommunicera med dem med hög hastighet. Detta diagram beskriver en enkel SPI-anslutning:

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 inställd av mastern som bestämmer vilken hastighet informationen delas mellan enheterna.

Vid varje cykel (eller “bock”) på klockan skickar både mästare och slav och mottar en bit information. Det här är vad MOSI (Master Out Slave In) och MISO (Master In Slave Out) stift är för.

De SS eller Slave Select-pin (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” att dela en SS-stift, hålla de totala stiften som används ned 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 Interfacing Options, och på följande meny välj P4 SPI Aktivera / inaktivera automatisk laddning av SPI-kärnmodul. Välj Ja vid fönstret. SPI är nu aktiverat!

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

sudo nano / boot / config.txt

Leta efter en rad som läser # Dtparam = spi = på och ta bort # symbol. 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.

Såsom SPI har protokollet en bemästra enhet, såsom Pi, och a slav enhet, till exempel en skärm, skiftregister eller motordrivrutin.

Den första anslutningen mellan enheterna är SCL (Serieklocka) 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.

Masternheten startar kommunikation med a Start bit och en sju bit hexadress. 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 anger då om den vill läsa eller skriva (R / W) slaven innan du 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 meny. Öppna terminalen och skriv in:

sudo raspi-config

Använd piltangenterna för att välja Interfacing Options, följd 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.

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å, avlägsna # symbol.

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 kommer med en I2C “ryggsäck” ansluten, vilket gör dem mycket enklare att sätta upp och frigöra resten av dina Pi-pinnar 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 pins!

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?

Utforska mer om: Raspberry Pi.