PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Relaiskarte spielt beim PC- Start verückt!



bot-session
08.06.2005, 10:19
Hi,

ich hab ein Problem mit meiner Parallelport- Relaiskarte
(http://www.sullus-computer.de/kemo/bausatz/b210_d.html), und zwar kommen beim Ein- und Ausschalten des PC, Signale über die Druckerschnittstelle. Die Relais spielen dann quasi solange verrückt, gibt es eine Möglichkeit, das abzustellen. Natürlich dürfen die Signale an der Druckerschnittstelle nicht komplett unterbunden werden, sonst ist ja kein Steuern der Karte mehr möglich. ;)

Ich hoffe ihr könnt mir weiterhelfen!

MfG Steffen[/url]

ghost0
08.06.2005, 11:59
Du kannst die Versorgungsspanung ueber einen Mosfet schaltbar machen. Ein paar Steuerpins sind an der Schnittstelle noch frei, die dafuer 'missbraucht' werden koennen. Am besten vorher mit dem Oszi ueberprüfen.

Wenn das ganze als retriggerbares Monoflop aufgebaut wird, hast Du noch eine Watch-Dog Funktionalität.

Mfg
Heinz

churchi
08.06.2005, 12:49
Das am Parallelport während dem Startvorgang schon Daten anliegen ist anscheinend ganz normal, aber wozu das ist weiß ich nicht.
Vielleicht werden eventuell angeschlossen Drucker gleich initialisiert?
Wenn ich den Programmieradapter am Computer angeschlossen habe resettet sich der AVR immer wieder.

Ob das mit dem Abschalten der Versorgungsspannung funktioniert müsste man erstmal testen. Ich weiß nicht ob während dem Starten irgendein Pin unverändert bleibt den man nachher manuell einschalten kann.

Wenn du dir die Software für die Karte selber geschrieben hast und direkt auf den LPT zugreifen kannst, dann könnte es funktionieren.
Aber falls es ein fertiges Programm ist dann hast du vermutlich keinen Zugriff auf die einzelnen Pins.

Am einfachsten wär vermutlich wenn du einfach die Karte während dem Booten abschaltest.

Oder du verwendest einen kleinen AVR und schließt an diesem die Karte an. Der AVR wird dann über die serielle (oder USB mit FTDI) an den Computer angeschlossen und du schreibst dir ein kleines Programm mit dem du die Karte dann steuern kannst.

Firebird
29.05.2006, 01:23
Hallo!

Weisst Du mittlerweile ob irgend ein Pin "unangetastet" bleibt? Das würde mir grade auch extrem helfen :).

shaun
29.05.2006, 09:10
Du schreibst zwar nicht, welches OS Du benutzt, aber das Problem kling mir doch sehr nach Windows. Hast Du für den Parallelport die Legacy-Erkennung für PnP ausgeschaltet? Immer wieder ein beliebter Fehler, der während einer Windows-Session periodisch Programmiergeräte abschiesst.

Firebird
29.05.2006, 09:36
Ich mein das nervige rumklacken der Relais beim Bootvorgang. Eines meiner Relais in meinem Rechner ist für den "Notaus" zuständig und das ist natürlich extrem blöd wenn der während des initialisierens ausgelöst wird :). OS ist aber tatsächlich Win XP.

Plug & Pray is ausgeschaltet für LPT.

shaun
29.05.2006, 10:43
Auch wenn Du es in der Systemsteuerung ausschaltest, können missgelaunte Druckertreiber auf eigene Faust nach Geräten suchen, ebenso Treiber für Parallelportscanner. Irgendwas davon vorhanden?
Eine weitere Option wäre noch, dass Dein BIOS POST-Codes über den Port der Parallelschnittstelle sendet. Viele Notebooks machen das, aber auch bei Desktop-Boards hatte ich das schon. Deine Relaiskarte wertet anscheinend die Strobe-Leitung nicht aus? Wenn die Karte ein Protokoll wie ein alter Nadeldrucker sprechen würde (mit STR fallend Daten übernehmen, kurz BUSY und/oder am Ende ACK sagen) dürfte eigentlich nichts passieren, denn sonst würde ein angeschlossener Textdrucker ja auch drucken, bzw. jeder der Textdrucker-Emulation beherrscht. Ich habe meinen Selbstbau-EPROM-Emulator so seinerzeit in den Griff bekommen, angenehmer Nebeneffekt dabei: ich brauchte keine Software, einfach Binärdatei nach LPT kopieren :)

Firebird
29.05.2006, 10:52
Ne, das ist nur ne ganz einfache fix zusammengeworfene Karte, die hängt einfach nur direkt an den 8 Daten-Pins. Und ja, beim BIOS-Post werden alle einmal durchgeklickt, was halt im Falle des Notaus zu... ja, genau, ausschalten führt. :).

Missgelaunte Drucker- oder Scannertreiber kann es nicht geben, es gibt schlicht kein solches Gerät (und demzufolge auch keinen Treiber) an dem Rechner, das hängt schön zentral am Server.

