Der I²C-Bus des Raspberry Pi (Teil 1)

© Konstantin Sutyagin, 123RF

I-Quadrat-C

Für umfangreiche Projekte genügen die Anschlussmöglichkeiten der RasPI-GPIO-Schnittstelle oft nicht. Hier bietet der I

README

Viele RasPi-Projekte nutzen zur Kommunikation mit Aktoren oder Sensoren die GPIO-Schnittstelle. Doch diese ist in ihren Möglichkeiten limitiert. Mit dem I2C-Bus steht als Alternative ein industriell standardisierter Datenbus zur Verfügung, der sich mit den richtigen Tools leicht in eigene Projekte einbinden lässt. In dieser Artikelreihe erläutern wir den I2C-Bus des RasPi Schritt für Schritt.

Die leistungsfähige GPIO-Schnittstelle des Raspberry Pi nutzen Bastler für viele interessante Hardware-Projekte. Allerdings lassen sich einige Dinge via GPIO nicht oder nur in begrenztem Umfang umsetzen. Dazu gehören etwa analoge Ein- und Ausgaben, die die GPIO generell nicht unterstützt.

Auch das Vorhandensein von nur einem PWM-Ausgang erweist sich schnell als Bremsklotz. Software-Lösungen wie etwa ServoBlaster [1] bieten dafür zwar schnelle Abhilfe, doch auch diese sind nur von begrenztem Nutzen. Benötigen Sie für ein Projekt wirklich viele digitale IOs, dann stoßen Sie schnell an die Grenzen des Möglichen.

Eine einfache und professionelle Lösung für umfangreiche Projekte stellt der I2C-Bus dar. Auf der Platine des Raspberry Pi finden Sie zwei entsprechende Schnittstellen. In den folgenden Teilen dieser Artikelreihe beschäftigen wir uns mit verschiedenen Halbleitern, die alle eine Gemeinsamkeit aufweisen: eine Schnittstelle zum I2C-Bus.

Allgemeines

Beim I2C-Bus – man spricht das I-Quadrat-C aus – handelt es sich um einen seriellen Master-Slave-Bus, der sich für die Kommunikation über kurze Distanzen eignet, also hauptsächlich innerhalb von Platinen oder Geräten. Die Technik stammt aus den frühen 1980er-Jahren und wurde ursprünglich von Philips (heute NXP Semiconductors) für den Einsatz in der Unterhaltungselektronik entwickelt.

Die Datenübertragung erfolgt synchron über 2 Leitungen: eine Datenleitung (SDA) und eine Taktleitung (SCL). Beide Leitungen ziehen Pullup-Widerstände auf ein positives Potenzial. Ein Bus-Master gibt Takt und Betriebsmodus vor und initiiert die byteweise erfolgende Kommunikation. Die Übertragungsgeschwindigkeit des Busses beträgt zwischen 100 kbit/s bidirektional im Standard-Mode und bis zu 5 MBit/s unidirektional im Ultra-Fast-Mode (siehe Tabelle "I2C-Taktraten").

I2C-Taktraten

Modus

Maximale Übertragungsrate

Richtung

Standard-Mode

100 kbit/s

bidirektional

Fast-Mode

400 kbit/s

bidirektional

Fast-Mode Plus

1 MBit/s

bidirektional

High-Speed-Mode

3,4 MBit/s

bidirektional

Ultra-Fast-Mode

5,0 MBit/s

unidirektional

Der I2C-Bus arbeitet mit einem Adressbereich von 7 Bit. Dadurch ergeben sich bis zu 128 Adressen, von denen allerdings 16 für Sonderaufgaben reserviert bleiben – es gibt also 112 freie Adressen. Das achte Bit teilt dem Slave mit, ob er Daten vom Master empfangen soll oder Daten an den Master zu übertragen hat.

Üblicherweise lassen sich nur die unteren Bits der Adressen an den Slaves frei wählen, die oberen Bits stehen fest. Die möglichen Adressen für einen Baustein entnehmen Sie am besten dem Datenblatt des fraglichen Produkts. Die Tabelle "I2C-Adressen" zeigt einige Beispiele zu den verschiedenen Adressbereichen.

I2C-Adressen

Typ

Funktion

Adresse

PCF8574

Port-Expander

0x20 - 0x27

PCF8574A*

Port-Expander

0x38  - 0x3F

PCF8591

A/D- und D/A-Konverter

0x90 - 0x9F

PCF8583

Clock/Calendar

0xA0 - 0xA2

* Der Typ A unterscheidet sich nur durch den Adressraum vom Standard-PCF8574.

Benötigen Sie für ein größeres Projekt mehr als die 112 möglichen Adressen, dann sorgen Sie mit einem auf den primären I2C-Bus aufgesetzten Busmultiplexer für neue Adressierungsmöglichkeiten. Diesem speziellen Baustein widmen wir uns in einem der folgenden Teile dieser Reihe.

