LPT Port Channels Multiplexen

Im Unterforum Hardware, Betriebssysteme, Programmiersprachen - Beschreibung: Alles zu Software, Hardware, Windows, Linux, Programmiersprachen
Anfragen zu Modding, Games, Cracks, etc. unerwünscht.

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 25 11 2024  14:30:03      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Hardware, Betriebssysteme, Programmiersprachen        Hardware, Betriebssysteme, Programmiersprachen : Alles zu Software, Hardware, Windows, Linux, Programmiersprachen
Anfragen zu Modding, Games, Cracks, etc. unerwünscht.

Gehe zu Seite ( 1 | 2 | 3 Nächste Seite )      


Autor
LPT Port Channels Multiplexen

    







BID = 763913

Atomius

Gerade angekommen


Beiträge: 19
Wohnort: Hamburg
 

  


Hey Leute,

ich bin zwar gerade erst gereggt, mich haben aber schon viele Beiträge von hier gut weitergebracht, ist echt ein klasse Forum hier, das nur vorweg.

Mein Anliegen:

Ich steuere zur Zeit Funksteckdosen per Sprache an einem LPT Druckerport eines alten Laptops. Dazu habe ich mir eine Relaiskarte gelötet. Ganz einfaches Teil: 4 Printrelais mit Transistoren davor, die durch die Datenleitungen des Com Ports angesteuert werden. Software-Seite ist mit Pure Basic realisiert.

Mein Problem sind jetzt die mangelnden Channels, da ich noch ne ganze Menge mehr steuern will (RGB LED'S, mehr Funsteckdosen für die ich jeweils immer 2 Channels brauche AN/AUS etc.)

Ich habe mich jetzt informiert, und habe dabei diese geile Teil gefunden:

" 74LS154 - 4-Line to 16-Line Decoder/Demultiplexer "

Das Gerät kann aus 4 Channels 16 machen (Binärcode 4x4 muss ich hier glaub ich niemandem weiter erläutern)
Die Ausgänge sind nicht High sondern Low, das hat aber nur zur Konsequenz, dass ich die Transistoren anders anschließen muss, damit die Relais erst durchschalten, wenn der Strom weg ist. Mein Problem liegt jetzt bei der Speicherung der Signale.

Ich kann mit dem Multiplexer nämlich immer nur einen der 16 Channels auf Low schalten, nicht mehrere gleichzeitig. Ich möchte aber die Möglichkeit haben, eine beliebige Anzahl auf High oder Low setzen zu können.

Die Lösung die ich mir überlegt habe sind 2 Stück von diesen hier:

SN74LS374 D-Flip-Flop 8-Bit-Bus

Die können jeweils 8 Kanäle Speichern, also mit 2 habe ich alle abgedeckt. Dazu habe ich jetzt einige Fragen, mit denen ich noch nicht zurecht gekommen bin:

1.) Wie funktionieren diese Flip Flop Speicher? Also 8 Eingänge und Ausgänge sind klar, aber ich habe die Erklärung auf dieser Seite
http://www.sn.schule.de/~gyfloeha/rt/lex04/74374.html
nicht ganz verstanden, also wenn an der Clock ein Signal anliegt, dann wird das Signal am Eingang zum Ausgang durchgeschleift, liegt kein Signal an, wird das Signal gespeichert. Hört der Chip dann auf das Signal zu senden, wenn die Clock auf 0 ist? Denn genau das will ich ja nicht. Außerdem muss man auch irgendwie eine Änderung an den Chip weitergeben können. Also irgendwie komm ich mit diesem Gedanken auch nicht weiter..

2.) Die Chips brauchen unterschiedliche Spannungen, zum Beispiel einer 5 und der andere 7 Volt, kann ich das einfach mit Wiederständen machen, oder gibts bei der Stromversorgung von pics noch irgendwas zu beachten?

Ich danke euch schonmal im vorraus für Eure Mühe das hier durchzulesen, und hoffe auf kompetente Antworten =)

lg Atomius

BID = 763914

wulf

Schreibmaschine



Beiträge: 2246
Wohnort: Bozen

 

  

Hallo,
was du brauchst ist ein Schieberegister (engl. Shift Register). Damit kannst du dann Daten seriell reinschieben und parallel abnehmen.
Damit kannst du dann theoretisch beliebig viele Ausgänge haben indem einfach mehrere Schieberegister hintereinandergeschaltet werden.

Der CD4094 würde passen.
Im CD4094 ist schon alles drin was du brauchst. Das Schieberegister und Latches um die Ausgänge zu halten, sogar Tristate Ausgänge.

