mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie kann ich aus 2 Ports 4 machen?


Autor: Daniel Weber (sotoll1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe eine Linux Applikation, welche über den Parallelport eine 8 
Port Karte steuert. 6 von den 8 Ports habe ich schon belegt. Mit den 2 
verbleibenden komme ich aber nicht durch....

Könnte man da nicht gemäß der untenstehenden Logiktabelle 4 Ports 
generieren? wunderbare Brotvermehrung

IN    OUT

00    0001
01    0011
10    0111
11    1111


Hat jemand eine einfache Idee (Chip) zur Lösung meines Problems?

Die beiden Eingänge würden von einem ULN2803AG  (open-collector) 
angesteuert, die Ausgänge sollten Relais ansteuern können.

Danke Daniel

Autor: Klaus 2m5 (klaus2m5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...wenn Du schon die Leistungstreiber vor die Logik schalten 
willst/musst und dahinter eh Relais hängen, machs wie der alte Herr 
Zuse. Benutz die Relais direkt, um die entsprechende Wahrheitstabelle 
abzubilden. Viel Spass beim austüfteln...

Autor: Andreas K. (ergoproxy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Serielle Portexpander? Aus 2 Ports kann man nur seriell 4 machen. Woher 
sollten sonnst die Informationen kommen. Ansonnsten vllt Stromstoßrelais 
und "multiplexen".

Gruß ErgoProxy

Autor: Wolfgang M. (womai)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfachste und billigste Loesung - serielles Schieberegister (shift 
register) mit parallelem Ausgang. Die 74HC.. -Serie hat ein paar 
geeignete Typen, kostet ueblicherweise weniger als 1 Euro. Einer Deiner 
Ausgaenge vom parallelen Port treibt das Taktsignal, der andere die 
seriellen Daten. Einziger Nachteil - waehrend Du die Daten reinschiebst, 
wechseln die Ausgaenge einigermasse unkontrollierbar die Zustaenge, weil 
die Bits an ihnen "vorbeilaufen". Oft kein Problem, wenn man's so 
schnell macht, dass es der Motor etc. nicht mitbekommt.

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1 Port für Daten und 1 Port als Steuerbus für z.b. 74HC574.

Autor: Daniel Weber (sotoll1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Ideen

@ Klaus ich möchte mit den 4 Ausgängen 4 Relais steuern. Diese schalten 
dann einen Stufentrafo. Wenn ich das richtig sehe kann ich das mit der 
"Lösung Zuse" nicht realisieren. oder irre ich mich?


@ Wolfgang ich möchte weniger "Daten" als eher selten wechselnde 
Zustände bewirken. ( es kann sein, dass ein Zustand mehrere Stunden 
gleich bleibt)

Wenn ich das aber richtig sehe kann ich das trotzdem auf diese Weise 
realisieren. Werden mir da evt die Relais am Ausgang während des 
Schaltvorgangs klappern.

Gruss Dani

Autor: was-willst-du (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist Dir schon aufgefallen, daß bei Deiner tabelle für die OUT-Werte ein 
Ausgang immer "1" ist. Kannst Dir somit sparen.

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei der Logiktabelle gibt es eigentlich nur 3 Ausgänge, das LSB ist 
immer 1.
Lässt sich sicher mit ein paar Dioden, Gattern oder einem GAL auflösen.

Nein, ich mach das jetzt NICHT .....

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für ein Schiebregister benötigt man auch mehr als die 2 Ausgänge.
Schau dir aber mal die Rudgatter der 74er Reihe an. Du wirst sehen das 
ist ganz einfach wenn du die 4 Ausgänge einzeln betrachtest.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du dir das genau anschaust, ist die eine der 4 Ausgangsleitungen eh 
immer 1, also brauchst du dies nicht zu berücksichtigen und du hast nur 
noch 3 Ausgangszustände.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh Bensch war schnelle ;-)

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bit 0 ist immer 1 => Direkt an VCC
Bit 1 ist genau dann 1, wenn Steuerbit 0 = 1 => Direkt an Steuerbit 0
Bit 2 ist genau dann 1, wenn Steuerbit 1 = 1 => Direkt an Steuerbit 1
Bit 3 ist genau dann 1, wenn Steuerbit 0 = 1 UND Steuerbit 1 = 1 => 
AND-Gatter an Steuerbit 0 und 1, Ausgang des Gatters ist dieser Ausgang.


Du brauchst also nur ein AND.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte einen 74138 verschwenden, von den Select-Eingängen nur A und 
B verwenden, G1 auf +5V, G2A und G2B auf Masse, die Ausgänge Y0-Y3 durch 
Dioden so verküpfen, daß der jeweils höherwertige die darunterliegenden 
"mitzieht".

Autor: Wolfgang M. (womai)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin,

nein, ein Schieberegister braucht wirklich nur 2 Leitungen - Daten 
(data) & Taktsignal (clock). Der Rest (Enables, Reset, Serial Out etc.) 
falls vorhanden ist optional und im vorliegenden Fall nicht notwendig 
(einfach /CE mit GND verbinden, Reset mit VCC, usw.; der serielle 
Ausgang fuehrt zum Eingang fuer weitere Schieberegister falls noetig).

Wolfgang

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Wolfgang
Das flattern die Ausgänge während des schiebens.

@Karl-Heinz
>Bit 1 ist genau dann 1, wenn Steuerbit 0 = 1 => Direkt an Steuerbit 0

Wie kommst du darauf? Dann währe der Ausgang bei Eingang 1 0 wieder 0. 
Das ist aber nicht richtig.

Autor: bronko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ist denn mit nem 74xx595? gibts doch auch noch mit treibern.
könntest alle relais dranhängen und hättest noch 5 leitungen für andere 
sachen frei.
gruß

Autor: Wolfgang M. (womai)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Martin,

Ausgaenge flattern, das stimmt, darauf habe ich allerdings schon bei 
meinem ersten Posting hingewiesen. Ob's aber stoert, haengt davon ab, 
was man treibt und wie schnell. Z.B. wenn man bloss LEDs ansteuert, 
ist's normalerweise ganz egal. Wenn man einen Takteingang ansteuert, ist 
es toedlich. Fuer Relays haengt es davon ab, wie schnell - wenn man die 
Daten mit 100 kHz oder mehr reinschiebt (ohne weiteres moeglich mit dem 
Parallelport), merkt das Relay gar nix - die Schiebevorgang ist dann 
viel schneller als die mechanische Reaktionszeit. Noetigenfalls kann man 
ja noch einen R-C-Tiefpass mit ca. 1ms Zeitkonstante (10 kOhm + 100nF) 
an die Ausgaenge des Schieberegisters anhaengen, damit schnelle 
Aenderungen gar nicht erst bis zum Relaytreiber durchkommen.

Wolfgang

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
4 Dioden und ein R, dann ist die Sache gegessen(oder ein AND + 2 Dioden)
Noch mal fix nachgeschaut, ohh, Signale kommen ja von ULN2803AG und 
sollen Relais schalten. Moment ULN2803AG schaltet nach GND, stimmt das?
Ok, 6 Dioden 3 R's und 2 PNP Transistoren dann sollte es passen :-)
Kleiner Tip,  das 4. Relais muss genau dann einschalten wenn beide
Eingänge auf Low sind, ein Eingang schaltet 1 Relais und der andere 2
Den Rest mahlst du dir jetzt bitte mal selber auf. Achso 1 R ist Pullup.
Die 2 anderen zur Basisstrombegrenzung und die 6. Diode eine 
Freilaufdiode

Viel Erfolg, Uwe

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.