Hallo Profis ;) Hab folgendes Anliegen. Ich verwende einen PIC18F4550 und will damit mehrere Multiplexer schalten. Angefreundet hab ich mich mit dem Typ 74HC4067. Dieser besitzt 16 Anschlussmöglichkeiten und kann sowohl als Digital Input/Output als auch als analoger Input verwendet werden. Die Ansteuerung mit den Steuerpins ist mir soweit klar und auch die Benutzung als Input oder Output... Leider hab ich momentan noch keinen hier zum testen und aus dem Datenblatt ist mir mein Problem auch nicht gelöst worden. Prinzipiell will ich 3 solche Multiplexer verwenden, 1 als analog Input und die anderen 2 als digital Output. Jetzt dachte ich mir folgendes. Die 4 Steuerleitungen schalte ich parallel mit einem PNP Transistor. Der analog Input Pin wird an AN0 angeschlossen und mittels Enable von diesem Multiplexer kann ich ja den einschalten und dann abfragen. Wenn die beiden anderen Multiplexer aufgrund der Parallelschaltung auch eingestellt werden, ist mir das ja egal, denn ich kann ja die Enable auf high schalten und den digital Pin am Controller einfach nicht abfragen. Wenn ich digital Schalten will, dann stell ich auch wieder die Steuerleitungen so wie ich sie brauche, gib mit dem MikroC den Pegel an und sag dann mit der Enable Leitung welcher Multiplexer schalten soll. Das sollte doch so funktionieren, oder? Das eigentliche Problem ist folgendes. Wenn ich z.B.: den Pin Y0 am 1.digital Output schalten will, dann setz ich die Steuerbits, geb den Pegel an und schalte die Enableleitung(aktiv=low).Jetzt will ich am 2. digital Output Y1 schalten, dazu stell ich wieder die Steuerbits, Pegel vorgeben und die Enable leitung setzen (Zuvor die vom ersten Multiplexer auf high setzen, damit der mir nicht auch aufgrund der parallelschaltung den gleichen pin schaltet) Wenn ich das am 2.digital Output mache, dann fällt mir ja Y0 vom ersten ab,oder? diese bräuchte ich aber solange, bis ich wieder einen Impuls dahin gebe, damit die Leitung low wird (So nach dem Prinzip eines Stromstoßrelais...Impuls geben->Ausgang high, nächster Impuls->Ausgang low), nur will ich das eben nicht mit solchen Relais lösen, da ab und zu auch im kHz Bereich geschaltet werden soll). Hoffe ich versteht mich und ihr könnt mir helfen. Ich weiß, sehr viel Text...Falls was unklar ist, kann ich auch mal versuchen einen Schaltplan zu erstellen:) So long Darkleon
Glaubst du wirklich, dass wir hier eine Fortsetzung von Krieg und Frieden lesen wollen?
Hi! Nein ich hoffe ich schreck nicht alle mit so viel Text ab und jemand ist doch gewillt mir zu helfen. Aber auch mit einem Schaltbild ist etwas Text erforderlich, damit klar ist, was ich wann und wie schalten will :( Hoffe auf Gnade;) Darkleon
Hallo, Deinen Text versteht ja doch keiner. Muß man aber auch nicht. Ein Blick in die Wahrheitstavelle im Datenblatt des 4067 verrät, daß für /E = H gilt: keine Verbindung zwischen Z und den Ein-/Ausgängen. Gruß aus Berlin Michael
Hi Michael. Danke für deine Antwort. Das ist mir soweit auch klar, nur wenn ich den 4067 als Output verwende, dann bleibt der eingestellte Kanal nur so lange high, solange ich ihn direkt ansteuere. Nur möcht ich in eben mit nur einem Impuls auf high setzen und mit dem nächsten wieder auf low, damit ich andere Ausgänge schalten kann. Werde dafür eben eine Schaltung nach dem Ausgangspin brauchen, nur ist die Frage wie man das anstellt. So wie das Prinzip des Stromstoßrelais. Hoffe mich versteht man jetzt besser;) Mfg Darkleon
Hallo, ich verstehe prinzipiell Dein Problem schon, geht eben so nicht. Anderes IC benutzen, mit Eingangs- oder Ausgangs-Latch. Dürfte sich ja ohnehin dort nur um digitale Zustände handeln, da muß es ja kein Analog-MUX sein. Gruß aus Berlin Michael
Darkleon wrote: > Danke für deine Antwort. Das ist mir soweit auch klar, nur wenn ich den > 4067 als Output verwende, dann bleibt der eingestellte Kanal nur so > lange high, solange ich ihn direkt ansteuere. Genau deshalb nimmt man eben keine Multiplexer, sondern Schieberegister (z.B. 74HC595). Und als Eingänge dann praktisher Weise auch (z.B. 74HC165). Mit 5 IO-Pins sind dann z.B. 256 Ausgänge und 256 Eingänge kein Problem. http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister Peter
Hi! Danke für die Antworten. Also für die Ausgänge kann ich jetzt den 74HC595 verwenden. Hab mir das Tutorial durchgelesen und hab das so verstanden. Wenn ich jetzt das Bitmuster "00110100" an den Ic sende, das dann übernehmen lasse, dann stellt mir dieser die Ausgänge. Wenn ich jetzt aber nur einen einzigen Ausgang ändern will, dann muss ich ja das komplette Bitmuster mit meiner Änderung senden, dami alle anderen Ausgänge gleich bleiben, oder? Und wenn ich mehrere kaskadiere, dann muss ich ja von jedem IC den aktuellen Bitstatus wissen, falls ich nur bei einem eine Änderung machen will und alle anderen gleich bleiben sollen. (Ist schon etwas aufwändig...). Für die Einganserweiterung werde ich einfachheitshalber doch multiplexer verdwenden, da ich ja jeden Eingang direkt ansprechen kann, ohne dass ich ein ganzes Bitmuster einlesen muss, damit ich weiß welchen Pegel ein einziger Eingang hat. Hab ich das jetzt so richtig verstanden? Mfg Darkleon
Darkleon wrote: > Und wenn ich mehrere kaskadiere, dann muss ich ja von jedem IC den > aktuellen Bitstatus wissen, falls ich nur bei einem eine Änderung machen > will und alle anderen gleich bleiben sollen. (Ist schon etwas > aufwändig...). Ist nicht aufwendig. Man legt sich quasi virtuelle Ports im SRAM an und ändert dort das entsprechende Bit. Und diesen SRAM gibt man dann zyklisch in die 74HC595 aus, z.B. im Timereinterrupt. > Für die Einganserweiterung werde ich einfachheitshalber doch multiplexer > verdwenden, da ich ja jeden Eingang direkt ansprechen kann, ohne dass > ich ein ganzes Bitmuster einlesen muss, damit ich weiß welchen Pegel ein > einziger Eingang hat. Ist aber aufwendiger. Das SPI arbeitet bidirektional, d.h. wenn man 4 Bytes rausschiebt, kann man gleichzeitg 4 Bytes einlesen. Und die legt man dann wieder in virtuellen Eingangsports im SRAM ab. Peter
Hi Peter! Danke für deine schnelle Antwort. Das klingt natürlich schon wieder interessanter. Werd mir die Ics mal holen und dann kommen sicher noch Fragen ;) Nochmals Danke für deine Antwort. Hatte mir ja für die Multiplexer ja auch so Ansteuerschemas geschrieben..Mla schauen ob das mit den Registern und SPI einfacher verläuft. Mfg Darkleon
Hi! Noch so eine Frage :) Wenn ich mehrere Schieberegister kaskadiere, kann ich zusätzlich zu diesen Ics auch einen EEPROM mit SPI Ansteuerung auf den Bus hängen? Dieser hat ja einen "Chip select Pin". Diesen haben aber die Schieberegister nicht, oder?! Hab da nichts dazu gefunden. Sonst könnte ich einfach das gewünschte Schieberegister oder den EEPROM selektieren und dann die gefordeten Daten rüberschaufeln. So würde auch das schieben durch die Register hinfällig werden.. Kann man das irgendwie lösen? Ich meine Schieberegister und EEPROM am gleichen bus?! Hoffe auf Antwort:) Danke schon im Voraus. MfG Darkleon
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.