Forum: Mikrocontroller und Digitale Elektronik 32 Kanalmultiplexer


von Karl F. (carlito021)


Lesenswert?

Hi Leute!

Möchte meine  Motorsteuerung erweitern und mir zusätzlichen Platz für 
später schaffen.

Habe bisher einen cd4514 4-16 LineDecoder verwendet. Brauche nun aber 
mehr Ausgänge. (Leds, 7Segmente, ...)
Suche nun einen grösseren digitalen Linedecoder/Multiplexer, nach 
Möglichkeit nicht allzu teuer.

Wie könnt ihr mir weiterhelfen?

mfg Carlito

von Michael K. (Gast)


Lesenswert?

2x CD4514?

Muss es CMOS sein oder tut es auch TTL?

von Karl F. (carlito021)


Lesenswert?

Wenn möglich in einem Baustein, CMOS wäre besser, zur not geht TTL aber 
auch.

von Olaf (Gast)


Lesenswert?

Du koenntest ein CPLD nehmen.

Olaf

von Gregor (Gast)


Lesenswert?

Wieso verwendest du nicht einen zweiten Decoderbaustein parallel dazu?
Dabei gibt es dann folgendes zu beachten:

(Tut mit leid, wenn ich alle Zahlen ausschreibe, aber meine 
Nummerntastatur funktioniert nicht)

Da du zweiundreißig Decoderausgänge haben willst musst du einen fünf Bit 
langen Digitalwert anlegen. Die meisten Decoderbausteine verfügen noch 
über einen Eingang der die Ausgabepins aktiviert oder nicht, in deinem 
Fall heißt dieser Pin "Inhibit (INH)". Wenn er null ist werden alle 
Signale am Decoderausgang ausgegeben. Ist er eins, dann sind die 
Ausgänge deaktiviert. Nun kann man indem man an diesen Inhibit Eingang 
das fünfte Bit anschließt, zwischen den beiden Decodern hin und her 
schalten. Wichtig ist jedoch vor den Inhibit Eingang des höheren 
Datenwortes einen Inverter (Tiny Logic) zu schalten.

Die verwendung eines CPLDs oder ähnlichem halte ich für diese 
Aufgabenstellung zu aufwändig.

Ich hoffe, dass ich helfen konnte

LG Gregor

von Wolf (Gast)


Lesenswert?

Das mit Kaskadieren geht nur bedingt, weil der Eingangs-Code ein 
Einfacher ist. Dann gibt es Überschneidungen beim Umschalten von der 
niederwertigen zur höhertwertigen Stelle , weil die Bausteine 
parallelgeschaltete Eingänge haben. Es müßte, um das nicht zu bekommen, 
ein anderer Code sein, der nur eine Bitveränderung umsetzt wie z.B. der 
Grey-Code.

von Wolf (Gast)


Lesenswert?

"Gray"

von Gregor (Gast)


Lesenswert?

@ Wolf

Bist du dir sicher? Solange der Code unter 16 ist, ist die fünfte 
Datenleitung ja auf Low Pegel und das Latch für das niedrigste Datenwort 
ist selektiert und das Latch für das höherwertige Datenwort ist 
deaktiviert, da es durch den Inverter einen High- Pegel am Inhibit 
Eigang erhält. Ist der Wert des Codes über 15 ist das fünfte Datenbit 
auf 1, wodurch das niederwertige Latch deaktiviert wird, das 
höherwertige aber durch den Inverter an dessen "inhibit" eingang einen 
Low Pegel erhält, wodurch es ausgewählt wird.

Hat man nun einen Wert von 10011 anliegen, ergibt das:

niederwertiges Latch deaktiviert - Ausgänge auf 0
höherwertiges Latch aktiviert - Ausgang 3 ist auf High

von Peter D. (peda)


Lesenswert?

Karl Frantsits wrote:
> Habe bisher einen cd4514 4-16 LineDecoder verwendet. Brauche nun aber
> mehr Ausgänge. (Leds, 7Segmente, ...)

Dekoder hatte man früher mal verwendet.

Heutzutage nimmt man einfach SPI und soviel Schieberegister 
(74HC595/74HC165), wie man will:

http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI

Macht auch das Layout um Längen einfacher.


Peter

von Wolf (Gast)


Lesenswert?

Gregor, ich wollte einer Alarmanlage die Kanalzahl erhöhen, indem ich 
statt eines Dezimalzählers 4017 für (hier) 9 Kanäle, dann einen 
Binärzähler 4520 nehme und anschließend dezimal decodiere mit 4514. So 
bekomme ich einige Kanäle dazu. Sobald eine entsprechende höhere Stelle 
schaltete, blitzte (wegen Multiplexverfahren) diejenige LED der 
niederwertigen Stelle ebenfalls auf, z.B.wenn es Kanal 12 betraf, kam 
Kanal 2 auch. Warum der Decoder sich so verhielt, weiß ich nicht.
Beim Kaskadieren schalten ja beide "gleichzeitig". Das 5te Bit am 
inhibit und  auch (negiert mit Laufzeit) an der 2ten Stufe, wobei das 
Bit bestimmt einen Buffer bekommt?
Muß es so ablaufen, oder kann es so sein?

von M. K. (kichi)


Lesenswert?

Theoretisch müsste es mit 2x CD4514 einem NICHT-Gatter und unter 
Verwendung von INHIBIT gehen. Es wird höchstwahrscheinlich keinen CMOS 
5-TO-32-Linedecoder geben...

Oder du verwendest die Schieberegister-Version von peda.

von Wolf (Gast)


Lesenswert?

Der Platz für noch mehr Bauteile ist im "Empfänger" nicht vorhanden, 
4514
ist schon groß genug. In den "Sendern" sieht es genau so eng aus. Mehr 
als
1 sandwich ist nicht drin.

von Peter D. (peda)


Lesenswert?

Wolf wrote:
> Der Platz für noch mehr Bauteile ist im "Empfänger" nicht vorhanden,
> 4514
> ist schon groß genug. In den "Sendern" sieht es genau so eng aus. Mehr
> als
> 1 sandwich ist nicht drin.

Dann ist es umso unverständlicher, daß Du noch extra Platz für Dekoder 
verschwenden willst.

Die Schieberegister gibts auch mit Leistungsausgängen (z.B. TPIC6B595).
Also statt 3 ICs (Dekoder+Latch+Treiber) nur 1 IC.


Peter

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
Noch kein Account? Hier anmelden.