Auch wenn in dem oben verlinkten Beitrag schon einige Informationen zum Betrieb des Interfaces geschrieben steht, möchte ich hier nochmal eine Beschreibung der Hardware und eine Schritt-für-Schritt Anleitung geben, wie das Interface auch an "neueren" PCs funktionieren kann.
Zunächst zum AufbauAngeschlossen wird das Interface an den Parallelport (LPT), also den Druckerport. Dieser hat 25 Pins, von denen aber nur einige belegt sind (siehe zum Beispiel
https://en.wikipedia.org/wiki/Parallel_port#/media/File:25_Pin_D-sub_pinout.svg). Man unterscheidet 8 Daten-Leitungen (vom Rechner zum Gerät) und 9 Steuerleitungen (4 zum "Drucker", 5 zurück). Die übrigen Pins liegen auf Masse.
Die zwei Schalt-Ausgänge werden über einen Optokoppler gesteuert von den Daten-Bits 5 und 4 gegen Masse.
Die vier Messeingänge werden - von einer 4-fach OpAMP verstärkt - von einem A/D-Wandler gemessen. Es handelt sich um den (8-Kanal!) Wandler ADC0838. Dieser gibt die Messergebnisse seriell (SPI-Protokoll) aus. Um ihn zu steuern, kommen vom Rechner drei Steuerleitungen: CS (chip select) auf Bit 3, DI (data in) auf Bit 0 und CLK (clock) auf Bit 1. Letzteres gibt dem Chip einen Takt vor, dazu später mehr.
Die Ausgabe der Messwerte erfolgt über eine einzige Datenleitung DO (data out). Diese schaltet über einen Optokoppler das Datenbit 2 gegen die Steuerleitung "ERROR" (vor dem Umbau). Nach dem Umbau liegt die Spannung vom Datenbit 2 ständig an "ERROR" an und wird durch DO gegen Masse geschaltet.
Es läuft also eigentlich eine serielle Kommunikation über die parallele Schnittstelle. Und das bedeutet, daß kein bidirektionaler Modus des Druckerports notwendig ist. Der Modus (Normal, BiDi, EPP, ECP), der am Rechner eingestellt ist, ist also egal!
Zum UmbauDer Umbau invertiert, wie oben beschrieben, die Datenleitung zurück zum Rechner. Ob sie tatsächlich notwendig ist, kann ich leider nicht mehr sagen; vor dem Umbau hatte ich einen Fehler gemacht, daß es nicht klappte ist auf jeden Fall darauf zurückzuführen... (Aber vielleicht findet sich ja noch jemand mit einem nicht umgebauten Interface zum testen...)
Schritt für SchrittIch habe die Ur-Version 1.0 nicht mehr finden können, kann mich aber auch erinnern, daß sie schon unter Windows 3.11 nur an einem einzigen Vormittag zum laufen zu überreden war... Man nehme die Version 1.01!
Für Windows-Versionen größer 3.11/95/98/ME ist userport.sys von Tomas Franzon (bekommt man hier:
http://www.embeddedtronics.com/design&ideas.html) Pflicht. Ohne kann es nicht funktionieren.
Hintergrund: Die Schnittstellen wurden früher direkt über die ihnen zugewiesenen Speicher-Bereiche angesprochen; wer mit dem Soundblaster 16 noch 0x220 assoziiert, weiß wovon ich spreche. In späteren Versionen kümmerte sich Windows darum und die Programme sollten Befehle von Windows dafür verwenden. Doch dafür ist die Kosmos-Software etwas zu alt... sie möchte die Schnittstelle gerne über den Speicherbereich ansprechen. Und den Zugriff auf diesen verwehrt Windows in der Regel; userport.sys ist ein Gerätetreiber, der ihn doch wieder zur Verfügung stellt.
Da ergibt sich aber die nächste Hürde: userport gibt von Haus aus drei Speicherbereiche frei, die eigentlich die gängigen Adressen abdecken. Vielleicht aber auch nicht. Deswegen gilt es zunächst, die Speicherbereiche aller vorhandenen LPT-Anschlüsse herauszufinden. Vor Windows 95 werden die Bereiche im BIOS konfiguriert und man sollte dort nachsehen. Mit Windows 95 kümmert sich schließlich Windows darum: Im Gerätemanager (in neueren Versionen: Systemsteuerung -> Verwaltung -> Computerverwaltung -> Geräte) klickt man sich bis zu den Parallelports vor, wählt Eigenschaften und in der letzten Registerkarte ("Anschlüsse") kann man den Speicherbereich ablesen (übligerweise einer aus 0x378-0x37F, 0x278-0x27F, 0x3BC-0x3BF, 0x3E8-0x3EF). Notieren.
Falls userport noch nicht installiert ist: Entpacken und userport.sys nach C:\Windows\system32\drivers kopieren.
Nun das Konfigurationsprogramm von userport (userport.exe) starten und sicherstellen, daß alle notierten Speicherbereiche auch aufgeführt bzw in den aufgeführten enthalten sind. Mit einem Klick auf "Start" sicherstellen, daß der Treiber geladen ist.
Nun kann man das Interface anschließen, eine Schaltung aufbauen und ein Kosmos-LAB starten. (Das Interface braucht nicht beim Windows-Start verbunden zu sein, die LABs müssen auch nicht in einem Kompatibilitätsmodus ausgeführt werden.) Es sollte nun funktionieren. Falls nicht, siehe nächsten Abschnitt.
was nun passiert... und EinstellungenDie Kosmolab Software probiert nun einige bekannte Adressbereiche aus. Gleichzeitig probiert sie an jedem dieser Anschlüsse auch verschiedene Takte für den A/D-Wandler aus. Nachdem das passiert ist, kann man diese Suche unter C:\Windows\kosmos.ini protokolliert sehen. Sollte der oben für den Parallelport ermittelte Speicherbereich wider Erwarten nicht bei den durchsuchten sein, kann man ihn hier auch selber festlegen.
Wenn nun das Interface nun immernoch nicht gefunden wird, so liegt wahrscheinlich ein Konflikt mit irgendeiner anderen Hard- oder Software vor. Dann sollte man im Gerätemanager (oder im BIOS, je nach Windows-Version) den Speicherbereich verstellen. Bei mir klappte 0x378 nicht, obwohl er im userport-Bereich 200-37f enthalten war, nach dem Umstellen auf 0x3bc wurde das Interface dann erkannt.
Ist das Interface gefunden worden, sieht man gegen Ende der Datei die ermittelten Werte (Speicherbereich, Zeitintervall für den Takt und ob die Datenleitung invertiert ist (nach dem Umbau: 0).
Für zusätzlichen Komfort kann man nun noch im Installationsverzeichnis (C:\HITEC) die hitec.ini bearbeiten. Dort lässt sich die Größe der LAB-Fenster beim Programmstart (Standard ist so groß wie der Bildschirm) festlegen. Wenn man das Minimieren erlaubt, lassen sich die Fenster auch in der Größe anpassen.
AusblickDa auch nach dem Umbau mein Interface erst auf 0x3bc gefunden wurde (und ich das vor dem Umbau nicht probiert habe), kann ich nicht sagen, ob dieser notwendig war.
Die einzige zwingende Voraussetzung jedoch ist ein Computer mit Parallel-Port. Also einem eingebauten. USB-LPT Adapter können nicht funktionieren: ihr Treiber stellt keinen eigenen Speicherbereich zur Verfügung und KosmoLab kann sie deswegen nicht nutzen.
Damit scheiden eigentlich alle moderenen Computer aus. (Ich habe aber noch zwei Ideen... werde weiter probieren und berichten.)