Wenn das nur manche Boards machen dann warte ich erstmal auf mein neues bevor ich mir da weiter den Kopf drüber zerbreche. Kann sich ja nur noch um Wochen handeln bis die 7900GT wieder lieferbar ist :-# . Und dann kommt auch der Rest mit AMD X2 (auch nicht lieferbar), 2GB RAM, schönes Asus-Board..... sorry, ich freu mich nur so sehr :).

kalledom
29.05.2006, 11:12
Hallo,
Ist es nicht so, daß Windows grundsätzlich beim Hochfahren Signale an der Parallel-Schnittstelle ausgibt (bei der Seriellen auch) um festzustellen, ob z.B. der installierte Drucker oder ein 'neuer' Drucker angeschlossen ist ?
Dann müßte es ja so sein, wie shaun bereits geschrieben hat, daß das Strobe-Signal beim Hochfahren nicht benutzt wird, weil dem Drucker ja sonst schon Zeichen übergeben würden und die I/O-Karte dieses Strobe-Signal nicht 'verwaltet'.
PS: Für meinen Allmax Plus Brenner am Druckerport ist im eingeschalteten Zustand das Hochfahren von Windows absolut tödlich.

Firebird
29.05.2006, 11:25
Hmmm, da könntest Du recht haben. Ich hasse dieses Plug & Pray... ohne hat auch alles prima funktioniert, wenn nicht sogar besser. Klar, es ist komfortabler, klar, jeder verstehts, klar, es hat sicher geholfen den PC zum absoluten Massenprodukt zu machen. Aber wehe es ist mal ein Fehler im System oder man will mal was machen was nicht ganz so "Standard" ist... Bei den neueren Rechnern wird es ja mittlerweile POSITIV bewertet wenn so "veraltete Schnittstellen" wie seriell und parallel nicht mehr vorhanden sind. Perverse Welt... Aber so ist es halt mit dem Mainstream.

Kann sich noch jemand an die Anfänge der PnP-Zeit erinnern, so mit ISA-Karten die PnP-fähig waren und noch ein paar im Rechner dies nicht sind? War das ein Spaß :).

Zurück zum Thema: Strobe lässt sich leider nicht so herrlich einfach ansprechen unter VB wie die Daten-Pins. Ich kanns leider grad nicht testen aber vielleicht weisst Du das ja ausm Stegreif: Schickt Windows an alle Pins gleichzeitig einmalig ein Signal oder wie läuft das?

kalledom
29.05.2006, 12:01
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 :-(

Kater_5
29.05.2006, 12:49
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.

Gruss
Axel

kalledom
29.05.2006, 13:01
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.

shaun
29.05.2006, 15:27
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).

Firebird
29.05.2006, 15:38
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 =).

Firebird
29.05.2006, 16:45
Also Strobe kann ich definitiv geben und hab mich mal gleich auf die Suche nach nem "Latch" begeben. Und das hier gefunden:

http://www2.produktinfo.conrad.com/datenblaetter/150000-174999/151203-da-01-en-74HCT373.pdf

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 :).

PICture
29.05.2006, 18:11
Hallo Firebird!

Strobe ist bit B0 im Register 37Ah.

MfG

kalledom
29.05.2006, 19:39
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.

shaun
29.05.2006, 19:57
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.

Firebird
29.05.2006, 22:25
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 :).

shaun
29.05.2006, 23:05
Oh mann, noch mal ganz langsam. Der Clock ist der Witz des Ganzen, der Sinn und Zweck eines Latches und die einzige Möglichkeit, warum wehrst Du Dich so vehement, etwas kennen zu lernen, was Du anscheinend noch nicht kennst? Meinst Du, unter diesen Umständen wirklich das richtige Hobby zu haben?! Clock kommt an Strobe und gut, noch Pullups an alle Leitungen damit die Eingänge Deiner Schaltung auch schön definiert sind, wenn der Port nicht angestöpselt oder deaktiviert ist (4,7kOhm oder so). Was meinst Du wohl, warum ich über Strobe und das Latchverhalten des 273 rumreferiert habe?! Du legst Daten an, Strobe auf low und gleich wieder auf high, mit der Flanke werde die Daten übernommen und danach kann mit den Datenleitungen passieren was will, Deine Relais bleiben stabil. Die CLR-Leitung setzt bei Low die Ausgänge auf definiert 0, wenn sie erstmal high ist, sollte sie es auch bleiben. Steuern kannst Du die CLR-Leitung zB über eine RC-Kombination: 47k nach +5V, 10uF nach Masse und dann noch ne Diode von CLR nach +5V, damit sich der Elko beim Ausschalten nicht durch das arme IC entlädt.

