www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Parallelport


Autor: ->Andre-< (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich stehe vor folgendem Problem:

Ich hab ein Endgerät, welches über die Parallele Schnittstelle
angesteuert wird. Nehmen wir mal an, es ist ein Drucker.

Angesteuert wird das Gerät durch zwei Steuereinheiten, die jedoch beide
nichts miteinander zu tun haben.

Beide Geräte müssen nun das Endgerät mit Daten versorgen.

Was ich benötige ist ein Umschalter, der zwischen den beiden Geräten
schaltet.
Die Umschalteinheit sollte nach möglichkeit über ein Signal die Info
bekommen, welche Steuereinheit sendet. Also keine manuelle
Umschaltung.

Für die Umschalteinheit möchte ich gern einen µC verwenden.
Jedoch fehlt mir noch der passende Baustein, mit dem ich die
Datenleitungen des Parallelports schalten kann.

Und genau danach suche ich.

Hab schon gegoogelt, finde dann aber immer nur diese Data-T-Switche,
die erstmal ausscheiden.
Bei Maxim bin ich auch nicht so richtig fündig geworden.

Habt ihr eine Idee, mit welchem Bausteinchen ich das umschalten der
Datenleitungen realisieren könnte ?

Danke schonmal im vorraus....
Andre.

Autor: Bernd Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht gegen die Klassiker 74LS245/74LS541?
Ich habe zu C64 Zeiten damit mal eine aktive Druckerweiche gehabt, um
den Drucker am PC und am C64 zu betreiben.
Sobald ein Rechner gesended hat wurde ihm der Drucker zugewiesen und
der andere Rechner bekam solange ein Busy.
Mit einer RC Schaltung wurde zu Zuweisung irgendwann wieder
freigegeben.

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Profis Tipps:
Das ist nicht so schwierig, wenn einige Punkte beachtet werden:
Es gibt Controller, die eine Centronic quasi eingebaut haben, das
heisst da meist strobed mode parallel input.
Es geht aber auch diskret. Dazu brauchst Du nur ein Flipflop, das mit
/Strobe (Pin1) gesetzt und einem Pin des Controllers gelöscht wird.

Den Ausgang legst Du auf Busy (Pin ) und auf den Interrupt des UC
(jeweils Polarität beachten).

Bei jedem Byte vom PC wird das FF gesetzt und dem PC mitgeteilt, dass
er momentan keine weiteren Daten senden darf. Die Interrrupt-Routine
liest das Byte ein und löscht das FF, evtl. gibt sie auch noch ein
Acknowledge an den PC und das Spiel beginnt von neuem.

Alternativ kannst Du versuchen, den Strobe auch direkt auf den
Interrupt zu legen und das Busy auf ein Port. Dann musst Du im
Interrupt-Handler als erstes Busy setzen.
Das ist aber nicht ganz Centronic-konfonm, da von Strobe bis Busy nur
ein paar ns vergehen dürfen.
Hier heißt es probieren, da das Busy im PC auch nicht gleich wieder
abgefragt wird.
So sparst Du Dir das FF, aber die Übertragung ist nicht mehr so
sicher.

Wenn Du 2 oder mehr Kanäle auf ein Gerät ausgeben willst, brauchst Du
im Controllerprogramm jeweils ein FIFO / Ringbuffer und eine
Timeout-Logik, die den Drucker "an einen neuen Job vermittelt",
sobald der aktuelle keine Daten mehr schickt.

Schwieriger wird es, wenn Daten bidirektional gehen sollen, wie bei den
meisten modernen Druckern. Aber ich habe den Eindruck, du willst gar
keinen Drucker ansteuern.

Autor: ->Andre-< (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Profi:

Das mit dem Drucker war nur ein Beispiel.

Es wird so sein, das alle 3 Geräte, also die beiden Steuereinheiten, so
wie auch das Endgerät, eigenentwickelte Hardware sein wird.

Grundlegend geht es nur darum, das ich halt einen Umschalter brauch,
der 1:1 die Datenleitungen schaltet.

@Bernd:

Danke für die Info.
Hab bei Reichelt den 74ALS541 gefunden. Das sollte er sein, oder ?

Gruß,
Andre.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.