GPIO beim LES plus

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Das Mainboard des Thomas-Krenn LES plus besitzt sogenannte GPIO ("general-purpose input/output") Schnittstellen, diese können flexibel zum Messen, Steuern oder Regeln von LEDS; Schaltern, kompatiblen Sensoren eingesetzt werden. Dieser Artikel zeigt, wie Sie am Beispiel von Ubuntu Server 16.04.4 64-bit bei Linux-basierten Betriebssystemen den erforderlichen Quellcode der Steuersoftware der GPIO Schnittstellen kompilieren können. Der praktische Einsatz der GPIO Schnittstellen wird anhand einer Ansteuerung einer LED abschließend aufgezeigt.

GPIO Header

GPIO Header am Mainboard des LES plus.

Der 10 PIN GPIO Header (GPIO_CON) befindet sich beim Thomas-Krenn LES plus auf dem Mainboard unterhalb des SIM-Karten-Slots, siehe nebenstehendes Bild.

Vorbereitung

Unter Ubuntu 16.04.4 muss das Paket build-essential installiert sein, damit der Quellcode mit den nötigen Tools übersetzt werden kann.

$ sudo apt install build-essential

Quellcode GPIO/Steuersoftware FINTEK 81866 downloaden

Um den Fintek GPIO Chip erfolgreich anzusprechen, ist der Quellcode der Steuersoftware erforderlich.

Laden Sie die aktuelle Version, passend für Ihr Linux-basiertes System, herunter:

Quellcode entpacken und kompilieren

Nach dem Download erfolgt die Kompilierung des Quellcodes. Führen Sie nun die nachfolgenden Schritte durch, um den Quellcode zu entpacken und anschließend zu kompilieren.

Ablauf der Kompilierung
  • Verzeichnis für den Quellcode erstellen:
$ mkdir ~/gpio
  • Wechseln Sie in das Verzeichnis:
$ cd ~/gpio
  • Kopieren Sie die passende Quellcode Datei (In diesem Beispiel 64-Bit):
$ cp <Downloadverzeichnis >/fintek_demo_release_x86_64.zip .
  • Entpacken des Quellcodes:
$ unzip fintek_demo_release_x86_64.zip
  • Wechseln Sie in das eben erstellte Verzeichnis:
$ cd fintek_demo_release_x86_64/
  • Mit make wird die Kompilierung angestoßen:
$ make

Schema der GPIO Header am FINTEK 81866 Chip

Das unten abgebildete Schema zeigt die Beschaltung des am LES plus eingesetzten FINTEK 81866 Chips.

Schema der Beschaltung des FINTEK Chip 81866

Test einer LED am GPIO Header

Um eine LED direkt am GPIO PIN zu betreiben, ist ein Vorwiderstand in der Schaltung erforderlich, um Schäden am Mainboard wie auch der angeschlossenen LED vorzubeugen. Die eingesetzte LED besitzt folgende Eigenschaften: 2V und 30 mA

LED direkt an den GPIO Pins angeschlossen

Berechnung des Vorwiderstandes

Formel der Berechnung des Vorwiderstandes

Da der Strom in der Schaltung auf dem GPIO PIN etwa 3V DC beträgt, lässt sich der Vorwiderstand, wie nachfolgend dargestellt, leicht errechnen.

  • Rv: gesuchter Vorwiderstand in Ω
  • U0: Betriebsspannung Mainboard (3V DC)
  • UF: Vorwärtsspannung LED (2V DC)
  • IF: Stromaufnahme der LED (0.030A)

Für die LED wird folglich ein Widerstand mit folgenden Eigenschaften eingesetzt:

  • R1 (E12 Serie)
  • 33 Ohm
  • Leistung: 0.04 W
  • Gesamtstrom der Schaltung: 31 mA
  • Gesamtleistung: 0.1 W

Steuern der LED auf der Kommandozeile

Die LED kann auf der Kommandozeile gesteuert werden. Dieser Abschnitt zeigt, wie Sie die LED ein- und wieder ausschalten können.

LED einschalten

Nachdem die Schaltung provisorisch aufgebaut wurde, können Sie mit dem folgenden Befehl die LED ansteuern:

$ ./demo_gpio 0x81 1 1 1

Hiermit wird die Adresse 0x81 (=PIN 2 GPIO Header) auf Output, HIGH gesetzt (Wert 0x1) --> LED ist an.

LED ausschalten

Um die LED wieder auszuschalten, verwenden wir das folgende Kommando:

$ ./demo_gpio 0x81 1 1 0

Hier wird die Adresse 0x81 (=PIN 2 GPIO Header) auf Output, LOW gesetzt (Wert 0x0) --> LED ist aus.


Weitere Steuerungsmöglichkeiten

Dieses einfache Beispiel zeigt, wie man über die GPIO-Schnittstellen unkompliziert und schnell Komponenten wie LEDs ansteuern kann. Es können aber noch weitere und komplexere Vorhaben realisiert werden:

  • Auslesen von Tastern
  • Verwenden von externen, angeschlossenen Relaissteuerungen.

Testumgebung

Die Testumgebung bestand aus den folgenden Hard- und Softwarekomponenten:

  • Thomas-Krenn LES plus
  • Ubuntu 16.04.4 LTS 64-bit
  • Kernel: Linux ubuntu 4.4.0-130-generic


Foto Wilfried Seifert.jpg

Autor: Wilfried Seifert

Wilfried Seifert, tätig in der Abteilung Systems Engineering bei Thomas-Krenn, ist in seinem Arbeitsbereich für die System-/Prototypenentwicklung sowie Softwaredeployment / Rollout zuständig. LPIC 3 zertifiziert, beschäftigt sich u.a. mit Aufbau / Programmierung Embedded Systemen.


Das könnte Sie auch interessieren

Dateistatus mit stat unter Linux anzeigen
TCP Port 25 (smtp) Zugriff mit telnet überprüfen
Wlan Powermanagement unter Linux mit iw regeln