kalledom
29.05.2006, 23:24
Das Gestrichelte im Schaltplan könnte z.B. das Parallel-Port sein.
CLK hat in diesem Fall nichts mit einem Clock / Takt im Sinne einer Frequenz zu tun. Clock-Eingang bedeutet, daß die Daten bei einer steigenden oder fallenden Flanke, beim 273 bei einer steigenden Flanke, übernommen werden. Sie bleiben so lange gespeichert, bis eine neue Flanke andere 8 Bits übernimmt. Ansonsten können sich die 8 Bits ändern wie sie wollen.
CLR ist ein Reset-Eingang, der bei logisch Null alle Register und Ausgänge auf Null setzt. Damit kann z.B. beim Einschalten durch einen Elko nach GND und einen Widerstand nach Plus ein definierter Anfangszustand, nämlich alles Null = Aus gesetzt werden. Der Elko ist beim Einschalten leer, und liefert Low-Pegel, bis er über den PullUp aufgeladen ist und dann High-Pegel anliegt.
Durch einen PullUp-Widerstand an einem Parallelport-Pin und einem Inverter können die Ausgänge mit CLR so lange auf Null gehalten werden, bis ein Programm diesen Pin auf Low setzt.
Strobe kann direkt an CLK und CLR mit den beschriebenen Möglichkeiten angeschlossen werden.
Die 'Dinger' IC6A-D sind NAND-Gatter; Du brauchst sie nicht, wenn der Strobe direkt an CLK angeschlossen ist.

PS: Oha, da hab ich jetzt zu lange gebraucht, um rauszufinden, ob beim 273 bei fallender oder steigender Flanke die Daten übernommen werden.

Firebird
30.05.2006, 00:34
Ich gebs ja zu, ich hab keine Ahnung. Oder mehr so ne Halbahnung, aber stets bestrebt was dazuzulernen. Und bei Clock war halt das erste was mir in den Sinn gekommen ist irgendein Taktgeber. Das war dann einfach falsch verstanden meinerseits. Ich bin ja hier um was dazuzulernen :).

Pullup-Widerstand soll heissen den Pin vom LPT nicht nur an den Pin sondern auch noch über den Widerstand auf Masse? Ne, das war Pulldown, also dann mit Pullup: An Eingang 1 sagen wir mal Daten-Pin 1 und über 4,7kOhm nach +5V? Bei der RC-Kombination: Wirklich 47k oder auch 4,7k? Also einen Widerstand von +5V an CLR, einen Kondi 10uF von CLR nach Masse und Diode von CLR nach +5V, so dass sie von CLR nach +5V durchlässt.

Ich weiss es ist schwer mit den blutigen Anfängern und ich danke euch wirklich sehr für eure Bemühungen!

Ich werd morgen mal versuchen nen Schaltplan zusammenzufriemeln wenn ich n passendes Programm gefunden habe, zur Zeit läuft das hier noch alles per Bleistift und Papier.

Edit: Habs doch noch schnell gemacht hab aber doch keine Ahnung wie wo die Diode rein muss... sonst richtig? Also bis auf 5V und GND für den 273er?

shaun
30.05.2006, 11:18
Diode hast Du Dir doch schon selbst beantwortet: Anode an CLR, Kathode an +5V. Dass die Vcc und GND des '273 noch fehlen hast Du auch schon festgestellt, und die Widerstände sollen Pullups sein, also von den neun Leitungen des LPT nach +5V, um einen definierten Pegel sicherzustellen. Den Widerstand habe ich mit 47k angegeben, um mit dem 10u-Elko eine Zeitkonstante von 0,5s hinzubekommen, die Schaltschwelle eines HC-Eingangs ist dann irgendwo bei 0,2..0,3s erreicht, das sollte reichen, damit sich die Leitungen des LPT sicher stabilisiert haben beim Einschalten des PC. Ich traue grundsätzlich nie irgendwelchen Signalen aus der "Umwelt" :)

Firebird
30.05.2006, 12:48
Alles klar... Als Diode wollte ich ne N4148 nehmen, ich denke das müsste passen?
Bei den Widerständen, müssen die irgendwie besonders sein? Ich würd jetzt einfach ganz stinknormale 1/4W nehmen. Und beim Kondensator? Irgendein spezieller Typ zu empfehlen?

Wie das mit den PullUps funktioniert hab ich glaub ich noch nicht so ganz verstanden. Liegt dann an den Eingängen nicht immer ein High an? Also ich glaub jetzt einfach mal dass man die braucht, würde aber gerne verstehen worauf das beruht. Weil High bedeutet ja beim LPT +5V... ja, ich verstehs einfach nicht.

Hab den Schaltplan noch mal aktualisiert. Funktioniert das so? Dann stapf ich nachher gleich zum Conrad und sammel die Teile ein, bestellen lohnt nicht :).

shaun
30.05.2006, 17:15
Hallöle,
1N4148 passt, die Z-Diode in Deinem Schaltplan ist unnütz, richtet aber zunächst auch keinen wirklichen Schaden an. Zu den Pullups: woher denkst Du kommt das "high" an den Eingängen? Bei TTL-Logik auf Basis bipolarer Transistoren war ein offener Eingang tatsächlich log. 1, allerdings hat das auch zum Vergessen des Beschaltens geführt und in Folge zu Störungen, die im Nachhinein keiner mehr nachvollziehen kann. Bei aktueller CMOS-Logik sind offene Eingänge undefiniert und empfänglich für jede Art von Störung, die so in der Gegend rumgeistert.

