© prettyboy80/Shutterstock.com
Mobile Technology
Teil 1: Sensor mit I2C in Android Things

Fühler für die Hardware

Android Things ist - sowohl unter Java als auch unter C - in Sachen Hardwareinteraktion alles andere als schnell. Unser Raspberry Pi bringt mit seinen hardwarebeschleunigten Bus-Interfaces eine alternative Möglichkeit mit, die uns die Arbeit erleichtert. Als Erstes wollen wir uns mit I2C beschäftigen - einem von Philips Semiconductor entwickelten Bus, der heute bei Sensoranbietern große Popularität genießt.

Tam Hanna


ArtikelserieTeil 1: Sensor mit I2C in Android ThingsTeil 2: Schwarz-weiß-Displays mit SPI anschließenTeil 3: Farbdisplays anschließen

In der Praxis findet man Verweise auf den Namen TWI oder Two-Wire Interface – Philips hatte ein Patent auf den Namen, weshalb insbesondere Unternehmen wie Atmel einen alternativen Begriff bevorzugten. Aus technischer Sicht ist I2C einfach: Vom Master zu den Slaves laufen zwei Leitungen. Die erste der beiden, als SDA bezeichnet, ist für die eigentliche Übertragung der Daten verantwortlich. Über SCL, vulgo Serial Clock, liefert der Master einen Arbeitstakt. In den Spezifikationen findet man hier verschiedene Werte – 100 und 400 kHz sind besonders populär. Die meisten Sensoren legen keinen großen Wert auf die Genauigkeit ihrer Arbeitsfrequenz.

Von besonderem Interesse ist, wie Master und Slaves gemeinsam über eine Leitung kommunizieren können. Der Grund dafür sind die Pull-up-Widerstände. Sowohl SCL als auch SDA werden über einen Widerstand – er liegt im Bereich von 5-10 kOhm – leicht in Richtung der Versorgungsspannung gezogen. Sowohl Master als auch Slave ziehen diese Leitungen nach unten, das Hochschweben erfolgt nur über die Pull-ups. Zum Funktionieren eines I2C-Busses muss für jede Leitung ein solcher Widerstand vorhanden sein. Unser Raspberry Pi bringt allerdings schon einen mit, wie auch viele andere Einplatinencomputer. Ansonsten ist die Situation einfach. Das Kommunikationsprotokoll sieht 127 verschiedene Adressen vor, weshalb der Master vor jedem Befehl festlegt, welcher Slave für die Entgegennahme verantwortlich zeichnet.

Einrichtung des Prozessrechners

Googles unter [1] bereitstehende Entwicklerkonsole ist nach wie vor nur in Chrome lauffähig – wer die Website mit Firefox aufruft, steht vor einem niemals endenden Ladebalken.

Klicken Sie im ersten Schritt auf Add a Product, um ein neues Projekt anzulegen. Der Autor verwendet SUSHardwareBus als Name, das Vergeben eines alternativen Namens ist ebenfalls möglich. Öffnen Sie danach das von Google erzeugte Modell, und legen Sie wie gewohnt eine Build Configuration an. Als Betriebssystemversion verwendet der Autor 1.0.8.5206609 – wer eine frühere oder spätere Variante nutzt, muss mit (kleinen) Änderungen im Bereich der Hardwaretreiber rechnen.

Diesmal wollen wir die Konfiguration der Hardware teilweise im Backend vornehmen. Im fünften Schritt klicken wir auf die Option Add a Peripheral, um den Hardwarekonfigurationsassistenten zu öffnen. Wählen Sie im Feld Choose a peripheral...

Mobile Technology
Teil 1: Sensor mit I2C in Android Things

Fühler für die Hardware

Android Things ist - sowohl unter Java als auch unter C - in Sachen Hardwareinteraktion alles andere als schnell. Unser Raspberry Pi bringt mit seinen hardwarebeschleunigten Bus-Interfaces eine alternative Möglichkeit mit, die uns die Arbeit erleichtert. Als Erstes wollen wir uns mit I2C beschäftigen - einem von Philips Semiconductor entwickelten Bus, der heute bei Sensoranbietern große Popularität genießt.

Tam Hanna


ArtikelserieTeil 1: Sensor mit I2C in Android ThingsTeil 2: Schwarz-weiß-Displays mit SPI anschließenTeil 3: Farbdisplays anschließen

In der Praxis findet man Verweise auf den Namen TWI oder Two-Wire Interface – Philips hatte ein Patent auf den Namen, weshalb insbesondere Unternehmen wie Atmel einen alternativen Begriff bevorzugten. Aus technischer Sicht ist I2C einfach: Vom Master zu den Slaves laufen zwei Leitungen. Die erste der beiden, als SDA bezeichnet, ist für die eigentliche Übertragung der Daten verantwortlich. Über SCL, vulgo Serial Clock, liefert der Master einen Arbeitstakt. In den Spezifikationen findet man hier verschiedene Werte – 100 und 400 kHz sind besonders populär. Die meisten Sensoren legen keinen großen Wert auf die Genauigkeit ihrer Arbeitsfrequenz.

Von besonderem Interesse ist, wie Master und Slaves gemeinsam über eine Leitung kommunizieren können. Der Grund dafür sind die Pull-up-Widerstände. Sowohl SCL als auch SDA werden über einen Widerstand – er liegt im Bereich von 5-10 kOhm – leicht in Richtung der Versorgungsspannung gezogen. Sowohl Master als auch Slave ziehen diese Leitungen nach unten, das Hochschweben erfolgt nur über die Pull-ups. Zum Funktionieren eines I2C-Busses muss für jede Leitung ein solcher Widerstand vorhanden sein. Unser Raspberry Pi bringt allerdings schon einen mit, wie auch viele andere Einplatinencomputer. Ansonsten ist die Situation einfach. Das Kommunikationsprotokoll sieht 127 verschiedene Adressen vor, weshalb der Master vor jedem Befehl festlegt, welcher Slave für die Entgegennahme verantwortlich zeichnet.

Einrichtung des Prozessrechners

Googles unter [1] bereitstehende Entwicklerkonsole ist nach wie vor nur in Chrome lauffähig – wer die Website mit Firefox aufruft, steht vor einem niemals endenden Ladebalken.

Klicken Sie im ersten Schritt auf Add a Product, um ein neues Projekt anzulegen. Der Autor verwendet SUSHardwareBus als Name, das Vergeben eines alternativen Namens ist ebenfalls möglich. Öffnen Sie danach das von Google erzeugte Modell, und legen Sie wie gewohnt eine Build Configuration an. Als Betriebssystemversion verwendet der Autor 1.0.8.5206609 – wer eine frühere oder spätere Variante nutzt, muss mit (kleinen) Änderungen im Bereich der Hardwaretreiber rechnen.

Diesmal wollen wir die Konfiguration der Hardware teilweise im Backend vornehmen. Im fünften Schritt klicken wir auf die Option Add a Peripheral, um den Hardwarekonfigurationsassistenten zu öffnen. Wählen Sie im Feld Choose a peripheral...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang