Hvordan aktivere SPI / I2C på Raspberry Pi (og hva de skal bruke dem til)

Du vet sikkert om GPIO-pinnene på Raspberry Pi, men hva med SPI og I2C-kontaktene? Hva er de for, og hvordan kan du gjøre bruk av dem?

Du vet sikkert om GPIO-pinnene på Raspberry Pi, men hva med SPI og I2C-kontaktene?  Hva er de for, og hvordan kan du gjøre bruk av dem?
Annonse

Raspberry Pi kan brukes til nesten alt. Fra hjemmet media sentre til egendefinerte retro gaming oppsett, er det trygt å si at Pi og lignende single-board datamaskiner blir allestedsnærværende.

Når du begynner å eksperimentere med GPIO-pinnene på Raspberry Pi, blir det enda mer interessant. Vi har allerede dekket hva alle pinnene gjør, så nå la oss se på hvordan du aktiverer SPI- og I2C-protokollene på Pi og hvorfor du kanskje vil.

Hva er SPI på Raspberry Pi?

Før du dykker inn, la oss kort dekke hva disse to protokollene gjør.

SPI (eller Serial Peripheral Interface) tillater en mikrokontroller som Pi å kommunisere med over 100 perifere komponenter samtidig. Mikrokontrolleren fungerer som en "master" til alle "slave" -komponentene, og kan kommunisere med dem med høy hastighet. Dette diagrammet beskriver en enkel SPI-tilkobling:

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

Hvis dette er første gang du leser om SPI, kan det virke ganske skremmende, men hold deg til det! SCLK er klokkens hastighet satt av master som bestemmer hastigheten som informasjonen deles mellom enhetene.

Ved hver syklus (eller "tick") på klokken, sender både mester og slave en og annen informasjon. Dette er hva MOSI (Master Out Slave In) og MISO (Master In Slave Out) pins er for.

SS eller Slave Select pin (merket CE0 eller CE1 på Pi) brukes til å fortelle en slaveenhet å kommunisere med master-eller ikke-til enhver tid. I de fleste tilfeller krever hver slaveenhet sin egen SS-pinne, men kan dele SCLK-, MOSI- og MISO-pinnene.

Noen enheter kan være "daisy chained" for å dele en SS-pin, og holde de totale pinnene brukt ned til fire, pluss to for kraft og jord. SPI er kjent for å være utrolig rask og brukes ofte i skiftregister eller ADC (analog til digital omformere) for å overføre data mellom enheter.

Augmented Startups YouTube-kanalen har en enkel å følge grunnleggende for SPI som forklarer protokollen ytterligere:

Slik aktiverer du SPI på Raspberry Pi

For å aktivere SPI på din Raspberry Pi, åpne raspi-config fra terminalen ved å skrive inn:

sudo raspi-config 

Naviger til grensesnittalternativer, og velg P4 SPI i den følgende menyen Aktiver / deaktiver automatisk lasting av SPI-kjernemodul . Velg Ja ved vinduet ledeteksten. SPI er nå aktivert!

SPI og I2C på Raspberry Pi

Alternativt kan du aktivere SPI fra filen /boot/config.txt . Åpne et terminalvindu og skriv inn:

 sudo nano /boot/config.txt 

Se etter en linje som leser # dtparam = spi = on og fjern # symbolet. Uansett hvilken måte du aktiverer SPI, start på nytt Pi og SPI blir aktivert.

Hva kan du gjøre med SPI på Raspberry Pi?

Mens det er hundrevis av forskjellige prosjekter som bruker mange forskjellige SPI-kringkasting, programmerer et godt startprosjekt din egen RFID-leser.

Vi brukte MFRC-522-leseren i vår DIY Smart Lock med Arduino og RFID-veiledning DIY Smart Lock med Arduino og RFID DIY Smart Lock med Arduino og RFID Slik bygger du en enkel RFID-basert smart lås ved hjelp av en Arduino som ryggraden og en få billige komponenter. Les mer . For en Raspberry Pi-smaksatt introduksjon til RFID, sjekk ut piddlerintheroot's In-depth Instructable.

