Sådan aktiveres SPI / I2C på Raspberry Pi (og hvad de skal bruge dem til)

Du ved nok nok om GPIO-benene på Raspberry Pi, men hvad med SPI og I2C-stik? Hvad er de til, og hvordan kan du gøre brug af dem?

Du ved nok nok om GPIO-benene på Raspberry Pi, men hvad med SPI og I2C-stik?  Hvad er de til, og hvordan kan du gøre brug af dem?
Reklame

Raspberry Pi kan bruges til næsten alt. Fra home media centre til brugerdefinerede retro gaming opsætninger, er det sikkert at sige, at Pi og lignende single-board computere bliver allestedsnærværende.

Når du begynder at eksperimentere med GPIO-tappene på Raspberry Pi, bliver tingene endnu mere interessante. Vi har allerede dækket hvad alle de pins gør, så nu skal vi se på, hvordan du aktiverer SPI og I2C protokollerne på din Pi og hvorfor du måske vil.

Hvad er SPI på Raspberry Pi?

Før du dykker ind, lad os kort omtale hvad disse to protokoller gør.

SPI (eller Serial Peripheral Interface) tillader en mikrocontroller som Pi at kommunikere med over 100 perifere komponenter på én gang. Mikrocontrolleren fungerer som en "master" til alle "slave" -komponenterne og kan kommunikere med dem med høj hastighed. Dette diagram beskriver en simpel SPI-forbindelse:

SPI og I2C på Raspberry Pi
Billedkredit: Cburnett / wikipedia.org

Hvis dette er din første gang at læse om SPI, kan det virke ret skræmmende, men hold dig til det! SCLK er klokkens hastighed indstillet af masteren, som bestemmer den hastighed, informationen deles mellem enhederne.

Ved hver cyklus (eller "tick") af uret sender både mester og slave og modtager en smule information. Dette er, hvad MOSI (Master Out Slave In) og MISO (Master In Slave Out) -nåle er til.

SS eller Slave Select pin (mærket CE0 eller CE1 på Pi) bruges til at fortælle en slave enhed at kommunikere med master-eller ikke-på et givet tidspunkt. I de fleste tilfælde kræver hver slaveenhed sin egen SS-pin, men kan dele SCLK-, MOSI- og MISO-stifterne.

Nogle enheder kan være "daisy chained" for at dele en SS-pin, idet de samlede pins benyttes til fire, plus to til kraft og jord. SPI er kendt for at være utrolig hurtig og bruges almindeligvis i skiftregister eller ADC'er (analog til digitalomformere) til at videregive data mellem enheder.

Augmented Startups YouTube-kanalen har en let at følge primer for SPI, der forklarer protokollen yderligere:

Sådan aktiveres SPI på Raspberry Pi

For at aktivere SPI på din Raspberry Pi, skal du åbne raspi-config fra terminalen ved at indtaste:

sudo raspi-config 

Gå til Interfacing Options, og vælg P4 SPI Aktiver / Deaktivér automatisk indlæsning af SPI-kernemodul i den følgende menu. Vælg Ja ved vinduet prompten. SPI er nu aktiveret!

SPI og I2C på Raspberry Pi

Alternativt kan du aktivere SPI fra filen /boot/config.txt . Åbn et terminalvindue og indtast:

 sudo nano /boot/config.txt 

Se efter en linje, der læser # dtparam = spi = on og fjern # symbolet. Uanset hvilken måde du aktiverer SPI, genstart din Pi og SPI vil blive aktiveret.

Hvad kan du gøre med SPI på Raspberry Pi?

Mens der er hundredvis af forskellige projekter, der udnytter mange forskellige SPI-enheder, programmerer et godt startprojekt din egen RFID-læser.

Vi brugte MFRC-522-læseren i vores DIY Smart Lock med Arduino og RFID-tutorial DIY Smart Lock med Arduino og RFID DIY Smart Lock med Arduino og RFID Sådan bygger du en simpel RFID-baseret smart lås ved hjælp af en Arduino som rygraden og en få billige komponenter. Læs mere . For en Raspberry Pi-flavored introduktion til RFID, tjek piddlerintherots dybdeinstruktion.