kalledom
30.05.2006, 18:29
Mit anderen Worten erklärt, es gibt viele Bausteine und µC, die am Ausgangs-Pin nur einen Transistor nach GND haben. Das bedeutet, daß bei Low am Ausgang GND raus kommt, bei High am Ausgang nix. Für dieses 'nix' wird ein PullUp-Widerstand genommen, der bei High = nix am Ausgang den Plus 'durchläßt' und bei Low am Ausgang einfach nur als Widerstand zwischen Plus und GND da ist.
Wie shaun schon geschrieben hat, offene Eingänge an CMOS-Eingängen sind teilweise für den Baustein tödlich. Deshalb lieber mal einen PullUp von 1...10kOhm verwenden, um einen definierten Pegel zu haben, wenn nicht genau bekannt ist, ob der Ausgang bei High auch einen Plus liefert.

Firebird
30.05.2006, 19:42
Ahso... ok, ich habs verstanden. Die Zener-Diode dachte ich muss da rein damit sich der Kondi nich über den IC entlädt?!?

shaun
30.05.2006, 19:51
Nö ne normale Si-Diode (die von Dir selbst genannte 4148 zB) hätte es auch getan. Meinem Vor-Vorredner möchte ich noch hinzufügen, dass ich nicht davon ausgehe, dass die Karte einmal an einem Original-PC mit 7407ern als Datenleitungstreibern landet, vielmehr dachte ich an Standby- und Stromsparkram moderner PC (Ports im High-Z Zustand) oder ganz banal das Abziehen des Parallelportsteckers bei eingeschalteter Relaiskarten-Versorgung.

Firebird
30.05.2006, 21:28
Ahso, also muss ne Si sein, ne Zener geht nicht? Und die schützt den IC wenn ich einfach den Stöpsel rausrupfe? Wenn der Rechner im standby ist haben ja weder LPT noch die Karte Strom...

shaun
30.05.2006, 23:25
Schützen, zB vor transienten Überspannungen tut da derzeit gar nichts. Die Diode ist nur dafür da, die Ladung im Elko beim Ausschalten an den Schutzdioden der IC-Eingänge vorbei nach +5V abzuleiten und den Elko so beim Ausschalten zu entladen.

kalledom
30.05.2006, 23:33
@shaun
Als wie wichtig erachtest Du eine Diode bei der hier beschriebenen Art einer Reset-Schaltung ? Bis heute habe ich einige hundert Schaltungen so aufgebaut (C zwischen 100nF und 10µF, R zwischen 1 und 47kOhm), aber noch nie ist mir ein Baustein 'verstorben'.

Firebird
31.05.2006, 00:37
Aber sie erfüllt den gleichen Zweck wie die eigentlich angedachte Zener-Diode? Oder muss ich jetzt nochmal los ne andere besorgen? :). Oder soll/kann ich sie gleich ganz weglassen (das schließe ich jetzt mal aus der letzten Aussage von Kalledom)?

PICture
31.05.2006, 07:41
Hallo Firebird!

Ich habe mir Dein Schaltplan angeschaut und es passt. Die Diode, die in Wirklichkeit zwecklos ist, kannst Du ruhig weglassen. Als die Resistoren 4,7 sind wahrscheinlich 4,7 kOhm gemeint, sonst mit 4,7 Ohm ist die LPT kaputt. Du kannst ein s.g. Widerstands-Netzwerk anwenden z.B. SIL 10-9 4,7 kOhm vom Reichelt, das spart ein paar Lötstellen.

MfG

