Konfiguriert den UART der Chips der Winbond W83877 und W83977-Familie für die Benutzung des IrDA-Anschluß.
1. Idee und Geschichte
Auf meinem Mainboard (ein Gigabyte GA586ATX) befindet sich der W83877TF-Chip
von Winbond, der unter anderem die seriellen Schnittstellen zur Verfügung
stellt. Das interessante daran ist, daß man den COM2 umschalten kann, so daß
man an vier Pins, die sich auf dem Mainboard befinden, eine
IrDA-Schnittstelle anschließen kann. So weit so schön.
Doch leider fehlt in meinem BIOS die Option, diese Umschaltung vorzunehmen.
Ich habe zwar an Gigabyte geschrieben und sie gebeten, mir doch ein
modifizieres Update zu schicken, doch das habe ich nie bekommen.
Also habe ich mir mit Hilfe der Dokumentation des Chips ein Programm
geschrieben, daß diese Konfiguration vornimmt. Seitdem läuft mein
selbstgebauter Infrarotport einwandfrei.
Das war also Version 1, inzwischen habe ich es erweitert um auch andere
Modis und noch die Chips der Familie W83977 zu unterstützen, das ist die
Version 2.00 . Es können jetzt fast alle Optionen, die der Chip im
Zusammenhang mit IrDA zur Verfügung stellt, angesprochen werden, au&zslig;erdem
wird der vorhandene Chip automatisch erkannt.
Leider kann ich die neuen Möglichkeiten bei mir nicht testen, also bin ich
auf Feedback angewiesen.
Dank an Dschen Reinecke! Auf seiner Homepage (www.infrarotport.de) findet ihr unter anderem auch die Anleitung für den Infrarotport.
Download IRCFG v2.0beta (20,9kb)
Falls nötig: Download IRCFG v1.0 (18,4kb)
2. Funktion
IRCFG konfiguriert direkt den Controller-Chip um, was üblicherweise das
BIOS machen sollte, aber dies ist aus irgendeinem Grund bei einigen BIOS
nicht implementiert worden.
Auf Details der Funktion des W83877TF verzichte ich hier, unten findet ihr
die URL der Dokumentation des Chips. Teilweise zitiere ich einfach nur
technische Details, ohne zu wissen, was das wirklich ist.
Es gibt also die Möglichkeit, den zweiten, seriellen Port (COM2), entweder
ganz normal als seriellen Ausgang zu verwenden oder statt dessen als
Infrarot-Schnittstelle zu verwenden. Bei der zweiten Alternative lassen sich
verschiedene Modis und Protokolle auswählen, sowie weitere Optionen angeben.
Syntax:
ircfg detect
oder
ircfg com2={MODE}[{OPTIONS}]
detect
ircfg stellt fest, ob ein unterstützter Chip vorhanden ist es werden keine Einstellungen vorgenommen
MODE
der Modus für den seriellen Controller, einer der folgenden:
serial
normaler, serieller Modus
irda
wie irda1, sollte für die meisten Anwendungen gehen
irda1
IrDA, IRTX active pulse 1.6µs, IRRX demodulated into SINB
irda2
IrDA, IRTX active pulse 3/16 bit time, IRRX demodulated into SINB
askir1
ASK-IR, IRTX inverted, IRRX routed to SINB
askir2
ASK-IR, IRTX inverted & 500kHz clock, IRRX routed to SINB
askir3
ASK-IR, IRTX inverted, IRRX demodulated into SINB
askir4
ASK-IR, IRTX inverted & 500kHz clock, IRRX demodulated into SINB
OPTIONS
weitere Einstellungen für den gewählten Modus
+fullduplex
Fullduplex-Übertragung (default für IRDA und ASKIR)
+halfduplex
Halfduplex-Übertragung
{+|-}txw4c
vor dem Senden eine 4 Zeichen entsprechende Periode nach dem letzten Empfangen abwarten, anschalten (default)/ausschalten
{+|-}rxw4c
vor dem Empfangen eine 4 Zeichen entsprechende Periode nach dem letzten Senden abwarten, anschalten (default)/ausschalten
{+|-}tx2inv
Invertierung des SOUTB/IRTX-Pins anschalten/ausschalten(default)
{+|-}rx2inv
Invertierung des SINB/IRRX-Pins anschalten(default)/ausschalten
Beispiele:
Den meisten dürfte wohl folgende Einstellung reichen, damit betreibe ich
meinen TFDS4500-IrDA-Transmitter.
ircfg com2=irda
Und wenn man COM2 ganz normal verwenden will, einfach eingeben:
ircfg com2=serial
Der Modus askir4, jedoch mit Halfduplex und beide Pins nicht invertiert:
ircfg com2=askir4+halfduplex-rx2inv
3. Hardware- und Softwarevorraussetzung
3.1 Hardware
Benötigt wird natürlich ein unterstützter Chip, also einer aus der Reihe
Winbond W83877 und W83977. Erfolgreich getestet wurde es bisher mit dem
W83877TF und W83877F.
Diese Chips finden sich auf den Mainboards von Gigabyte, erfolgreich getestet
wurde es bisher mit dem GA586ATX und dem GA586GA5HX.
Möglicherweise funktioniert es auch mit verwandten Chips und Boards, sagt mir
dann am besten bescheid!
3.2 Software
Soweit ich es gestestet habe, funktioniert es unter DOS 7.0 als auch in der
DOS-Box von Windows 95. Müßte aber auch unter ähnlichen System arbeiten.
4. weiter Informationen
5. Disclaimer
Ich übernehme selbstverständlich für keine entstehenden Schäden und
Datenverluste die Verantwortung.
(Ich habe aber bisher noch keine Klagen gehört.)
Fehler und Verbesserungsvorschläge an mich: ir@flobecker.de
26.09.2001 Florian Becker