So aktivieren Sie SPI / I2C auf Raspberry Pi (und was für sie zu verwenden)

Sie kennen wahrscheinlich die GPIO-Pins auf dem Raspberry Pi, aber was ist mit den SPI- und I2C-Anschlüssen? Wozu dienen sie und wie können Sie sie nutzen?

Sie kennen wahrscheinlich die GPIO-Pins auf dem Raspberry Pi, aber was ist mit den SPI- und I2C-Anschlüssen?  Wozu dienen sie und wie können Sie sie nutzen?
Werbung

Der Raspberry Pi kann für fast alles verwendet werden. Von Home-Media-Centern bis hin zu individuellen Retro-Gaming-Setups kann man sagen, dass der Pi und ähnliche Single-Board-Computer allgegenwärtig werden.

Wenn Sie anfangen, mit den GPIO-Pins auf Raspberry Pi zu experimentieren, werden die Dinge noch interessanter. Wir haben bereits behandelt, was all diese Pins tun, also schauen wir uns jetzt an, wie Sie die SPI- und I2C-Protokolle auf Ihrem Pi aktivieren können und warum Sie dies wünschen.

Was ist SPI auf Raspberry Pi?

Bevor wir eintauchen, wollen wir kurz auf die beiden Protokolle eingehen.

SPI (oder Serial Peripheral Interface) ermöglicht einem Mikrocontroller wie dem Pi, mit mehr als 100 peripheren Komponenten gleichzeitig zu kommunizieren. Der Mikrocontroller fungiert als "Master" für alle "Slave" -Komponenten und kann mit ihnen mit hoher Geschwindigkeit kommunizieren. Dieses Diagramm skizziert eine einfache SPI-Verbindung:

SPI und I2C auf dem Raspberry Pi
Bildquelle: Cburnett / wikipedia.org

Wenn Sie zum ersten Mal über SPI lesen, kann es ziemlich einschüchternd wirken, aber bleiben Sie dabei! SCLK ist die vom Master festgelegte Taktfrequenz, die die Geschwindigkeit bestimmt, mit der die Informationen zwischen den Geräten ausgetauscht werden.

Bei jedem Zyklus (oder "Tick") der Uhr senden und empfangen sowohl der Master als auch der Slave ein Bit an Information. Dies ist, was die Pins MOSI (Master Out Slave In) und MISO (Master In Slave Out) sind.

Der SS- oder Slave-Auswahl-Pin (mit CE0 oder CE1 auf dem Pi gekennzeichnet) wird verwendet, um einem Slave-Gerät mitzuteilen, zu irgendeinem Zeitpunkt mit dem Master zu kommunizieren - oder nicht. In den meisten Fällen benötigt jedes Slave-Gerät seinen eigenen SS-Pin, kann aber die Pins SCLK, MOSI und MISO teilen.

Einige Geräte können "verkettet" werden, um einen SS-Pin zu teilen, wobei die Anzahl der insgesamt verwendeten Pins auf vier, plus zwei für Power und Masse beschränkt bleibt. SPI ist dafür bekannt, dass es unglaublich schnell ist und häufig in Schieberegistern oder ADCs (Analog-Digital-Wandlern) verwendet wird, um Daten zwischen Geräten zu übertragen.

Augmented Startups YouTube-Kanal hat einen leicht zu befolgenden Primer für SPI, der das Protokoll weiter erklärt:

So aktivieren Sie SPI auf Raspberry Pi

Um SPI auf Ihrem Raspberry Pi zu aktivieren, öffnen Sie raspi-config vom Terminal aus, indem Sie Folgendes eingeben :

sudo raspi-config 

Navigieren Sie zu Schnittstellenoptionen, und wählen Sie im folgenden Menü P4 SPI Aktivieren / Deaktivieren des automatischen Ladens des SPI-Kernel-Moduls . Wählen Sie an der Eingabeaufforderung Ja . SPI ist jetzt aktiviert!

SPI und I2C auf dem Raspberry Pi

Alternativ können Sie SPI aus der Datei /boot/config.txt aktivieren . Öffnen Sie ein Terminalfenster und geben Sie ein:

 sudo nano /boot/config.txt 

Suchen Sie nach einer Zeile mit dem Namen # dtparam = spi = on und entfernen Sie das Symbol # . Unabhängig davon, wie Sie SPI aktivieren, starten Sie Ihren Pi neu und SPI wird aktiviert.

Was können Sie mit SPI auf Raspberry Pi tun?

Während es Hunderte von verschiedenen Projekten gibt, die viele verschiedene SPI-Peripheriegeräte verwenden, ist ein gutes Einstiegsprojekt die Programmierung eines eigenen RFID-Lesers.

Wir verwendeten den MFRC-522 Leser in unserem DIY Smart Lock mit Arduino und RFID Tutorial DIY Smart Lock mit Arduino und RFID DIY Smart Lock mit Arduino und RFID Hier erfahren Sie, wie Sie einen einfachen RFID-basierten Smart Lock mit einem Arduino als Backbone und einem Wenige billige Komponenten. Weiterlesen . Für eine Raspberry Pi-aromed Einführung in RFID, lesen Sie piddlerintheroot's eingehende Instructable.