Denne form for opsætning er ikke kun for hobbyelektronik. I vores samling af bedste Raspberry Pi-projekter De 13 bedste Raspberry Pi-projekter i 2017 De 13 bedste Raspberry Pi-projekter i 2017 Du vil blive blæst væk af disse imponerende kreative Raspberry Pi-projekter. Læs mere, vi præsenterede et fuldskala MES-system, der kører med Raspberry Pi og RFID, som en del af en storskala fabrikoperation i Europa.

Hvad er I2C på Raspberry Pi?

I2C er kommunikationsprotokol oprettet af Phillips Electronics, som har oplevet en stigning i brug i mikrocontrollerbaserede hobbyprojekter. Årsagen til dette er indlysende - det bruger kun to ledninger i stedet for SPI's mindst fire. Det understøttes også af brugerdefinerede biblioteker. Der er mange komponenter designet til at blive brugt med I2C på Raspberry Pi. Mens det er langsommere end SPI, fungerer det stadig hurtigt nok til de fleste daglige anvendelser.

I lighed med SPI har protokollen en masterenhed, som f.eks. Pi, og en slaveenhed, såsom et skærm, skiftregister eller motordriver.

Den første forbindelse mellem enhederne er SCL (Serial Clock), som er indstillet af master til at synkronisere overførsel af data. Den anden linje er SDA (Serial Data), som overfører dataene frem og tilbage mellem alle enheder på I2C-bussen.

Masterenheden begynder at kommunikere med en startbit og en syv bit hex adresse . Dette skal matche slaveenheden, så de kan kommunikere. Sådan kan så mange enheder kun bruges med to ledninger.

Masterenheden angiver derefter, om den vil læse eller skrive ( R / W ) slaven, før den modtager en bekræftelse eller ACK tilbage.

En let at følge og grundig kig på I2C leveres igen af ​​YouTuber Augmented Startups:

Sådan aktiveres I2C på Raspberry Pi

I2C er også aktiveret på Pi via raspi-config menuen. Åbn terminalen og indtast:

 sudo raspi-config 

Brug piletasterne til at vælge Interfacing Options, efterfulgt af P5 I2C Aktiver / Deaktiver automatisk ilægning af I2C-kernemodul . Bekræft, at du vil aktivere protokollen, og du skal se en bekræftelsesskærm.

SPI og I2C på Raspberry Pi

Som med SPI, kan du også aktivere I2C ved at ændre din config.txt-fil. Åbn en terminal og indtast:

 sudo nano /boot/config.txt 

Rediger # dtparam = i2c_arm = on, fjern # symbolet.

SPI og I2C på Raspberry Pi

Genstart din Pi, og I2C er klar til at gå!

Hvad kan du gøre med I2C på Raspberry Pi?

I2C er fantastisk til ethvert projekt, der kræver et stort antal udgange. En typisk brug er til LCD skærme, som kræver op til 16 stifter til brug. I2C bringer dette ned til kun to til kommunikation og to til strøm og jord.

Mange LCD-skærme leveres med en I2C "rygsæk" vedhæftet, hvilket gør dem meget enklere at sætte op og frigøre resten af ​​dine Pi-stifter til andre sensorer og eksterne enheder.

TheRaspberryPiGuy har en detaljeret YouTube-tutorial om opsætning og brug af en LCD-skærm med I2C på Raspberry Pi

Brug af SPI og I2C gemmer pins!

SPI og I2C på Raspberry Pi er bestemt ikke til komplette hobby elektronikbegyndere, men de er heller ikke noget at være bange for.

Før du dykker ind, ville det være en god ide at følge vores begynder guide til Raspberry Pi for at lære det grundlæggende.

At arbejde gennem nogle eksempler projekter er den bedste måde at lære, og vi glæder os til at se, hvad du kommer op med! Hvem ved, hvad mærkelige og vidunderlige Hindbær Pi-skabninger 10 Rarlig Hindbær Pi-Projekter 10 Vredeste Hindbær Pi Projekter Der er en gal videnskabsmand inden for hver af os, og Raspberry Pi lader din indre løn komme ud og spille. Nogle gange bliver ting underligt. Virkelig underligt. Læs mere vil du lave?

In this article