Denne typen oppsett er ikke bare for hobbyelektronikk heller. I vår samling av beste Raspberry Pi-prosjekter De 13 beste Raspberry Pi-prosjektene i 2017 De 13 beste Raspberry Pi-prosjektene i 2017 Du vil bli blåst bort av disse imponerende kreative Raspberry Pi-prosjektene. Les mer, vi presenterte et fullskala MES-system som kjører med Raspberry Pi og RFID, som en del av en storskala fabrikkoperasjon i Europa.

Hva er I2C på Raspberry Pi?

I2C er kommunikasjonsprotokoll opprettet av Phillips Electronics, som har sett en bølge av bruk i mikrokontrollerbaserte hobbyprosjekter. Årsaken til dette er åpenbart - det bruker bare to ledninger i stedet for SPIs minimum fire. Den støttes også av brukerlagde biblioteker. Det er mange komponenter designet for å bli brukt med I2C på Raspberry Pi. Mens det er tregere enn SPI, fungerer det fortsatt raskt nok for de fleste daglige bruksområder.

I likhet med SPI har protokollen en masterenhet, for eksempel Pi, og en slaveenhet, for eksempel en skjerm, skiftregister eller motordriver.

Den første tilkoblingen mellom enhetene er SCL (Serial Clock) som er satt av master for å synkronisere overføringen av data. Den andre linjen er SDA (Serial Data) som overfører dataene frem og tilbake mellom alle enhetene på I2C-bussen.

Masterenheten begynner kommunikasjon med en startbit og en syv-biters hex-adresse . Dette må samsvare med slaveenheten slik at de kan kommunisere. Slik kan så mange enheter brukes med bare to ledninger.

Masterenheten angir deretter om den vil lese eller skrive ( R / W ) slaven, før du mottar en bekreftelse eller ACK tilbake.

En lett å følge og grundig se på I2C tilbys igjen av YouTuber Augmented Startups:

Hvordan aktivere I2C på Raspberry Pi

I2C er også aktivert på Pi via raspi-config- menyen. Åpne terminalen og skriv inn:

 sudo raspi-config 

Bruk piltastene til å velge Interfacing Options, etterfulgt av P5 I2C Aktiver / Deaktiver automatisk lasting av I2C kjernemodul . Bekreft at du vil aktivere protokollen, og du bør se en bekreftelsesskjerm.

SPI og I2C på Raspberry Pi

Som med SPI, kan du også aktivere I2C ved å endre din config.txt-fil. Åpne en terminal og skriv inn:

 sudo nano /boot/config.txt 

Endre # dtparam = i2c_arm = på, fjern # symbolet.

SPI og I2C på Raspberry Pi

Reboot din Pi, og I2C er klar til å gå!

Hva kan du gjøre med I2C på Raspberry Pi?

I2C er flott for ethvert prosjekt som krever et stort antall utganger. En typisk bruk er for LCD-skjermer, som krever opptil 16 pins å bruke. I2C bringer dette ned til bare to for kommunikasjon og to for kraft og jord.

Mange LCD-skjermer leveres med en I2C "ryggsekk" festet, noe som gjør dem mye enklere å sette opp, og frigjøre resten av Pi-pinnene dine til andre sensorer og eksterne enheter.

TheRaspberryPiGuy har en detaljert YouTube-opplæring om å sette opp og bruke en LCD-skjerm med I2C på Raspberry Pi

Bruke SPI og I2C sparer pinner!

SPI og I2C på Raspberry Pi er absolutt ikke for komplette hobby elektronikk nybegynnere, men de er heller ikke noe å være redd for.

Før du dykker inn, vil det være en god ide å følge vår nybegynners guide til Raspberry Pi for å lære det grunnleggende.

Å jobbe gjennom noen eksempler på prosjekter er den beste måten å lære på, og vi gleder oss til å se hva du kommer med! Hvem vet hva merkelig og herlig Raspberry Pi kreasjoner 10 Rarlig hindbær Pi-prosjekter 10 Rarlig hindbær Pi-prosjekter Det er en sint forsker i hver av oss, og Raspberry Pi lar din indre lønn komme ut og leke. Noen ganger blir ting merkelige. Virkelig rart. Les mer du vil gjøre?

In this article