Forum: Mikrocontroller und Digitale Elektronik CMOS 4067 als De/Multiplexer


von Klaus (Gast)


Lesenswert?

Hi an alle!

Habe folgendes Problem. Ich habe einen CMOS 4067 Multi-Demultiplexer und 
habe es geschafft, mit 4 Eingangssignalen (A,B,C,D) einen der 16 
Ausgangskanäle zu schalten (0-15). Ich frage mich, ob es auch möglich 
ist, mit dem gleichen Bauteil umgekehrt zu verfahren, also durch Anlegen 
einer Spannung an (0-15) die vier Kanäle (A,B,C,D) zu schalten. Ich 
verstehe leider das Datasheet des Herstellers nicht, was mit dem PIN 
"Common Out/In" gemeint ist. Ich finde im Datasheet auch keine Hinweise 
darauf, wie man das ganze umkehrt. Bin sehr dankbar für jeden Hinweis.

mfg
an die community

von karadur (Gast)


Lesenswert?

Hallo

es handelt sich um einen analogen Multiplexer.
Das bedeuted das eine von den 16 In/Out Leitungen mit dem CommonIn/Out 
verbunden wird. Ausgewählt wird die Leitung mit A,B,C,D.
Muß man sich wie ein Drehschalter vorstellen.

von Jorge (Gast)


Lesenswert?


von Jörg R. (Firma: Rehrmann Elektronik) (j_r)


Lesenswert?

@Klaus:
der 4067 ist ein (de)multiplexer, d.h., die Eingänge A...D sind immer 
nur Eingänge zur Auswahl eines von 16 Kanälen. Ein Baustein, der, je 
nach aktivierten Kanal, einen Binärcode generiert, nennt sich 
Priority-Encoder. Das ist aber eine völlig andere Funktion.

Jörg

von Klaus (Gast)


Lesenswert?

Vielen Dank für die schnellen Antworten!

Kann mir vielleicht jemand einen Priority-Encoder empfehlen?
Muss ein 10-4 PE sein. Was ich möchte:
Ich will 10 Tasten, die mit Tastschalter realisiert sind mit einem 
Microcontroller verbinden, der 4 Eingänge hat. Dazu möchte ich also 10 
Leitungen auf 4 runtercodieren, und dieses BCD Signal in den Prozessor 
einspeisen. Vielen Dank für Antwort.

mfg,
an alle

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Für 16 auf vier braucht man zwei 74xx147 und ein 7400 zur Verschaltung.

10 zu vier ist einfach ein 74xx147, für die 10 Taster natürlich noch 10 
pull-up-Widerstände. Die Taster schalten nach Masse

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

kleine Korrektur, für 16zu4 muß man den 8zu3-Prioritätsencoder 74xx148 
kaskadieren, dafür sind soweit ich noch weiß drei NAND nötig

von Jörg R. (Firma: Rehrmann Elektronik) (j_r)


Lesenswert?

@Klaus:
Wenn es nur darum geht, 10 Taster mit 4 µC-Leitungen einzulesen, gibt es 
wesentlich elegantere Lösungen als kaskadierte Priority-Encoder. Ganz 
ohne IC kommt z.B. die Diodenmatrix aus. Dazu werden die 4 Eingänge mit 
je einem Pull-Down-Widerstand versehen. Die Taster liegen mit einem Pin 
auf Vcc und mit dem anderen auf der/den Anode(n) einer oder mehrerer 
Dioden. Die Kathode(n) der Diode(n) gehen jeweils auf die Eingänge, die 
beim Drücken eines bestimmten Tasters gesetzt werden sollen. Je nach 
Verschaltung der Dioden bekommst Du dann für jeden Taster einen 
definierten Binärcode. Z.B.
Taster #1: Diode vom Taster nach Pin A ergibt 0001 oder
Taster #5: je 1 Diode vom Taster nach Pin A und C ergibt 0101
Nachteil: Wenn mehrere Taster gleichzeitig gedrückt sind, kann sich ein 
unsinniger Code ergeben. Der Priority-Encoder generiert in diesem Fall, 
wie der Name schon andeutet, einen eindeutigen Code der Taste mit der 
höchsten Priorität.
Auch sehr elegant ist die Verwendung eines Schieberegisters mit 
Paralleleingang, z.B. 74xx165. Die können sehr einfach in 8-er-Schritten 
kaskadiert werden.
Vorteil: Du kannst mit 3 I/O-Leitungen beliebig viele Taster abfragen.
(1. Parallel-Load, 2. Shift-Clock, 3. Serial-Out) und Du brauchst nur 1 
IC + 8 Pull-Up-Widerstände pro 8 Taster.
Außerdem kannst Du auch jede beliebige Mehrfach-Tastenkombination direkt 
abfragen, was manchmal ganz nützlich zur einfachen Implementierung von 
Service-Funktionen ist, die im Normalbetrieb nicht zugänglich sein 
sollen.

Jörg

von inoffizieller WM-Rahul (Gast)


Lesenswert?

>Wenn es nur darum geht, 10 Taster mit 4 µC-Leitungen einzulesen, gibt es
>wesentlich elegantere Lösungen als kaskadierte Priority-Encoder.

Jepp: Die Tasten in einer Matrix anordnen (Atmel-Application Note 
AVR240)

von Peter D. (peda)


Lesenswert?

Klaus wrote:

> Kann mir vielleicht jemand einen Priority-Encoder empfehlen?
> Muss ein 10-4 PE sein. Was ich möchte:
> Ich will 10 Tasten, die mit Tastschalter realisiert sind mit einem
> Microcontroller verbinden, der 4 Eingänge hat. Dazu möchte ich also 10
> Leitungen auf 4 runtercodieren, und dieses BCD Signal in den Prozessor
> einspeisen. Vielen Dank für Antwort.


Nimm doch einfach einen MC dafür (ATtiny2313) oder gleich nen MC mit 
mehr Pins.


Peter

von Jörg R. (Firma: Rehrmann Elektronik) (j_r)


Lesenswert?

>>Wenn es nur darum geht, 10 Taster mit 4 µC-Leitungen einzulesen, gibt es
>>wesentlich elegantere Lösungen als kaskadierte Priority-Encoder.

>Jepp: Die Tasten in einer Matrix anordnen (Atmel-Application Note
>AVR240)

Das lohnt aber erst bei größeren Tastaturen. Bei 10 Tasten brauchst Du 
eine 3x4-Matrix = 7 Leitungen, bringt also nichts.

Jörg

von .... (Gast)


Lesenswert?

CD 4017 ....
z.B. 40 Tasten mit 5 Bit

von .... (Gast)


Lesenswert?

...aber das ist (hier) bestimmt zu trivial

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.