shaun
31.05.2006, 11:13
@PICture: kennst Du Herrn Nuhr? Nein mal im Ernst: die Klemmdioden in gängigen HCMOS-ICs sind für maximal 20mA zugelassen, alles darüber kann zur Zerstörung führen. Kann, muss nicht, und wird es erfahrungsgemäß auch nicht, aber wenn doch ärgerst Du Dich u.U. Jahre später, dass Du ein sonst immer so toll funktionierendes Gerät auseinanderreissen und einen saudämlichen, auf unsaubere Dimensionierung zurückzuführenden Fehler suchen musst. Die Diode kann nur entfallen, wenn sichergestellt ist, dass der Strom durch die Klemmdiode beim Ausschalten der +5V unter 20mA bleibt. Das würde ich bei Verwendung eines PC-Netzteils als Speisequelle, an dem nebenbei auch noch ein PC hängt, nun wirklich bezweifeln. Die Fusselelkos im Netzteil und die Stromaufnahme des PC lassen die 5V-Leitung im Ausschaltmoment ziemlich schnell ziemlich 0V werden, und die Klemmdiode sieht den Kurzschlussstrom des 10u-Elkos. Ich sage nicht, dass es nicht so gut wie immer funktionieren wird (>@kalledom), aber ich habe auch schon Fälle erlebt, wo die Reset-Eingänge von Microprozessoren nicht mehr resetteten, weil die Klemmdiode offenbar durchlegiert war - und das kann bei den gegebenen Schaltungen nur durch dummen Zufall (dann aber auf 8-10 Platinen im Jahr...) oder durch den 47u-Elko, der sich durch die Diode entladen hat, passiert sein. Wirklich ihren Sinn erfüllen kann die Diode natürlich nur, wenn sie eine kleinere Flussspannung hat als die Klemmdiode des IC oder aber zwischen IC-Eingang und Klemmdioden noch ein Widerstand vorhanden ist - der aber u.U. nicht gross genug ist, den Strom durch die Klemmdioden auf 20mA zu begrenzen, wohl aber, ihn weit unter 20mA zu halten, wenn die Spannung zwischen Eingang und Vcc 0,7V nicht überschreitet.
Die Zenerdiode würde "normalerweise" den selben Zweck erfüllen, weil sie "normalerweise" nie ihren Zenerdurchbruch erleben wird.

kalledom
31.05.2006, 11:21
Als 'Reset-Kondensator' kannst Du für einen definierten Anfangszustand = alle Ausgänge Low auch ohne weiteres 100nF nehmen (ohne Diode).
10µF und 47kOhm ergeben eine Zeit von ca. 0,5s, Windows fährt erst nach einigen Sekunden hoch. Sollte Windows beim Hochfahren mit dem Strobe immer noch Unsinn machen, mußt Du wohl die Variante mit einem weiteren Parallel-Port-Signal plus Inverter nehmen, womit die Schaltung erst nach Start des Programms freigegeben bzw. Reset zurückgenommen wird.

shaun
31.05.2006, 12:05
Mein 10u-Tipp sollte einschliessen, dass die Signalpegel beim Einschalten des PC-Netzteils u.U. kurzzeitig undefiniert sind. Bei aktuellen Ports gehe ich davon aus, dass die Datenleitungen hochohmig sind und Strobe high, nur muss es da ja erstmal hinkommen. Bei Speisung aus den +5V, die auch den PC versorgen, entschärft sich die Situation natürlich. Zum Thema Diode hin oder her: ich hatte kürzlich gerade ein Gespräch mit einem Servicemenschen eines PA-Anlagenherstellers, dort hat man eine in etwa vergleichbare Schaltung gebaut, nur wurde da ein Elko nicht über die Schutzdioden in die annährend einen Kurzschluss darstellende Versorgung entladen, sondern über einen Transistor. Ging jahrelang gut, aber ohne Reihenwiderstand ist erneuter Ausfall vorprogrammiert. Ist nicht die gleiche Schaltung, aber zeigt, dass vieles, wie alle es schon immer gemacht haben dadurch nicht zwingend sauberes Design ist.

Firebird
31.05.2006, 12:37
Also ich hab die Karte jetzt zusammengelötet, erstmal mit der Zener-Diode. Er fährt auch hoch ohne Relaisklappern *JIPPIE*.

Nur: nur 3 der 8 Relais lassen sich über die Variante Datenpin + Strobe setzen. 3 schalten auch einfach ohne Strobe und 2 tun gar nüx :(.

Wenn ich direkt an die Relais die Spulenspannung gebe tun se alle, die sind also OK. Kann ich am Darlington-Array und am 273 einfach 5V an jeden Eingang mal ranhalten um zu sehen ob die dann das richtige machen? Oder gehen die dadurch futsch?

Es sind auch keine Leitungen irgendwie aus versehen verbunden, hab alle einzeln durchgemessen...

shaun
31.05.2006, 12:50
Interessantes Verhalten. Anstatt irgendwo etwas draufzugeben und damit Ausgänge kurzzuschliessen würde ich mal bestimmte Muster auf die Ausgänge programmieren und dann messen, was sich auf den Leitungen tut. So vielfältig sind die Fehlermöglichkeiten nicht bei einem simplen parallel angesteueren Latch

Firebird
31.05.2006, 13:13
Naja, um das Darlington zu testen würde ich z.B. den 273er aus dem Sockel nehmen und den Leitungen zum Darlington-Array hin dann eben die 5V. Dabei schließe ich ja nix kurz...

Du meinst verschiedene Kombinationen der Datenpins und dann wo messen? Die Leitungen vom LPT? Kombination ist ihm scheinbar egal und die Leitungen vom LPT geben auch ganz brav den Pegel. Komischerweise aber nur zwischen 3,2 und 4,6V, je nachdem welche Leitung man erwischt, merkwürdig... müssten ja eigentlich 5 sein oder irre ich?

kalledom
31.05.2006, 13:27
Wenn Du den 273 raus nimmst, kannst Du an jeden Eingang des ULN mal +5V dran legen; wenn das jeweilige Relais dann anzieht, ist der ULN ok.
Dann kannst Du den 273 wieder einstecken und den CLK-Eingang mal kurz an GND halten. Dann sollte wegen der PullUp-Widerstände 8 mal High gelatcht werden und alle Relais anziehen.
Dann kannst Du jeweils einen Eingang auf GND legen und den CLK-Eingang kurz an GND tippen, damit er das 'GND-Bit' übernimmt. Dieses Low-Bit müßte das entsprechende Relais zum Abfallen bringen.
Voraussetzung für diese Test's ist, daß du NICHT am Parallel-Port hängst, die Platine eine eigene 5V-Spannungsversorgung für den 273-er und 12V für die Relais hat, an allen Eingängen ein PullUp ist und der Reset-Eingang High-Pegel hat.

shaun
31.05.2006, 13:48
Mach es so, wie kalledom schreibt :) Die high-Spannung muss nur über 2,4V liegen, allerdings wundert es mich schon etwas, dass bei einem seit einiger Zeit üblichen CMOS-Ausgang ohne nenenswerte Last gerade keine 5V erreicht werden, und dann noch verschiedene Spannungen. Hast Du ein Oszilloskop? Nicht dass da am Ende doch noch irgendeine Software zwischenfunkt, wenn das schnell genug passiert, siehst Du das am Multimeter allenfalls als merkwürdigen logischen Pegel.