Aufgrund der ursprünglichen Konzeption, nur wenige Zentimeter überbrücken zu müssen, zeigt sich der I2C-Bus in der Praxis als sehr anfällig für Störungen. Es gibt allerdings verschiedene Möglichkeiten, die elektrischen Eigenschaften des I2C-Busses zu verbessern. Sie reichen vom Anpassen der Pullup-Widerstände bis zum Tunneln durch CAN-Bus-Treiber. In einigen der späteren Teile dieser Reihe setzen wir uns intensiver mit unterschiedlichen I2C-Bus-Treibern auseinander.

Testaufbau

Direkt auf der GPIO des Raspberry Pi finden Sie auch eine I2C Schnittstelle. Die Pins P1-03 (SDA_1) und P1-05 (SCL_1) besitzen sogar schon die benötigten Pullup-Widerstände (1,8 kOhm gegen +3,3 Volt). Eine zweite I2C-Schnittstelle erreichen Sie über den Verbinder P5, allerdings müssen Sie diese erst auf der Rückseite des Raspberry Pi auflöten. Die zweite Schnittstelle sprechen Sie über die Pins P5-3 (SDA_0) und P5-4 (SCL_0) an, es fehlen jedoch die vorbestückten Pullup-Widerstände.

Zum Testen schließen wir nun einen PCF8574-Mikrocontroller an den Bus an und betrachten anschließend die wichtigsten Grundfunktionen des I2C-Busses. Das Datenblatt des PCF8574 finden Sie im Internet [2]; der Schaltplan unseres simplen Testaufbaus (Abbildung 1) mit vier LEDs und Tastern liegt als ic2_test.eps sowie i2c_test.sch (für Gschem aus dem gEDA-Projekt [3]) auf der Heft-DVD bei.

Abbildung 1: Der Testaufbau mit einem PCF8574-Mikrocontroller und vier LEDs mit jeweils einem eigenen Taster.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Buchtipps

     

  • Editorial 01/2016

    Der Raspberry Pi ist mehr, als nur einer von vielen Bastelrechnern: In einer Zeit, in der immer mehr Firmen, Staaten und Behörden dem Bürger an die Daten wollen, glänzt er als ebenso preiswerter wie effizienter Baustein für ein persönliches Privacy- und Security-Konzept.

  • FreeBSD auf dem RasPi installieren

    FreeBSD bietet auf dem Raspberry Pi eine interessante Alternative zu den bekannten Linux-Derivaten. Wer die etwas aufwendige Installation nicht scheut, erhält als Lohn der Mühe ein äußerst stabiles System.

  • Die OpenELEC Box auf Basis des WeTek Play im Test

    Der Raspberry Pi 2 eignet sich hervorragend als kleines Mediacenter, das Einrichten der Hard- und Software erfordert allerdings Zeit und einiges Know-how. Die OpenELEC Box dagegen verspricht als einschaltfertiges Flaggschiff der gleichnamigen Mediacenter-Distribution das ultimative TV-Vergnügen.

  • Mit XBMC und dem Raspberry Pi zum smarten Fernseher

    Mit einem Raspberry Pi und XBMC verwandeln Sie jeden Fernseher für nur wenig Geld in einen vielfältig nutzbaren Smart-TV. Wir helfen Ihnen beim Einstieg in das XBMC-Mediacenter.

Aktuelle Ausgabe

02/2019
Neue Energien

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Scheibchenweise

    Zu den Stärken von Sonic Pi gehört es, mit wenigen Zeilen Code Samples dynamisch auszuwählen und zu zerlegen.

  • Unter Strom

    Für einen kleinen Spannungsmesser wie den INA3221 gibt es viele Einsatzmöglichkeiten. Wir zeigen, wie Sie den flexiblen Baustein richtig verdrahten.

  • Vermittlungsstelle

    Fischertechnik-Modelle bieten sich zum Fernsteuern an. Mit dem Ftduino schlagen Sie die Brücke zwischen dem RasPi und dem Technik-Spielzeug.

  • Durchgeschlängelt

    Mit den M0-Boards steigen Sie unkompliziert in die Welt der Mikrocontroller ein – ganz ohne C-Kenntnisse.

  • Gesiebt und gefiltert

    Filter und Werbeblocker einzurichten ist besonders auf Smartphones aufwendig. Den eBlocker hingegen schließen Sie einfach nur an Ihren Router an.

  • Es werde Licht

    Wollen Sie bei beginnender Dämmerung nicht ständig die Helligkeit der heimischen Beleuchtung nachregeln, überlassen Sie das einfach einem RasPi – der macht es automatisch.

  • Energiekontrolle

    Der Gesetzgeber erschwert das Direktvermarkten von Strom durch technische Hürden: So muss sich die Einspeisung etwa aus der Ferne abschalten lassen. Der RasPi löst das Problem.

  • H<->2<->-Power

    Gilt es, Energie aus einer regenerativen Quelle zu speichern, erweist sich die Kombi aus einer Brennstoffzelle und dem RasPi als ideale Lösung.

  • Kleine Wolke

    Lokale Cloud-Lösungen im Heimnetz finden immer mehr Nutzer. Mit dem RasPi und Seafile haben Sie eine Lösung zur Hand, die selbst professionellen Ansprüchen genügt.

  • Planvoll verdrahtet

    Die Leiterplattendesign-Software KiCad leistet trotz einer etwas umständlichen Bedienung auch Hobbybastlern gute Dienste.