Grüße
Simon


[ Diese Nachricht wurde geändert von: wulf am  4 Mai 2011 19:12 ]

BID = 763919

Atomius

Gerade angekommen


Beiträge: 19
Wohnort: Hamburg

Wow schon so schnell die Antwort. Könntest du mir das vielleicht einmal genauer erläutern?

Der Chip hat 16 pins. Wie wird das ganze verschaltet, und wie funktioniert das? Werd aus dem Datenblatt gerade irgendwie nicht schlau..

Nehmen wir mal ein Beispiel: Ich schalte jetzt Channel 1 / 16 von High auf Low, und anschließend Channel 2 / 16 von High auf Low. Ergebnis soll sein, dass Relais 1 und 2 anziehen.

Wie funktioniert das dann, und wie schalte ich die Relais dann wieder ab? Funktioniert das mit Impulsen?

[ Diese Nachricht wurde geändert von: Atomius am  4 Mai 2011 19:31 ]

BID = 763931

HansG

Schreibmaschine



Beiträge: 1848
Wohnort: Dresden
Zur Homepage von HansG

Ich glaube eher nicht, dass ein Schieberegister für die Aufgabe geeignet ist. Ebebsowenig ist Decoder-IC für die Speicherung geeignet, da ja immer nur ein Ausgang aktiviert wird.
Der Einsatz von D-Flip-Flops ist da schon eher ein richtiger Ansatz. Die Funktion ist ja, dass mit einem Übernahme-Impuls die an den Dateneingängen anliegenden Werte gespeichert ud an die Ausgänge weitergegeben werden. Allderdings macht es wahrscheinlich wenig Sinn, da einen 8bit-Latch zu benutzen. Eher sind da 4bit-Speicher geeignet, z.b. 74193. Über die höherwertigen Bits des LPT-Ports können dann je nach Wunsch bis zu 16 (über einen 4/16-Decoder) solcher 4bit-Latches adressiert werden, so dass bis zu 64 Augänge realisierbar sind.

_________________
Supportanfragen per PN oder Mail werden ignoriert.

BID = 763941

Rafikus

Inventar

Beiträge: 4150

Was die Sache mit den Schieberegistern angeht, sieht es folgendermassen aus:
es seien erst mal alle Ausgänge (oder Kanäle, aber nicht channels) ausgeschaltet bleiben, also schickt man folgendes Wort an die Register:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

jetzt möchte man den ersten Ausgang einschalten:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

nun möchte man den Ausgang 5 einschalten
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
warum habe ich jetzt den Ausgang 1 noch mal "eingeschaltet"? - Ganz einfach, weil eine "0" ihn wieder ausschalten tut.

dieses hier schaltet zusätzlich zum Letzten Zustand den Ausgang 11 Ein:
0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1

Und nun wird nur der Ausgang 5 ausgeschaltet
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1

Alles klar?
Keine Impulse, keine channels.

Rafikus




BID = 763949

Atomius

Gerade angekommen


Beiträge: 19
Wohnort: Hamburg

So mach ich das ja momentan schon mit 8 Kanälen, dieses Prinzip hab ich verstanden

Allerdings liegen da halt die bereits beschriebenen Probleme:

1.) Der Multiplexer kann keine 2 "1" gleichzeitig schreiben der kann immer nur einen Kanal von 16 auf Low setzen, die anderen bleiben High.

Was ich quasi benötige, ist eine Schaltung, die ein Relais bei einem Impuls einschaltet, und durch einen weiteren Impuls auf derselben Leitung wieder aus. Also ich geb für 2 Sekunden ein Transistor invertiertes Low Signal auf Kanal 1, Relais schaltet, und bleibt auch nach den 2 Sekunden unendlich lange angezogen. Geb ich wieder einen 2 Sekunden Impuls, dann geht das Relais wieder in den Urzustand.

Wie ist sowas zu realisieren? Klingt ja eigentlich recht simpel..

BID = 763961

HansG

Schreibmaschine



Beiträge: 1848
Wohnort: Dresden
Zur Homepage von HansG