Firebird
31.05.2006, 15:51
Also 273er raus, 5V an die Eingänge des ULN: Die Relais ziehen an, also jedes einzeln.

273 rein, Strom an, alles zieht an (klar, Pullups). Clear an GND, alle öffnen. Auch OK. Aber wenn ich GND an einen der Eingänge lege lässt das jeweilige Relais los, auch ohne Strobe. Gehe ich an Strobe lassen alle los. Ich glaub der 273 hat nen Hau weg. Also ich hab die Pullups drangelassen und halt an den Eingang des 273 den Pullup und GND, is doch richtig oder?

kalledom
31.05.2006, 17:12
Der CLK benötigt auch einen PullUp, denn der sollte High sein, damit die Daten gespeichert bleiben.
Was mich wundert, daß beim Einschalten alle Relais anziehen. Wenn der CLR-Eingang richtig mit einem Kondensator / Elko und PullUp-Widerstand beschaltet ist, dürfte das nicht sein; alle Ausgänge müßten Low bleiben.
Der CLK-Eingang sollte ebenfalls High-Pegel haben, damit die Daten gespeichert bleiben.
Überprüfe mal die Pegel am CLK- und CLR-Eingang; beide müssen High sein. Es darf nicht sein, wenn bei High- oder Low-Pegel am CLK-Eingang Daten vom Eingang zum Ausgang des 273 gehen und Relais anziehen, ohne das am CLK eine steigende Flanke kommt.
Hast Du einen 100nF Kondensator unmittelbar an +5 und GND vom 273-er ? Wenn nicht, könnte das Ärger bereiten.
Edit:
... an den Eingang des 273 den Pullup und GND Was bedeutet das bei Dir ? Hast Du die PullUp's nach GND ?
PullUp's kommen immer an Plus !!! PullDown's kommen an GND, die können wir aber hier absolut nicht brauchen.

Firebird
31.05.2006, 17:38
Erstmal wegen den PullUps: Also an jedem Eingang hängt ja ein Pullup (also vom Pin über 4,7kOhm an +5V) und das Kabel zum LPT. Um jetzt nen Low-Pegel auf dem LPT zu simulieren hab ich eben an das Kabel zum LPT GND angelegt. Die Pullups gehen schon auf 5V :).

CLK hat auch einen Pullup, wie in dem Schaltplan. Beim Einschalten ohne LPT-Anschluss haben ja alle Eingänge den Pullup, also High und Strobe/CLK hat ja eben auch nen Pullup und geht auf High. Also steigende Flanke und klick :). CLK und CLR sind beide high, hab ich grade nachgemessen.

Ich hab nur das RC-Glied am CLR, das man an +5 und GND nen Kondensator setzen muss wusste ich noch gar nicht. Was bewirkt der? also zwischen +5 und GND einen Kondensator setzen, hab ich das richtig verstanden?

Edit: Ich hab ja vorhin gesagt wenn ich einfach nur CLK auf Masse ziehe lösen sich alle Relais. Stimmt gar nicht. Nur Nummer 2, 4, 6 und 8 lösen, 1, 3, 5 und 7 bleiben angezogen. HÄÄÄÄÄ?????? Ich glaub der Baustein hat ganz ganz schwer einen an der Waffel

Edit2: Ich hab den 273er mal rausgenommen. Zwischen dem CLK-Beinchen und den Inputs 2,4,6 und 8 ist unendlich hoher Widerstand, zwischen CLK und Inputs 1,3,5 und 7 hingegen ca. 1350 Ohm. Von CLK zu CLR sinds 1400 Ohm und von CLK zu GND ca. 800 Ohm. Eigentlich dürften doch die Eingänge alle den gleichen Widerstand haben müssen. Ich weiss zwar nicht welchen aber das er nicht unterschiedlich sein darf scheint ja klar zu sein...

