LCD-Display als Statusanzeige unter Linux

Aus BraLUG-Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (kategorisiert)
(Kernel-Modul fdti_sio)
Zeile 30: Zeile 30:
  
 
===Kernel-Modul fdti_sio===
 
===Kernel-Modul fdti_sio===
 +
Innerhalb der Quellen des Kernel-Modules fdti_sio sind einige Änderungen vorzunehmen. Es geht dabei um die Bekanntgabe der Ventor- und Produkt-ID. Die beiden entsprechenden Dateien sind unter /usr/src/linux/drivers/usb/serial/ zu finden (Kernelquellen sollten installiert sein). In den Quelle verschiedener Kernelversionen gab es bereits einen Eintrag für das ELV-Modul UO100. Ich habe meine Einträge jeweils hinter diesen Stellen vorgenommen:
 +
 +
'''fdti_sio.h:'''
 +
#define FTDI_ELV_ULA200_PID    0xF06D  /* USB-LCD-Ansteuerung (ULA 200) */
 +
 +
 +
'''fdti_sio.c'''
 +
 +
static struct usb_device_id id_table_8U232AM [] = {
 +
...
 +
{ USB_DEVICE_VER(FTDI_VID, FTDI_ELV_ULA200_PID, 0, 0x3ff) },
 +
...
 +
 +
static struct usb_device_id id_table_FT232BM [] = {
 +
...
 +
{ USB_DEVICE_VER(FTDI_VID, FTDI_ELV_ULA200_PID, 0x400, 0xffff) },
 +
...
 +
 +
static struct usb_device_id id_table_combined [] = {
 +
...
 +
{ USB_DEVICE(FTDI_VID, FTDI_ELV_ULA200_PID) },
 +
...
 +
 
===Wie steuert man ULA-200 nun unter Linux an?===
 
===Wie steuert man ULA-200 nun unter Linux an?===
 
====Textausgaben auf dem Display====
 
====Textausgaben auf dem Display====

Version vom 20. Dezember 2005, 08:20 Uhr

ELV-Bausatz ULA-200

Inhaltsverzeichnis

Motivation

Wer kennt nicht das Problem -> irgendwo in der Ecke steht ein Server ohne Tastatur und Monitor. Plötzlich funktioniert die Kiste nicht mehr, ist zu langsam o.ä.. Warum?

Gut man könnte jetzt Monitor, Tastatur anschliessen und nachschauen... Viel schöner ist es doch aber eine kleine Statusanzeige zu haben, auf der man mit einem Blick sehen kann, in welchem Zustand sich der Rechner befindet. Die Kröunung wäre es, wenn man noch ein paar Tasten zur Verfügung hätte, mit denen einige, vordefinierte, Aktionen ausführen kann.

Im Internet und diversen Zeitschriften sind eine Menge Lösungen zu finden. Nach einiger Suche habe ich mich für den ELV-Bausatz ULA-200 entschieden. In diesem Artikel wird beschrieben, was zu tun ist, dieses Modul auch unter Linux anzusteuern.

ULA-200 von ELV

Technische Daten ULA-200

Innerhalb dieses Abschnittes soll es nicht darum gehen, den Bausatz ULA-200 (Artikel-Nr.: 68-572-39) von ELV in allen Einzelheiten zu besprechen. Es sollen nur kurz die wichtigsten Merkmale genannt werden, die dann u.a. auch der ausschlaggebenden Punkte für meine Wahl gewesen waren. Detailiertere Informationen sind aus der entsprechenden Bedienungsanleitung zu ziehen.

Merkmale:

  • Der Bausatz beinhaltet eigentlich nur die Ansteuereinheit für ein HD-44780-kompatibel LC-Display. Angeschlossen wird das Teil an einem USB-Port. Als USB-Seriell-Wandler wird ein Chip vom Typ FTU232 verwendet. Es existiert hierzu ein Kernel-Modul (ftdi_sio) in den aktuellen Kernels (siehe weiter unten dazu). Dahinter befindet sich noch ein Micro-Controller, welcher speziell definierte Befehle (siehe Bedienungsanleitung) versteht und diese entsprechend auf die Datenleitungen der HD-44780-kompatiblen LC-Displays umsetzt.
  • Stromversorgung erfolgt über die USB-Schnittstelle -> ein wichtiges Kriterium für mich.
  • Neben dem LCD können auch bis zu 6 Taster angeschlossen werden, welche einzeln abgefragt werden können.
  • Preis 28,50 Euro (ohne eigentliches Display, weiterhin sind noch einige Kleinmaterialien zum sinnvollen Aufbau hilfreich)

Einige Hinweise zum Bausatz

Bei der Bestellung des Bausatzes sollte man nicht vergessen gleich ein entsprechendes LC-Display sowie den dafür geeigneten Kabelsatz mitzubestellen (wird aber auch auf der entsprechenden ELV-Shop-Seite gleich mit vorgeschlagen).

Der Aufbau der Schaltung ist relativ einfach. Es wird bei ELV zwar darauf hingewiesen, dass ein Großteil der Bauelemente im SMD-Format vorliegen, aber gerade diese sind im Auslieferungszustand bereits auf der Leiterplatte bestückt. Also keine Angst...! Die eigenen Lötarbeiten beschränken sich also auf das Bestücken der LEDs, Widerstände, Steckverbinder usw.. Man benötigt ca. 1 Stunde, wenn man sich etwas Zeit läßt.

Zum Bausatz gehört auch ein wenig Software (auf 3,5"-Diskette...;-)). Das beiliegende Testprogramm liegt aber nur als Windowsprogramm vor. Da man davon ausgehen kann, dass dieses Testprogramm funktioniert, habe ich den ersten Funktionstest mit diesem durchgeführt. Funktioniert alles, kann man sich mit der Ansteuerung unter Linux beschäftigen...

Nebenbei, auf der Diskette ist auch eine Library des FTDI-Chip-Herstellers zur Ansteuerung des selbigen enthalten. Allerdings liegt das Zeug nur als closed source vor...

Kernel-Modul fdti_sio

Innerhalb der Quellen des Kernel-Modules fdti_sio sind einige Änderungen vorzunehmen. Es geht dabei um die Bekanntgabe der Ventor- und Produkt-ID. Die beiden entsprechenden Dateien sind unter /usr/src/linux/drivers/usb/serial/ zu finden (Kernelquellen sollten installiert sein). In den Quelle verschiedener Kernelversionen gab es bereits einen Eintrag für das ELV-Modul UO100. Ich habe meine Einträge jeweils hinter diesen Stellen vorgenommen:

fdti_sio.h:

#define FTDI_ELV_ULA200_PID     0xF06D  /* USB-LCD-Ansteuerung (ULA 200) */


fdti_sio.c

static struct usb_device_id id_table_8U232AM [] = {
...
{ USB_DEVICE_VER(FTDI_VID, FTDI_ELV_ULA200_PID, 0, 0x3ff) },
...
static struct usb_device_id id_table_FT232BM [] = {
...
{ USB_DEVICE_VER(FTDI_VID, FTDI_ELV_ULA200_PID, 0x400, 0xffff) },
...
static struct usb_device_id id_table_combined [] = {
...
{ USB_DEVICE(FTDI_VID, FTDI_ELV_ULA200_PID) },
...

Wie steuert man ULA-200 nun unter Linux an?

Textausgaben auf dem Display

Tastenabfrage

Weitere interessante Links zum Thema

'Persönliche Werkzeuge