Derzeit arbeitest du offenbar mit dem LPT-Port als Speicher.
Wenn du das erweitern willst, musst du mit Latches arbeiten. Dabei musst du immer das gesamte Datenwort ausgeben, einschließlich derer, die "Ein" oder "Aus" bleiben sollen.
Es gibt ja da verschiedene Möglichkeiten, schließlich hat ein LPT-Port neben den Datenleitungen auch 4 Steuerleitungen. Da kann man eine Leitung als "enable" verwenden und die drei anderen über einen 3/8-Decoder zur Adressierung von 8 8bit-D-Latches verwenden (ergibt 64 Datenleitungen). Eine entsprechende Ausgabe setzt dann den adressierten Latch neu.
Das selbe, allerdings nur unter Nutzung der Datenleitungen, hatte ich in meinem vorigen Post beschriebén.

Für die Vorschläge von wulf und Rafikus würde sich wohl eher die RS232-Schnittstelle anbieten. Aber auch hier sind dann zur Ansteuerung der Relais entsprechende D-Latches erforderlich.






_________________
Supportanfragen per PN oder Mail werden ignoriert.

BID = 763990

Atomius

Gerade angekommen


Beiträge: 19
Wohnort: Hamburg

Okay, ganz anderer Ansatz:

Nehmen wir erstmal 2 Relaiskarten mit jeweils 8 Relais.

Mit 2 Kammrelais a' 4 Wechslern schalte ich alle 8 Datenpins von einer Relaiskarte zur anderen. Durch die zusätzlichen 4 Steuerkanäle, kann ich dann später theoretisch 4 Relaiskarten mit jeweils 8 Relais ansteuern.

Das ist nicht das Ding,aber:

Wie, und mit welchen Bauelementen bau ich jetzt konkret dieses D-Latch. Also die Schaltung, die mir einfach nur den letzten Zustand der 8 Datenleitungen speichert. Zudem muss ich den Zustand auch jederzeit wieder ändern können.

Also:

1 0 0 0 0 0 0 0 wird an relaiskarte 1 gesendet --> Relais 1 zieht an

Speicherbefehl (wie funktioniert das dann?)

0 0 0 0 0 0 0 0 wird gesetzt um nicht Relais 9 auszulösen

Steuerbefehl --> Kammrelais schaltet um auf Relaiskarte 2

0 1 0 0 0 0 0 0 wird ab relaiskarte 2 gesendet --> Relais 10 zieht an

Speicherbefehl

usw.

Ich hab irgendwie grad total den Überblick verloren, ich bräuchte einfach mal ne komplette Dummy Anleitung, wie ich das jetzt hinbekomme mit dem Relaiskarten Switching, der Speicherung der Kanalzustände und der Ansteuerung...


Danke schonmal für Eure Geduld, es ist irgendwie ne simple Sache wo ich bestimmt wieder zu kompliziert denke, bin noch nicht so fit in diesem Thema...

BID = 763995

HansG

Schreibmaschine



Beiträge: 1848
Wohnort: Dresden
Zur Homepage von HansG

Der LPT-Port ist eigentlich statisch, insgasamt 16 Signal-Leitungen:
- 8 bidirektionale Datenleitungen
- 4 Steuerleitungen (Computer -> Peripherie)
- 4 Quittungsleitungen (Peripherie -> Computer)

Bisher hast du die Datenleitungen einfach nur statisch benutzt. Wenn du sie erweitert benutzen willst, musst du die Steuerleitungen mit einbeziehen.
Im Normalfall dienen die Steuersignale dazu, dem Periperiegerät mitzuteilen, was auf den Datenleitungen anliegt und die Gültigkeit der Daten anzuzeigen.
Wenn du nun nur Ausgaben auf D-Latches vornehmen willst, kannst du das ganz nach deinen eigenen Vorstellungen benutzen.

_________________
Supportanfragen per PN oder Mail werden ignoriert.

BID = 763996

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika


Zitat :
LPT Druckerport eines alten Laptops. Dazu habe ich mir eine Relaiskarte gelötet. Ganz einfaches Teil: 4 Printrelais mit Transistoren davor, die durch die Datenleitungen des Com Ports angesteuert werden.

Was denn nun? LPT oder COM?

---

Zitat :

möchte aber die Möglichkeit haben, eine beliebige Anzahl auf High oder Low setzen zu können.


Beliebig viele geht nur via Schieberegister, egal, ob COM-Port oder LPT.
Vorgehen wurde ja bereits erläutert, ich erweitere das noch:

Du musst drei Leitungen unter Kontrolle haben, mehr nicht. Dann kannst du die Daten, und zwar beliebig viele Bits, rausschieben.
Das Schieben läuft via Clock, die Daten kommen über DATA und nachdem alle Bits eingetaktet wurden, schreibt man die aktualisierten Schieberegisterzustände in das nachgeschaltete LATCH (siehe CD4094).

Die Zustände sämtlicher Bits müssen im Programm hinterlegt werden. Soll ein Bit manipuliert werden, wird das korrespondierende Bit im Speicher manipuliert und danach wird der gesamte Speicher auf das Register ausgegeben. Das kann man ziemlich einfach mit XOR erledigen.

Eine Voraussetzung gibt es: zu Beginn müssen alle Bits einen definierten und bekannten Zustand haben, z.B. 0.

CD4094 lassen sich kaskadieren.

Beispiel:

Bits zu Beginn, Abbild im Speicher

0000

Bit 2 soll geändert werden (ja, Informatiker fangen bei 0 an zu zählen...)
Erzeuge Bitmaske 0010, XOR mit Speicherabbild:

0000 XOR 0010 = 0010

0010 Schreiben, Bit 2 geht an.

Nun soll Bit 2 getoggelt werden (also auf 0 wechseln), Bit 4 soll angehen:
Maske: 1010

0010 XOR 1010 = 1000
Bit 4 geht an, Bit 2 geht wieder aus.

Alle Bits sollen definitiv gelöscht werden:+

0010 UND 0000 = 0000


_________________

BID = 763997

HansG

Schreibmaschine



Beiträge: 1848
Wohnort: Dresden
Zur Homepage von HansG

Warum soll man einen Parallelport für eine serielle Ausgabe missbrauchen?


_________________
Supportanfragen per PN oder Mail werden ignoriert.

BID = 764003

wulf

Schreibmaschine



Beiträge: 2246
Wohnort: Bozen

Warum denn nicht?
Die RS232 Schnittstelle ist ebenso wenig geeignet (asynchron) ein Schieberegister zu steuern wie der LPT Port.

(Alles andere zu Schieberegistern wurde ja schon gesagt)

_________________
Simon
IW3BWH

BID = 764055

Atomius

Gerade angekommen


Beiträge: 19
Wohnort: Hamburg

Gut okay, ich habs soweit verstanden. Hab auch n Schaltbild zu dem ganzen gefunden, hab dazu aber noch ne Frage. Also das ganze wird dann so aufgebaut:

http://www.retro-riders.com/retrote.....g.jpg

1.) Die Latches werden durch die Clock gesteuert. Wie funktioniert das genau? Also wenn die Clock auf Low ist, dann speichert der das Signal, und wenn die auf High geht, leitet der das Signal an die Ausgänge weiter? Sind dann alle Ausgänge auf Low, solang die Clock auf 0 ist, oder leitet der die immer weiter? Wie muss ich das dann ansteuern, um einen neuen Zustand in den Latch zu schreiben? Stell mir die Ansteuerung schwierig vor, da ja das gleiche Signal an allen Latches anliegt..

Mir gehts da also um die Ansteuerung dieser Schaltung, aber ich bin schonmal n ganzen Schritt weiter.

BID = 764059

HansG

Schreibmaschine



Beiträge: 1848
Wohnort: Dresden
Zur Homepage von HansG


Zitat :
Atomius hat am  5 Mai 2011 13:11 geschrieben :

Die Latches werden durch die Clock gesteuert. Wie funktioniert das genau?

Die anliegenden Daten werden während der HL-Flanke in die Daten-FlipFlops übernommen und stehen dann am Ausgang zur weiteren Verarbeitung zur Verfügung. Das CLK-Signal hat keinen direkten Einfluss auf die Ausgänge, dafür gibt es das /OE-Signal.

Zur Auswahl, welcher D-Latch-IC angesteuert wird, verwendest du ja die C0..C3 Signale. Die anliegenden Daten werden von dem/den D-Latch-ICs übernommen, deren CLK-Signal aktiviert wird.


_________________
Supportanfragen per PN oder Mail werden ignoriert.

BID = 764067

Bartholomew

Inventar



Beiträge: 4681


Zitat :
HansG hat am  5 Mai 2011 13:33 geschrieben :

Die anliegenden Daten werden während der HL-Flanke in die Daten-FlipFlops übernommen ...

Nein, bei der positiven Flanke von Low nach High.
Siehe Seite 2 dieses Datenblattes:
http://www.datasheetcatalog.org/datasheets/90/375622_DS.pdf


      Nächste Seite
Gehe zu Seite ( 1 | 2 | 3 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 10 Beiträge verfasst
© x sparkkelsputz        Besucher : 182396666   Heute : 3862    Gestern : 7548    Online : 659        25.11.2024    14:30
8 Besucher in den letzten 60 Sekunden        alle 7.50 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0498530864716