kalledom
31.05.2006, 17:59
Da ist aber noch was oberfaul; CLK an Masse kann natürlich prellen und dabei steigende Flanken erzeugen. Trotzdem dürfen dann nicht Relais abfallen oder anziehen, es sei denn, Du hast die die Daten-Pegel / 8 Eingänge verändert.
Bei CLR nach Masse müssen alle Relais abfallen, weil dann überall Low an den Augängen ist (Reset-Zustand). Wenn das nicht so ist, dann ist der 273 im Elektronen-Himmel oder mit der 5V-Versorgung stimmt was nicht.
Du hast richtig gelesen, 100nF möglichst dicht an +5V und GND des 273, damit die (Um-) Schalt-Spitzen den Baustein nicht selber stören und Spitzen von woanders her abgefangen werden. Im 273 sind immerhin mehrere FlipFlops drin, und die reagieren ziemlich sauer auf Störspitzen.

Edit: Zwischen CLK und den Eingängen und zwischen CLR und den Eingängen zum 273 sollten gleiche Widerstands-Verhältnisse, sonst hast Du die PullUp's nicht nach +5 liegen (oder nicht alle). 4,7kOhm vom Eingang zum +5 und vom +5 mit 4,7kOhm zum CLK mach zusammen nicht ganz 10 kOhm !!!

shaun
31.05.2006, 18:01
Und Du bist ganz sicher, ihn wie im Datenblatt angegeben angeschlossen zu haben? Das Pinning der 273/373/374 ist gewöhnungsbedürftig! Dass ausgerechnet die Hälfte sich falsch verhält ist schon merkwürdig. Der Kondensator zwischen Vcc und GND ist ein Abblockkondensator, der während in dem IC schnelle Schaltvorgänge erfolgen und damit hohe Stromimpulse auftreten die Versorgungsspannung nicht zusammenbricht - das Schalten der Transistoren im IC bewirkt hohe Stromspitzen (Kapazitäten werden umgeladen, MOSFETs leiten kurzzeitig überlappend), die zusammen mit Widerstand und vor allem Induktivität der Versorgungsleitungen Spannungseinbrüche bewirken. Diese werden durch die Ladung im Kondensator abgepuffer. Dazu muss er so dicht wie möglich an Vcc und GND sitzen, kurze Anschlüsse und einen geringen Innenwiderstand haben (Keramiktyp)

kalledom
31.05.2006, 18:07
Der 273 ist im Prinzip kompatibel zu vielen anderen, bis auf Pin 1, der ist beim 373, 374 Output-Enable (TriState) und bei 273 CLR (Reset).
Aber, wie shaun schon schreibt, sehr gewöhnungsbedürftig und nicht 8 Eingänge bzw. Ausgänge schön nebeneinander; das geht auf beiden Seiten abwechselnd und verdreht !!!

Firebird
31.05.2006, 18:29
Ich hab den Widerstand direkt am Chip gemessen, also Chip aus der Fassung und direkt am Chip. Somit sind die Widerstände der PullUps da nicht mit drinnen.

CLR an Masse lässt alle Relais abfallen, das funktioniert schon richtig. Das ist aber auch das einzige. Die Beschaltung von dem Ding ist echt ein bisschen merkwürdig, musste beim Löten auch mindestens 5mal aufs Datenblatt schielen aber ich denke ich hab die trotzdem richtig angeschlossen.

Ich werd morgen mal lostippeln und nen Kondensator holen und reinsetzen aber ich denke ich werd auch gleich den Chip umtauschen. Weil wie gesagt: Diese völlig unterschiedlichen Widerstände hab ich direkt am Chip gemessen und nicht im eingebauten Zustand... Wenn er eingebaut ist und man nach den PullUps die Spannung misst haben auch die Eingänge verschiedene Spannungen, also zieht der IC wohl auf den verschiedenen Eingängen (mit ihren verschiedenen Widerständen) auch verschiedene Ströme und nach dem lieben Herrn Ohm kommt dabei halt auch ne andere Spannung raus.

kalledom
31.05.2006, 18:47
Zwischen dem CLK-Beinchen und den Inputs 2,4,6 und 8 ist unendlich hoher Widerstand, zwischen CLK und Inputs 1,3,5 und 7 hingegen ca. 1350 Ohm. Das deutet eindeutig darauf hin, daß Du KEINE PullUps dran hast, sonst würdest Du etwas unter 10kOhm messen und nicht unendlich !
Diese Messung solltest Du auf der Platine noch mal mit rausgezogenem 273 vornehmen. Oder hast Du den 273 rausgezogen und an dessen Beinchen gemessen ? Hast Du dabei auch immer drauf geachtet, wie rum die Meßschnüre waren ? In den 'Dingern' sind Dioden drin, die bei unterschiedlicher Polarität unterschiedliche Ergebnisse liefern !!!
Dabei kommt dann evtl. so was raus:
Weil wie gesagt: Diese völlig unterschiedlichen Widerstände hab ich direkt am Chip gemessen und nicht im eingebauten Zustand.
Durch den fehlenden 100nF-Kondensator alleine kommt es nicht unbedingt zu solch gravierendem Fehlverhalten; da ist noch was anderes faul. Hast Du einigermaßen stabile 5V am 273 anliegen, ich meine jetzt bei ausgestecktem ParallelPort. Laß das Port mal ganz weg, bis die Platine richtig läuft, sonst kaufst Du zu dem 100nF auch noch ein Main-Board !!!
Die Relais-Karte muß erst mal ganz alleine funktionieren.

