Multiplexen von Drehencodern

Gast #3958579
Lesenswert?

Hi zusammen,

bevor ich einen dummen Denkfehler mache und eine Platine falsch 
herstellen lasse kurz eine Frage:

Ausgangssituation: Ich möchte 9 Drehencoder an einen AVR anschließen.
Frage:  kann ich diese einfach multiplexen (wie Beispielhaft im 
angehängten Schaltplan)? Aktive Encoder würde ich jeweils auf GND legen, 
5V wäre inaktiv.
Alle sollen gleichzeitig bedienbar sein. Sehe ich das richtig, das es so 
hardwaretechnisch funktioniert, vorausgesetzt die Abtastrate ist hoch 
genug?

Danke und Gruß,
Sam
Angehängte Dateien:
#3958633
Lesenswert?

@ sam (Gast)

>Alle sollen gleichzeitig bedienbar sein. Sehe ich das richtig, das es so
>hardwaretechnisch funktioniert, vorausgesetzt die Abtastrate ist hoch
>genug?

Nein, dazu müssen in JEDE Zuleitung der Encoder Dioden. 1N4148 ähnlich.
Für dein Multipexing brauchst du 8 IOs. Mit einem Schieberegister ala 
74HC165 brauchst du nur 3 und kommst ohne Dioden aus, brauchst dann 
allerdings für jeden Eingang einen Pull-Up Widerstand.
Gast #3958663
Lesenswert?