Diese Art von Setup ist nicht nur für Hobby-Elektronik. In unserer Sammlung der besten Himbeer-Pi-Projekte Die 13 besten Himbeer-Pi-Projekte des Jahres 2017 Die 13 besten Himbeer-Pi-Projekte des Jahres 2017 Sie werden von diesen beeindruckend kreativen Himbeer-Pi-Projekten überwältigt sein. Lesen Sie mehr, wir haben ein umfassendes MES-System vorgestellt, das mit Raspberry Pi und RFID im Rahmen eines groß angelegten Fabrikbetriebs in Europa läuft.

Was ist I2C auf Raspberry Pi?

I2C ist ein Kommunikationsprotokoll, das von Phillips Electronics entwickelt wurde und in Mikrocontroller-gestützten Hobbyprojekten eingesetzt wurde. Der Grund dafür ist offensichtlich - es verwendet nur zwei Drähte statt SPI mindestens vier. Es wird auch von benutzerdefinierten Bibliotheken gut unterstützt. Es gibt viele Komponenten, die für die Verwendung mit I2C auf Raspberry Pi entwickelt wurden. Obwohl es langsamer ist als SPI, funktioniert es immer noch schnell genug für die meisten täglichen Anwendungen.

Ähnlich wie SPI hat das Protokoll ein Master- Gerät, wie das Pi, und ein Slave- Gerät, wie zum Beispiel einen Bildschirm, ein Schieberegister oder einen Motortreiber.

Die erste Verbindung zwischen den Geräten ist die SCL (Serial Clock), die vom Master eingestellt wird, um die Datenübertragung zu synchronisieren. Die zweite Zeile ist die SDA (Serial Data), die die Daten zwischen allen Geräten am I2C-Bus hin und her überträgt.

Das Master-Gerät beginnt die Kommunikation mit einem Start- Bit und einer 7-Bit- Hex-Adresse . Dies muss mit dem Slave-Gerät übereinstimmen, damit sie kommunizieren können. So können so viele Geräte mit nur zwei Leitungen verwendet werden.

Das Master-Gerät gibt dann an, ob es den Slave lesen oder schreiben ( R / W ) möchte, bevor er eine Bestätigung oder ACK zurück erhält.

Ein einfacher und ausführlicher Blick auf I2C wird erneut von YouTuber Augmented Startups geboten:

So aktivieren Sie I2C auf Raspberry Pi

I2C ist auch auf dem Pi über das Raspi-Config- Menü aktiviert . Öffne das Terminal und gib ein:

 sudo raspi-config 

Verwenden Sie die Pfeiltasten, um Schnittstellenoptionen auszuwählen, gefolgt von P5 I2C Aktivieren / Deaktivieren des automatischen Ladens des I2C-Kernelmoduls . Bestätigen Sie, dass Sie das Protokoll aktivieren möchten, und Sie sollten einen Bestätigungsbildschirm sehen.

SPI und I2C auf dem Raspberry Pi

Wie bei SPI können Sie I2C auch aktivieren, indem Sie Ihre Datei config.txt ändern. Öffnen Sie ein Terminal und geben Sie Folgendes ein:

 sudo nano /boot/config.txt 

Ändern Sie # dtparam = i2c_arm = on und entfernen Sie das Symbol # .

SPI und I2C auf dem Raspberry Pi

Starte deinen Pi neu, und I2C ist bereit zu gehen!

Was können Sie mit I2C auf Raspberry Pi tun?

I2C ist ideal für jedes Projekt, das eine große Anzahl von Ausgängen benötigt. Eine typische Verwendung ist für LCD-Bildschirme, die bis zu 16 Pins benötigen. I2C bringt dies auf nur zwei für die Kommunikation und zwei für Power und Boden.

Viele LCD-Bildschirme sind mit einem I2C-Rucksack ausgestattet, wodurch sie viel einfacher einzurichten sind und den Rest Ihrer Pi-Pins für andere Sensoren und Peripheriegeräte freigeben.

TheRaspberryPiGuy enthält ein ausführliches YouTube-Tutorial zum Einrichten und Verwenden eines LCD-Bildschirms mit I2C auf Raspberry Pi

Mit SPI und I2C Spins Pins!

SPI und I2C auf Raspberry Pi sind sicherlich nicht für komplette Hobby-Elektronik-Anfänger, aber sie sind auch nichts zu fürchten.

Bevor du einsteigst, wäre es eine gute Idee, unserem Anfängerleitfaden zu Raspberry Pi zu folgen, um die Grundlagen zu lernen.

Durch einige Beispielprojekte zu arbeiten, ist der beste Weg zu lernen, und wir freuen uns darauf zu sehen, was Sie daraus machen! Wer weiß, was für seltsame und wunderbare Himbeer-Pi-Kreationen? 10 Ungewöhnlichste Himbeer-Pi-Projekte 10 Unheimlichste Himbeer-Pi-Projekte Es gibt einen verrückten Wissenschaftler in jedem von uns, und der Raspberry Pi lässt deinen inneren Loon herauskommen und spielen. Manchmal werden die Dinge komisch. Sehr seltsam. Lesen Sie mehr, die Sie machen werden?

In this article