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
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.
@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
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
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
@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
>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)
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
>>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