sam schrieb:
> kann ich diese einfach multiplexen (wie Beispielhaft im
> angehängten Schaltpla

Nein.

Mindestens Trenndioden:
1
                   +-+-+-+- GND
2
                   | | | |
3
                   R R R R 
4
                   | | | |
5
      +--o o--|>|--+-(-(-(-----+-- ENC12A
6
ENC1 -+              | | |     |
7
      +--o o--|>|----+-(-(--+  |
8
                       | |  |  |
9
                       | |  |  |
10
                       | |  |  |
11
      +--o o--|>|------+-(--(--+
12
ENC2 -+                  |  |
13
      +--o o--|>|--------+--+----- ENC12B

sam schrieb:
> Alle sollen gleichzeitig bedienbar sein.

Dann macht das sowieso wenig Sinn, schliesslich reduziert die 
Multiplexerei deine mögliche Abtastrate.
Gast #3959333
Lesenswert?

Peter Dannegger schrieb:
> sam schrieb:
>> Ausgangssituation: Ich möchte 9 Drehencoder an einen AVR anschließen.
>
> Dann nimm 18 Inputs des AVR.

gerne, aber ich wollte gerne mit maximal TQFP44 auskommen.
Dazu kommen noch: LCD Display, 9 Taster, I2C, UART, 2xPWM...

Über I2C sind bereits etliche Ausgänge mit separatem AVR angebunden, 
insgesamt ca. 70 Output Pins.

Die ganzen Eingaben hätte ich gerne zentral an einer Stelle "direkt" 
abgegriffen. Da dachte ich könnte ich am meisten an den Encodern an Pins 
sparen.
Also einfach die Dioden ergänzen, dann sollte es ja passen.

Gruß,
sam
Gast #3959339
Lesenswert?

Die AVRs können mit 20 Mhz laufen, da sollte man als Anwender

MaWin schrieb:

>
> Dann macht das sowieso wenig Sinn, schliesslich reduziert die
> Multiplexerei deine mögliche Abtastrate.

Meinst du man merkt als Anwender wirklich etwas von der Abtastrate?
Ich würde annehmen das das umschalten zwischen den einzelnen Encodern so 
schnell geht, dass der Anwender nichts davon merkt!?

lg
sam
Gast #3959451
Lesenswert?

Pd G. schrieb:
> Warum eigentlich eine MCU nehmen?
>
> Die Encoder liefern doch ein Quadratursignal, richtig?
> Das kann man doch mit einem D-Flipflop pro Encoder problemlos
> dekodieren: ein Schalter kommt an den Takt, der andere an D und schon
> hat man am Ausgang Q die Drehrichtung, das Taktsignal liefert die
> Impulse.
>
> Denke ich zu einfach?

Vorsichtig ausgedrückt ... Du wirst schon mindestens ein JFK-Flop 
brauchen bzw speziell dafür hergestellte ausgestorbene Spezial ICs - 
oder auch Gebastel mit XORs usw.
Gast #3959474
Lesenswert?

Extra Logikbauteile lohnen sich eigentlich nicht. Die haben viele Pins, 
sind groß. Da kann man oft sogar billiger einen weiteren AVR nehmen und 
den dann so programmieren wie man es braucht.
Hm, mit den ganzen Dioden ist wohl einfach ein größerer AVR am 
einfachsten. Ich suche gerade mal nach geeigneten, verfügbaren und nicht 
so viel teureren Atmegas... :)
Gast #3959687
Lesenswert?

F. Fo schrieb:
> sam schrieb:
>> Dazu kommen noch: LCD Display, 9 Taster,
>
> Da hast du schon zwei Dinge die du multiplexen kannst und wo das
> wesentlich einfacher sein wird.

wie kann ich den beim LCD mehr Pins einsparen, als 4bit Ansteuerung?
Ich habe jetzt 6 Pins + 2 PWM Pins (Kontrast, Hintergrundbeleuchtung) 
geplant
Taster multiplexen ist doch wieder genau das gleiche wie mit Encodern. 
Im Endeffekt sind das doch auch nur Taster, die in der Software nur 
etwas anders ausgewertet werden müssen.

Also meine Lösung ist jetzt ein AVR im TQFP-64, der hat genug I/Os um 
alles direkt anzusteuern. Ist zwar überdimensioniert, aber das wären 
auch schon die TQFP-44 gewesen... :)
Gibt es eigentlich keine "modernen" TQFP-64 mehr von den Atmegas? Nur 
die alten Atmega 64/128/1281/2561? Bei den kleineren hat sich in den 
letzten Jahren ja etwas getan gehabt, hier wohl eher nicht?!

lg
sam
Gast #3959702
Lesenswert?

sam schrieb:

> Taster multiplexen ist doch wieder genau das gleiche wie mit Encodern.
> Im Endeffekt sind das doch auch nur Taster, die in der Software nur
> etwas anders ausgewertet werden müssen.

Nicht ganz, die Abtastrate ist weniger kritisch, ausserdem wenn immer 
nur eine Taste gedrückt wird kann man sich die Dioden sparen

Um den Drehencoder direkt einzulessen braucht es 12 Pins, momentan hast 
du 8 vorgesehen, fehlen 4.

Wenn man die 9 Taster in einer 3x3 Matrix anordnet braucht es 6 pins, 
werden also 3 frei.

Einen weiteren Pin auftreiben und du bist dabei.
Gast #3959708
Lesenswert?

Lattice User schrieb:
> sam schrieb:
>
>> Taster multiplexen ist doch wieder genau das gleiche wie mit Encodern.
>> Im Endeffekt sind das doch auch nur Taster, die in der Software nur
>> etwas anders ausgewertet werden müssen.
>
> Nicht ganz, die Abtastrate ist weniger kritisch, ausserdem wenn immer
> nur eine Taste gedrückt wird kann man sich die Dioden sparen
>
> Um den Drehencoder direkt einzulessen braucht es 12 Pins, momentan hast
> du 8 vorgesehen, fehlen 4.
>
> Wenn man die 9 Taster in einer 3x3 Matrix anordnet braucht es 6 pins,
> werden also 3 frei.
>
> Einen weiteren Pin auftreiben und du bist dabei.

ich glaube für mein Bastelprojekt ist es am einfachsten, einfach einen 
großen Atmega zu nehmen. Ich bin gerade sogar auf den 2560 gestoßen, das 
würde mir ein paar Zusatzplatinen für I/Os sparen. Der scheint durch die 
Arduino Leute auch recht verbreitet zu sein.
Ich denke ich plane sogar mit dem. Kostet eh alles etwa das gleiche und 
bei Einzelproduktion, was solls. Dafür wird die Software dann einfacher, 
wenn (fast) alles in direktem Zugriff ist und nicht über externe AVRs 
angesteuert wird.

lg
sam
#3959719
Lesenswert?

Vorausgesetzt die Taster werden nicht gleichzeitig bedient, dann 
brauchst du eigentlich nur ein ADC und verschiedene Spannungen, die fest 
definiert, um alle Taster mit einem Pin abzufragen.
Das mit dem Display war ein Gedankenfehler. Hatte 7 Segment im Kopf.
Außerdem brauchen die Taster nicht so eine hohe Abtastrate.
Auch das gleichzeitige Drücken kannst du über Plausibilität abfangen.

Das haben wir früher bei einem Fahrzeugtype so für den Bremsschalter 
gemacht.
Gast #3959739
Lesenswert?

F. Fo schrieb:
> .

F. Fo schrieb:
> Vorausgesetzt die Taster werden nicht gleichzeitig bedient, dann
> brauchst du eigentlich nur ein ADC und verschiedene Spannungen, die fest
> definiert, um alle Taster mit einem Pin abzufragen.
> Das mit dem Display war ein Gedankenfehler. Hatte 7 Segment im Kopf.
> Außerdem brauchen die Taster nicht so eine hohe Abtastrate.
> Auch das gleichzeitige Drücken kannst du über Plausibilität abfangen.
>
> Das haben wir früher bei einem Fahrzeugtype so für den Bremsschalter
> gemacht.

ja, stimmt. Mit dem ADC würde gehen. Ich nehm jetzt einfach einen großen 
AVR, Platine wollte ich eh machen lassen. Da ist das am einfachsten und 
tut sich nicht einmal etwas von den Kosten. Dafür dann sehr einfach aus 
dem Programm heraus anzusprechen. :)

lg
sam
#3959947
Lesenswert?

@Lothar Miller (lkmiller):

Da wird wohl gerade aneinander vorbei geredet, bei einem Encoder ist das 
klar, aber in den letzten Posts geht es nicht um die Encoder, sondern 
um:

sam schrieb:
> Dazu kommen noch: LCD Display, 9 Taster, I2C, UART, 2xPWM...
                                 ========

diese 'normalen' Taster, um dort die fehlenden Portpins einzusparen.

Mit freundlichem Gruß - Martin
Moderator (Firma: Titel) Persönliche Seite #3960010
Lesenswert?

Martin Schlüter schrieb:
> Da wird wohl gerade aneinander vorbei geredet
Scheint so...

Ich würde einfach alle Taster und den Drehgeber über Schieberegister 
einlesen. Das ist dann auch richtig zukunftssicher, weil für weitere 8 
Eingänge einfach nochmal ein Schieberegister drangepappt werden kann...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren