ich hab bei einer Steuerung, die über den Parallelport angesprochen wird, ein Problem. Da sich die Output-Pins 1,14,16,17 beim starten eines Betriebssystems (z.B Win XP) im High-Zustand befinden, kommt es zu ungewollten Schaltungen in der angeschlossenen Steuerung. Hat wer eine Idee wie ich beim Starten des Betrriebssystems alle Output-Pins auf Null stellen kann? Nach dem Start des Steuerprogramms werden die Pins dann sowieso richtig gesetzt.
Wenn du kein anderes BS verwenden kannst, dann hast du mehrere Möglichkeiten.
Steuerung erst freigeben, wenn der Port stabil ist. Das könnte ein Monoflop erledigen, das beim Rechnerstart getriggert wird und auf die Zeit eingestellt ist, die der PC zum Hochfahren braucht.
Die Steuerung wird vom Ansteuerprogramm "scharfgeschaltet". Dazu muß die Steuerung allerdings intelligent sein und z.B. auf eine Zeichenfolge wie "Initialize$$" reagieren, die bei der Initialisierung durch das BS nicht vorkommt.
--
Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de
HTML mails will be forwarded to /dev/null.
ja, guter Punkt, der Benutzer k=F6nnte ja einen anderen Drucker anstecken= ,=20 da muss das System ja gleich darauf hinweisen das ein anderer=20 Druckertreiber n=F6tig sein k=F6nnte.
IMO Nicht ohne Hardware. Aber ein octal transparent latch ('373, '573, ...) könnte abhilfe schaffen. Die Umschaltung zwischen transparent und latched könnte eine Steuerleitung übernehmen, am besten so dass der Betriebszustand vom XP aus nie eintritt.
Standardtreiber parallel.sys deaktivieren und mit eigenem Treiber direkt auf den nunmehr dedizierten Port zugreifen.
Der Pegel zum Zeitpunkt des Einschaltens des Rechners bleibt allerdings undefiniert. Streng genommen ist noch nicht einmal garantiert, dass mehr als eine halbe µs nach dem Strobe-Impuls überhaupt noch etwas sinnvolles auf den Datenleitungen anliegt. In der Praxis halten aber alle mir bekannten Implementationen den Pegel bis zum nächsten Byte und manche Drucker funktionieren andernfalls auch gar nicht. Soviel zum Thema "Wen interessiert die Spezifikation?".
Windows testet nicht den Port sondern versucht angeschlossene Hardware zu finden und damit ein Protokoll aus zu handeln. Das gibt es schon seit Windows 95
Das ganze ist in IEE 1284 spezifiziert und nennt sich: Negotiation ( Parallel port plug an play)
Der einzige Pin, der dabei garantiert auf "1" bleibt ist der Strobe Pin der Centronics Schnittstelle.
Die Drucker wissen das und kommen deshalb nicht durcheinander.
"Marcel Müller" schrieb > In der Praxis halten aber alle mir bekannten Implementationen den Pegel
Welche Spezifikation ? ;-))
Der Drucker Port wurde mit der Zeit immer mehr aufgebohrt und bis zum zum plug and play Bus erweitert. Windows hatte sogar mal mal bis zu 7 Geräte gleichzeitig an dem Port unterstützt. XP "kann" nur noch 3.
Dazu kommt noch Centronics, IBM, EPP und ECP-Mode.
Dann musste noch unbedingt vom Druckertreiber alle paar Sekunden der Tintenfüllstand abgefragt werden.
Ist aber nicht nur die Schuld von MS, die Hersteller von Peripherie Geräten haben da fleißig mit geholfen.
*Hans-Georg Lehnard* wrote on Fri, 06-08-04 21:54:
Manche neue. Meine alten ziehen jedes Mal (i.e. bei jedem Hochfahren/Reset) ein Blatt ein und schreiben ein Byte Müll drauf. Freundlicherweise auch dann, wenn sie manuell auf offline standen.
Welches Steuerprogramm? Bei den üblichen Verdächtigen zur Schrittmotoransteuerung bietet Mach3 die Möglichkeit, ein "Lebenszeichen" (2 kHz PWM) auszugeben, dass man als Hardwarefreigabe nutzen kann. WinPCNC bietet das (noch) nicht.
Gruß Thorsten
--
PGP welcome!
Thorsten online: http://www.ostermann-net.de/electronic
Rund um Schrittmotor, Fräs-Bohr-Plotter & Mikrocontroller
Danke erstmals für die Antworten. Ja, es handelt sich tatsächlich um das CNC Steuerprogramm Mach3. Als Elektroniker bist Du, Thorsten, natürlich auch in dieser Newsgroup vertreten. Du kennst mich eventuell aus Peters CNC-Ecke.
Das Problem kennst Du bestimmt, wenn die Motorsteuerung vor dem Hochfahren des Pc's bereits eingeschaltet ist. Mit High-Level an Pin 1(Strobe) am Par.Port, fährt dann die Spindel hoch, Pin 14 schaltet die Kühlmittelpumpe ein u.s.w. Ich weiß, es gibt kein Problem, wenn man zuerst den PC und die Software startet und nachher die Motorsteuerung einschaltet. Das gleiche passiert auch direkt aus Mach3 wenn EmergencyStop aktiviert wird (z.B. an Pin 11). Aber das ist ein Mach3 Fehler (oder bewusst so programmiert, kann ich nicht beurteilen). Mach3 hat einen eigenen Pulsengine-Treiber(Mach3.sys) installiert, verwendet aber auch den Systemtreiber parport.sys
In Windows 2000 gibt es das obige Verhalten nicht. Aber vielleicht währe das sowieso ein Thema für Peters CNC-Ecke (Mach3). Oder man kann das ganze mit einer Logikschaltung am Parallelport abgreifen und erst wenn nach Start von Mach3 alle Pin's auf Low stehen, die Weiterleitung der Signale an die Steuerung freigeben. Wie das mit der Hardware und den Schrittmotorimpulsen dann aussieht währe Dein Part.
Dann muß man allerdings sagen, daß das ganze ziemlich unprofessionell gelöst ist. Ich hätte ja ein Latch an D0-D7 verwendet, das von /STB auch tatsächlich ge"strobe"t wird.
Gruß Henning
--
henning paul home: http://www.geocities.com/hennichodernich
PM: henningpaul@gmx.de , ICQ: 111044613
Alles Andere ist doch auch ziemlich unsinnig; kaum eine Anwendung kann undefinierte Zustände an den Steuer-Leitugnen gebrauchen, und wenn Mechanik involviert ist, dann kann das zu crashes bis hin zu "Finger ab" führen :-(
Argl. Sicher später dann umso mehr. Wie bei mir, als ich mir den Finger an der Bandsäge spalten wollte...alle um mich herum waren plötzlich so bleich, doch bei mir kamen die Schmerzen dann erst in der folgenden Nacht.
Na ja, ich hab mich dann von meiner frau ins Krankenhaus bringen lassen, ger=F6ntgt ob noch was drinsteckt, desinfiziert (AUA!), Verband drum. Zuhause dann Verband ab, Pflaster drum, weitergefr=E4st (*POCH*)
Aber was solls, das war im Oktober, man sieht nur noch ne kleine Macke im Nagel...
Alles halb so Wild, und das Gef=FChl ist auch fast =FCberall wieder da.
"Ungeschicktes Fleisch muss ab!" sagte meine Oma immer ;-) (Von Knochen war aber nicht die Rede!)
Ist aber schon arg merkwürdig vom Drucker, an der parallelen Schnittstelle ein Datenbyte _ohne_ Strobe zu lesen. Und nein, weder mein ehemaliger HP Laserjet II noch mein jetziger Laserjet III machen das, sind wohl zu neu ;-)
Ja, ich mußte auch in der Woche noch ein Prüfungsstück fertigfräsen, also hab ich das Pochen eben ertragen.
Mein Finger war noch ca. fünf Jahre unter der Nagelkante druckempfindlich, inzwischen ist das vorbei, und man sieht nur noch einen kleinen Schatten im Nagel, etwa 6mm rein...
Yep; da muß man durch.
Ich weiß nicht, ob ich den Knochen erwischt hatte, ich wurde nicht geröntgt, nur gereinigt und verbunden. Egal, hat mich nicht umgebracht
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.