Da kann ich Dir leider nicht helfen; ich kenne nur die Problematik, weil mein recht teurer Brenner (mit DOS-Software) durch Windows bereits 2 mal 'getötet' wurde, nur weil sein Netzschalter ein war und er mit der Master-Slave-Steckdosenleiste direkt eingeschaltet wurde.
Der Klang der 'schnell klappernden' Relais bleibt mir in ewiger Erinnerung
Der Grund für das Toggeln der Parallelport Pins liegt vermutlich am BIOS. Das prüft auf die Art, ob an der Adresse ein Parallelportbaustein angeschlossen ist.
Dazu wird ein Wert in die entsprechende Adresse geschrieben und wieder ausgelesen. Wenn der ausgelesene Wert gleich dem geschriebenen ist, ist ein Port(-Baustein) da. Sonst nicht.
Ich vermute, das wird bei neueren Boards auch nicht viel anders sein.
Das kann in 'meinem Fall' nicht sein, da das Relais-Klappern jeweils einige Sekunden dauerte und nicht während dem Hochbooten des BIOS, sondern erst nach mehreren Sekunden während dem Hochfahren von Windows 98 zu hören war.
Das BIOS prüft idR nicht, das sollte bei BiDi/EPP die Leitungen sogar in den Tristate schalten. Das Vorhandensein eines Parallelports lässt sich auch feststellen ohne die Datenleitungen anzufassen. Allerdings ist nur spezifiziert, dass während diverse Testphasen nichts gestrobed werden soll, was die Datenleitungen sonst so machen ist wohl jedem BIOS- und OS-Programmierer frei überlassen. Daher: Latch davor, am besten eins mit Clear-Eingang (HCT273), Clear beim Einschalten der Karte schön lange auf Masse ziehen und Strobe auf den Takteingang und gut is. Nur musst Du dann noch klären, wie Du die Strobe-Leitung ansprichst. Wie werden denn in Deiner Sprache die anderen Leitungen bedient? Eigentlich ist Strobe auch nur ein Bit in einem Register, nur halt nicht auf der Basisadresse (zB 378h), sondern irgendwo höher (frag Tante Google, die Zeiten sind bei mir länger schon vorbei wo ich die Chip-Register noch beim Vornamen kannte).
Ach wenn das nur ne andere Adresse ist sollte das sogar gehen...
Ich werde mal Tante Google nach Latch befragen, ich hab nämlich kein Schimmer was der macht . Habe ich das richtig verstanden dass ich dann hinterher im Programm die Datenbits setzen würde, dann strobe und der Latch dann die Werte hält und weiterreicht? Und ich die erst dadurch wieder ändern kann das ich wieder die Bits setze und strobe? Und in der Zwischenzeit theoretisch alle Bits irgendwie umsetzen könnte ohne dass sich an der Relaisstellung was ändern würde? Das wäre ja total genial =).
Wenn ich das Ding jetzt nehmen würde, an die Eingänge die acht Datenpins, an LE den Strobe (Wenn High, dann folgen die Ausgänge den Eingängen, wenn low, dann sind die Ausgänge scheinbar festgestellt auf ihren letzten Wert wenn ich das richtig verstanden habe), dazu noch Masse und Vcc, OE freilassen und die Ausgänge Q an die Eingänge des ULN2803A (so momentan die 8 Datenpins direkt dran hängen)... wie wäre dann die Funktion? Meiner Logik nach müsste ich dann auf den Datenpins setzen können was ich will, solange Strobe low ist ändert sich an der Relaisstellung gar nüx? Und wenn ich dann meine Datenbits absichtlich so gesetzt habe wie ich sie haben will, kurz Strobe, dann hält er diese Werte?
Hach, wenn das wirklich so geht fang ich doch langsam an Elektronik toll zu finden .
Nimm den 74HC273, der hat einen Reset-Eingang.
Die folgende Schaltung ist für 255 mal 8 Ausgänge (IC3 und IC4) und Eingänge (IC5) am Parallelport gedacht.
Sie kann ohne Adress-Latch / -Dekoder auf 8 Ausgänge reduziert werden.
Schön, kalledom und ich sind uns einig, beide meinen wir: HC273 (oder HCT73), das ist das Latch Deiner Träume. Durch den CLR-Eingang kannst Du das Ding während des Einschaltens definiert auf 0 setzen, so dass da sicher nichts klappert. Ansonsten passt Deine Erkenntnis schon: das Latch übernimmt nur bei der steigenden Flanke von CLK die Daten, also am Ende des Strobe-Impulses. IMHO ist das sogar im Rahmen der Spezifikationen. Ganz furchtbar korrekt wird es dann, wenn Du am Ende des Strobes noch kurz einen 1..5us langen ACK-Impuls an den PC schickst, das ist aber *nur* notwendig, wenn Du BIOS- oder OS-interne Routinen für die Druckerausgabe zweckentfremden willst, wenn Du direkt mit dem Port sprichst (Register) brauchst Du das nicht.
In dem Schaltplan, das gestrichelte, ist das dann der LPT? Ich hab keine Ahnung was ich mit dem Clock-Signal machen soll bzw. wie das genau funktioniert deshalb wollte ich da irgendwie drumrum kommen... beim Einschalten was auf Null setzen geht ja schlecht, da läuft ja noch kein Programm. Oder wie muss ich das verstehen? Brauche ich die Dinger IC6A-D?
Strobe ist wohl standardmäßig immer auf high, low bedeutet "Hallo hier kommen Daten!". Also müsste meine Schaltung bei Strobe auf high (wohl dann auch beim Booten so) die "gelatchten" Daten verwenden (da gerade eingeschaltet alle low bzw. wenn halt später per Programm gesetzt kann man den LPT wieder komplett auf Null setzen ohne das die Relais öffnen) und wenn ich den Strobe kurz auf low setze müsste er die aktuell anliegenden Signale übernehmen...
Ich hatte absichtlich den 373 gepostet weil ich dachte ich käme mit dem um den Clock herum. Ich will doch nur ne Lösung die funktioniert, 8 Kanäle reichen völligst aus und direkt die Register ansprechen find ich eigentlich ganz gut *buhu heul*
Ich lese grade das Datenblatt vom 273er: Der Clear-Eingang ist ja invertiert. D.h. wenn der auf High ist, dann liegen an den Ausgängen die Werte an die am Ende des letzten Clears an den Eingängen waren, richtig? Und wenn ich Clear auf low ziehe gehen alle Ausgänge auf 0, richtig? Und wenn jetzt Clear wieder auf high wechselt packt der sich die aktuellen Eingangswerte, merkt sich die und hat die permanent an den Ausgängen anliegen, bis zum nächsten Clear, richtig? Wenn alles drei richtig ist dann hab ich zumindest schon mal grob die Funktion gerafft.
Brauche ich zwingend den Clock? Oder gehts zur Not auch ohne? Wo bekomm ich nen clock her?
Ansonsten noch was: Ich kann also Strobe direkt an CLR, Data 0-7 direkt an die 8 Eingänge und den ULN2803 direkt an die 8 Ausgänge klemmen, ohne irgendwas dazwischen zu schalten?
Aber echt ein super Forum hier, da wird einem geholfen mit größten Bemühungen! Danke schön dafür erstmal .
Lesezeichen