Autor |
|
|
|
BID = 55130
brainbug Neu hier
Beiträge: 23
|
|
Hi!
Ich hab da ein kleines (bzw grösseres) Verständnis-Problem. Und zwar mache ich mir grade ein Interface für den ParallelPort.
Der Datenport D0-D7 also Pins 2-9 sind ja sowohl Input als auch Output-Pins.. oder etwa nicht?
Also so wie ich es verstanden habe schon.
Aber was passiert in dem Moment wenn ich von ihnen lesen möchte? Dazu müssten ja die Ausgänge PC-Seitig quasi in einen Tristate-Mode gehn damit ich (bzw die PC-Hardware) die Eingänge abfragen kann!?
Dann würde sich für mich die Frage ergeben was passiert wenn ich mit meinem Interface Daten auf die Leitung gebe während die Ausgänge des PCs nochnicht gefloatet sind. Die würden ja dann kurzgeschlossen? Oder sind alle Pins über Widerstände mit den Ausgängen der Speicherregister verbunden (dann könnten die ja aber doch nicht in der lage sein direkt eine LED zu treiben, wie in vielen Bastelanleitungen beschrieben)?
Ich hoffe ich konnte mein Verständnis-Problem hier irgendwie verständlich rüberbringen :(
Wenn nicht bitte nochmal nachfragen..
Gruss Sven |
|
BID = 55139
Lötfix Schreibmaschine
Beiträge: 2328 Wohnort: Wien
|
|
Hallo!
Bei manchen Ports sind Widerstände in Serie drin, aber nicht bei allen! Ich hatte sogar folgendes Problem: Laserdrucker eingeschaltet und PC aus. Das PC-Netzteil ist garnicht angesprungen, weil auf der 5V Leitung schon ca. 1V über den Parallelport der keine Widerstände hatte eingespeist wurden.
Auf diese Art sind mir billige Parallelkarten abgeraucht.
Ich würde sicherheitshalber Widerstände zwischen Ausgang und Interface schalten.
Damit man die Eingänge einlesen kann, muß der Port mindestens bidirektional oder EPP/ECP sein mit Standardport geht es nicht (alte Standard-Parallelkarten aus einzelnen TTL-Bausteinen kann man auf bidirektional umbauen)
http://www.martins-kabuff.de/index.html?./computer/parport.html
Testprogramm in parallel.zip
mfg lötfix |
|
BID = 55149
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Die Situation, daß ein Datenbus von mehreren Treibern gleichzeitig getrieben wird, wird auch als "Bus-Contention" bezeichnet.
Sie ist meist das Ergebnis von Protokollverletzungen und muß i.d.R. vermeiden werden, weil große Störpegel entstehen und u.U. auch Chips beschädigt werden können.
Es gibt aber auch Verfahren, z.B. Ethernet, bei denen das gleichzeitige Senden vorgesehen und erlaubt ist
Ich hatte vor einiger Zeit schon mal ein Datenblatt
eines Super-I/O Chips hochgeladen:
https://forum.electronicwerkstatt.d.....O.pdf
Darin kannst du dir ansehen, wie und wann die automatische Richtungssteuerung in den verschiedenen Betriebsarten des LPT funktioniert.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 55176
2SJ200 Schreibmaschine
Beiträge: 1942 Wohnort: Österreich
|
ich muss ehrlich gestehn, ich dachte es werden simple alle ausgänge des LPTs auf 1 geschaltet und dann die die 0sein sollen nach amsse "kurzgeschlossen" (obwohl beim LPT hohe ströme bis 100mA fließen können) und dann eben einfach vom port lesen...
is des nit korrekt ?
|
BID = 55192
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
des is nit korrekt.
Abgesehen davon, daß allein schon durch den dann im Kabel auftretenden Spannungsabfall der Port u.U. nur sein eigenes Ausgangssignal liest (und das ist ja überflüssig), riskierst du, daß durch die Überlastung die Ausgangstransistoren des Chips beschädigt werden.
Das können schwer zu findende Fehler sein, wenn ein derart beschädigter Port zwar im Leerlauf noch die Logikpegel bringt, aber unter Last nicht mehr oder nicht mehr schnell genug.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 55213
2SJ200 Schreibmaschine
Beiträge: 1942 Wohnort: Österreich
|
na ich frag nur weil ich mich an eine schaltung erinnern kann die genau das macht :-?, aber egal jetz - gibt ja einige russische schaltungen im netz :D
|
BID = 55238
brainbug Neu hier
Beiträge: 23
|
Hey Danke!!!!
das mit dem EPP/ECP war genau der Anstoss den ich gebraucht hab, jetzt gibt das endlich für mich alles Sinn! :-)
Also ich hab den ParPort jetzt bei mir im Bios auf EPP also Bidirektionial gestellt und jetzt lassen sich über das Bit #5 in den Controllports die D0-D7 Ausgänge einfach floaten (und zu Eingängen machen) wenn das Bit High gemacht wird. Also war mein anfängliches Verständnisprob berechtigt *beruhigt* *g*
Werde aber Sicherheitshalber trotzdem noch Widerstände zwischen dem Interface und dem Port reinmachen..
So 1kOhm dürfte reichen, oder?
Ich hab mal das Schaltbild von meinem Interface angehängt. Das Meiste ist zwar nochnet verbunden, aber die Grundfunktionsweise lässt sich schonmal simuliern.
Also so in Worten soll die Datenübertragung so ablaufen:
1)Ein kurzes High auf INIT setzt alle Zähler zurück
2)LOW auf AUTO_LF=Zähler Enabled ; HIGH=Zähler Disabled
Zum Lesen vom Port:
a)SELECT wird HIGH gemacht (alle ausgänge vom 4515 gehn auf LOW)
b)STROBE wird HIGH gemacht (weisst den 4515 an adresseingaben anzunehmen)
c)Die gewünschte Adresse auf die Datenleitungen schreiben die Ausgelesen werden soll (D0-D3 für Leseadressen)
d)STROBE wieder LOW machen (der 4515 speichert die Adresse)
e)Die Daten-Ausgänge des PCs Floaten
f)SELECT LOW machen, dadurch geht der entsprechende Ausgang des 4515 auf HIGH und verbindet die gewünschte Leseadresse mit dem Port
g)Die Daten vom PC auslesen
Gruss Sven
|
BID = 55252
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Werde aber Sicherheitshalber trotzdem noch Widerstände zwischen dem Interface und dem Port reinmachen..
So 1kOhm dürfte reichen, oder?
|
Das ist zuviel
Dadurch verschlechterst du unnütz den Störabstand und bekommst schlechte Übersprechdämpfung, wenn ein Kabel dran ist.
Da Du ja nicht absichtlich Kurzschlüsse produzierst, halte ich 100 Ohm für ausreichend.
Dein Protokoll habe ich nicht analysiert, aber u.U. ist es einfacher den Port im SPP-Modus zu betreiben, dann mußt/kannst du dich ums Handshake selbst kümmern.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 55297
brainbug Neu hier
Beiträge: 23
|
Hi, also ok, ich nehm dann 100 Ohm
aber im SPP mode geht leider nicht, weil ich das interface hauptsächlich brauche um werte einzulesen (gibt nur 3x8 Bit steuer-outputs). Das meiste davon sind 8Bit-Werte aus Zählern und AD-Wandlern.
Ich denke das ist so für meinen Fall der minimalste Aufwand den ich treiben kann.. im SPP-Mode müsst ich das ja erstmal wieder serialisiern um die Werte einzulesen.. und dann könnte ich ja gleich den COM-Port nehmen.
zumindest seh ich keine geeignetere Möglichkeit als halt in diesem Bidirektionalen EPP-Modus
Die Software dafür ist ja auch kein Problem, da ich das alles selbst programmiere bzw schon programmiert habe.
Besondere Datenraten fallen ja eh nicht an, ich lese über den PC nur alle viertel Sekunde den Inhalt der Zähler aus und resette die dann wieder. Bzw frage alle sekunde noch zusätzlich die Werte der AD-Wandler ab und die Sonstigen Input-Bits.
Hätte da dann gleich noch ne Frage an die Experten:
das Interface wird dann mit 12V Auto-Boardnetz verbunden, dH ich muss die 12V High-Low-Pegel möglichst Platz und Kostensparend in 5V Pegel umwandeln.
Dafür hab ich mal den 4050 eingeplant, der 6 Puffer integriert hat und laut meinem schlauen CMOS-Kochbuch auch jede Spannung an den Eingängen (auch deutlich über 5V, also meine 11-17V im Auto) in meine benötigten TTl-Pegel umwandelt
Ich hoffe das Stimmt?
|
BID = 55303
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Wo bekommst Du denn 12V Logikpegel her ?
Wenn das Signale von irgendwelchen Relais etc. sind, wirst Du auch beim 4050 eine Eingangsschutzbeschaltung vornehmen müssen, damit die Spikes aus der Versorgung nicht das IC zerschiessen.
Wenn die Signale so langsam sind, brauchst Du evtl. den Pegelwandler garnicht, sondern kannst sie direkt über einen Spannungteiler aus zwei 100 kOhm Widerständen auf einen CMOS-Eingang der 5V-Logik geben. Die integrierten Schutzdioden erldigen den Rest.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 55311
brainbug Neu hier
Beiträge: 23
|
Also die Schaltsignale kommen von Reed-Relais, Tastern, Micro-Switchs und sowas. Nee schnell müssen die wirklich nicht sein, nur gewappnet vor den Pegeln die die Boardspannung im Auto so erzeugt. Entprellen muss ich die auchnet da ich die eh nur alle viertel bis Sekunde mal abfrage (eben ob an oder aus). Sind hauptsächlich Sensoren die Abfragen um eine Tür geöffnet ist, das Licht angeschaltet ist oder ob die Fenster alle oben sind..
Die komplexeren Sachen die ich direkt vom Steuergerät abgreife haben nämlich eh schon alle 5V Pegel (wie u.A. die Geschwindigkeit [rechteckfrequenz von ca 1khz pro kmh] und die Drehzahl etc.) bzw gehen dann in die AD-Wandler oder zu den Zählern
|