Firebird
31.05.2006, 19:06
Die Messungen waren an dem ausgesteckten 273er! Also der war nicht in seinem Sockel, da konnten also keine Pullups mit reinspielen. Und Pullups sind da, 9 Stück an der Zahl, jeweils 4,7kOhm an Daten 0-7 und Strobe, siehe Schaltplan. Gemessen habe ich mit schwarz an CLK und das rote dann halt an jedes Beinchen einmal ran, also schon immer gleiche Polarität. Die Tests jetzt waren natürlich alle ohne Mainboard. Ich hab jetzt zum ca. 1000sten mal alle Verbindungen gecheckt und auch jeden halbwegs benachbarten Pin auf versehentlichen Kontakt zum Nachbarn hin überprüft, mit dem gleichen Ergebnis wie vorher: Es ist wirklich alles ganz genau wie auf dem Schaltplan. Ich bin immer fester davon überzeugt dass mein Chip einfach n Schaden hat. Soll ja auch schon mal vorgekommen sein......

kalledom
31.05.2006, 23:01
Wenn Du den 74HC273 (oder HCT) stundenlang mit den Fingern befummelt und mit Meßstrippen, auf denen auf Grund der Widerstandsmessung Saft ist, tracktierst hast, dann könnte der sich verabschiedet haben. Es handelt sich nämlich um einen CMOS-Baustein, der selbst bei einfachem Transport in Alufolie oder anderem leitenden Material eingepackt wird, damit ihn statische Ladungen nicht ins Jenseits befördern.
Was Du mit einer Messung vom CLK zu den restlichen Beinchen eigentlich testen möchtest, ist mir noch nicht so ganz klar; vom Plus oder GND hätte ich ja noch verstanden.
Viel wichtiger wäre es, bei ausgebautem 273 am Sockel alle Pins ohmisch zu messen, ob alle PullUps da sind, ob kein Schluß nach Plus, GND oder nach anderswo vorhanden ist.
Und wieso 9 PullUp's ? Ich zähle 8 Daten-Eingänge, den CLK und den CLR, der noch ein C nach GND hat; das macht bei mir 10 PullUp's.
Na ja, besorg Dir einen neuen 273, setze ihn ein und messe alle Eingänge, den CLK und den CLR, bei ausgestecktem Parallel-Port !!!
Dann aber bitte nicht den 273 wieder raus und tot-befummeln; schön auf Seite legen, wo leitendes Material drunter ist.

Firebird
31.05.2006, 23:34
Ich hab den nicht in Alufolie verpackt bekommen? Die haben den einfach in ihr Papiertütchen geschmissen und mir die Papiertüte mitgegeben... hmmm. Aber da ich ja an der Schaltung gar nix mehr verändert habe und den 273er erst nach Abschluss aller Lötarbeiten eingesetzt habe und auch seitdem nichts an der Schaltung verändert habe... und da hats ja auch net funktioniert, denke ich nicht dass ich den hier getötet habe. Eigentlich auch egal.

Ich dachte halt vielleicht hätten CLK und einer der Datenpins innendrin irgendwie ne komische Verbindung dass er genau bei denen rumspinnt.

Also messen zwischen Datenleitung und GND bei eingestecktem 273er?

Natürlich sinds 10 Pullups, hab den CLR einfach schlicht vergessen. Der hat aber den 10fachen Widerstand drinnen, die 9 anderen 4,7kOhm, der CLR 47kOhm und dann nochmal 10uF an Masse.

kalledom
01.06.2006, 00:29
So schnell bekommt man einen CMOS eigentlich nicht klein, zum Transport sollten die aber schon auf leitendem Material gelagert werden. Nimm einfach was Alu-Folie mit in den Laden.
Was die ohmsche Messerei an dem Baustein betrifft, so nützt Dir das eigentlich nicht wirklich. Es sind mehr Verzweiflungsmessungen, weil man nach 1000 mal suchen immer noch nichts gefunden hat, obwohl doch noch ein Fehler drin ist. Den findet man aber erst nach 1...2 mal (über-) schlafen, denn der ist so doof, daß man dann selber drüber lacht.
Also, morgen mit einem neuen IC auf ein Neues; neues Spiel, neues Glück :-)