Forum: Mikrocontroller und Digitale Elektronik Suche einen kleinstmöglichen 4 to 1 mux


von Dominic K. (domi1997)


Lesenswert?

Guten Tag zusammen
Ich bin noch nicht so Erfahren im Entwicklen von Prints, daher habe ich 
noch Probleme passende IC's zu finden. Nun ich habe das Problem das 
viele IC's zu viele Funktionen haben die ich nicht brauche was zu viel 
Platz benötigt. Ich habe 4 Taster doch nur 3 pins am uC. Daher brauche 
ich einen MUX SMD und wenn möglich 10 Pin. Denn mehr braucht es doch 
nicht: VCC,GND,Z,Y0,Y1,Y2,Y3,S0,S1. Ich finde jedoch nur 16piner mit 
umschaltfunktionen..... und dafür habe ich keinen Platz. Wie geht ihr 
jeweils vor bei der IC suche?
Danke im voraus

von Helmut L. (helmi1)


Lesenswert?

Wenn du einen Controller mit ADC hast kannst du die 3 Tasten auch mit 
einem ADC Eingang einlesen.

Ansonsten TSSOP Gehauese nehmen, das ist klein.

Oder im Multiplex abfragen

            PUP
-O-----O----+------ Port 1
 |     |
 |     |    PUP
-O-----O----+----- Port 2
 |     |
 |     |
 +-INV-+---------- Port 3


INV = Inverter (Gatter oder Transistor)

O = Taster
PUP = Pullupwiderstand

von Harald W. (wilhelms)


Lesenswert?

Dominic K. schrieb:

> Daher brauche ich einen MUX SMD und wenn möglich 10 Pin.

Nicht alles, was man sich wünscht, bekommt man auch. ICs mit
PIN-Zahlen zwischen 8 und 14 sind äusserst unüblich. Falls
Du einen Analogeingang am µC frei hast, könntest Du Dein
Problem mit einer Widerstandskette lösen.

von Axel R. (Gast)


Lesenswert?


von Klaus (Gast)


Lesenswert?

Dominic K. schrieb:
> Ich habe 4 Taster doch nur 3 pins am uC

Nimm einen µC mit mehr Pins. Spart im Summe Platz. Vielleicht kann man 
so noch mehr Bausteine einsparen.

MfG Klaus

von Dominic K. (domi1997)


Lesenswert?

Ich nutze bereits den 644er der nächste den ich von den registern kenne 
ist der 2560er und der wäre Overkill.

von Dominic K. (domi1997)


Angehängte Dateien:

Lesenswert?

Helmut L. schrieb:

>             PUP
> -O-----O----+------ Port 1
>  |     |
>  |     |    PUP
> -O-----O----+----- Port 2
>  |     |
>  |     |
>  +-INV-+---------- Port 3
>
>
> INV = Inverter (Gatter oder Transistor)
>
> O = Taster
> PUP = Pullupwiderstand

Dachtest du an sowas?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Dominic K. schrieb:
> Dachtest du an sowas?

Aua... Wie soll denn Deine kreative Umsetzung von Helmuts durchaus 
korrekter Skizze bitte funktionieren?

von Helmut L. (helmi1)


Lesenswert?

Oder mit einem etwas tricki Multiplex

                 PUP
-x-----O-----O----+----- Port 1
 |     |     |
 |     |     |   PUP
-O-----O-----x----+----- Port 2
 |     |     |
 |     |     |   PUP
-O-----x-----O----+------Port 3
 |     |     |
 A     A     A
 K     K     K
 |     |     |
PORT1 PORT3 PORT2

x = an der Stelle darf kein Taster sitzen
O = Taster

AK = Diode
PUP = Pullup

Jeweils ein Port wird auf Ausgang gestellt die beiden anderen sind 
Eingaenge
Dann kann man immer 2 Tasten abfragen, dann den naechsten Port auf 
Ausgang und 0 ausgeben und die beiden anderen abfragen

Mit 3 Ports kann man dann 6 Tasten abfragen ohne Multiplexer.

von (prx) A. K. (prx)


Lesenswert?

Dominic K. schrieb:
> Ich nutze bereits den 644er

Dann nimm einen ADC-Pin. Alle 4 Taster an einem Pin.

von Dominic K. (domi1997)


Lesenswert?

Hmmm eigentlich habe ich keinen ADC mehr frei aber könnte evtl einen 
freimachen. Ihr würdet wahrscheinlich mit spannungsteilern verschiedene 
Spannungen an die Taster anlegen und dadurch erkennen welcher gedrückt 
wurde sehe ich das richtig?

von Axel R. (Gast)


Lesenswert?

NLAS4684 im DFN10 schaltet 2xum und den NLAS4599 im SC70 dahinter.
oder eben drei mal 4599 als "binären baum"...

StromTuner

von (prx) A. K. (prx)


Lesenswert?

Dominic K. schrieb:
> Hmmm eigentlich habe ich keinen ADC mehr frei aber könnte evtl einen
> freimachen. Ihr würdet wahrscheinlich mit spannungsteilern verschiedene
> Spannungen an die Taster anlegen und dadurch erkennen welcher gedrückt
> wurde sehe ich das richtig?

Einen Pullup, 4 verschiedene geschaltete Pulldowns. Richtig 
dimensioniert sind alle Kombinationen gedrückter Taster unterscheidbar.

: Bearbeitet durch User
von Dominic K. (domi1997)


Angehängte Dateien:

Lesenswert?

Ich würde s nun so machen. Durch die 50k sollte der Strom klein bleiben 
und da alle gleich gross sind sollte es in 1v schritten runtergehen also 
4v,3v,2v,1v.

von (prx) A. K. (prx)


Lesenswert?

Eine korrekte Erkennung gleichzeitig gedrückter Taster ist also nicht 
erforderlich?

von Peter D. (peda)


Lesenswert?

Dominic K. schrieb:
> Ich würde s nun so machen

Dann kannst Du aber nicht erkennen, ob keine Taste gedrückt ist.

von Pandur S. (jetztnicht)


Lesenswert?

>Ich bin noch nicht so Erfahren im Entwicklen von Prints..
>.. und dafür habe ich keinen Platz.

Aha. Zeig mal was du hast, und zeig was du willst. Man kann sich auch 
IO-Pins mit 575 ern zusammenklauben

von Peter D. (peda)


Lesenswert?

Dominic K. schrieb:
> Ich nutze bereits den 644er

Vielleicht könnte man unter den restlichen 29 IO-Pins welche einfacher 
zusammen fassen. Dazu müßte man aber den Schaltplan kennen.

von Dominic K. (domi1997)


Lesenswert?

Peter D. schrieb:
> Dominic K. schrieb:
>> Ich würde s nun so machen
>
> Dann kannst Du aber nicht erkennen, ob keine Taste gedrückt
Ich mag mich irren aber wenn keine taste gedrückt ist dan leigen 0 volt 
an also ein logisches 0.

von Peter D. (peda)


Lesenswert?

Dominic K. schrieb:
> Ich mag mich irren

Stimmt.
Ist keine Taste gedrückt, bleibt die Schaltungskapazität erstmal auf der 
letzten Taste aufgeladen und driftet langsam durch Leckströme in 
unbekannte Richtung.

von Dominic K. (domi1997)


Lesenswert?

Das soll heissen beim Pin muss noch ein Pulldown widerstand hin?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter D. schrieb:
> driftet langsam durch Leckströme in unbekannte Richtung

Oder wackelt im 50-Hertz-Takt vor sich herum. ;)

von Dominic K. (domi1997)


Lesenswert?

Jörg W. schrieb:
> Peter D. schrieb:
>> driftet langsam durch Leckströme in unbekannte Richtung
>
> Oder wackelt im 50-Hertz-Takt vor sich herum. ;)

`Das würde doch durch einen pulldown widerstand behoben werden oder?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dominic K. schrieb:
> `Das würde doch durch einen pulldown widerstand behoben werden oder?
Welchen Wert würdest du denn diesem Widerstand geben?

BTW: warum machst du es nicht einfach so wie alle Anderen?
https://www.google.de/search?q=taster+analogeingang
Und dann auf die Bildersuche...

: Bearbeitet durch Moderator
von Dominic K. (domi1997)


Lesenswert?

Weil ich google bilder nicht zutraue, dass es funktioniert. Natürlich 
funktioniert vieles aber nicht alles. Nun ich sehe da schon wie viele es 
machen aber meiner Meinung nach ist dies nicht besser als meine 
Schaltung. Da muss ich noch beachten was für verhältnisse ich mache 
zwischen den Widerständen. Und vorallem muss ich so viele verschiedene 
SMD Rollen kaufen.

von Pandur S. (jetztnicht)


Lesenswert?

Normale Ports am AVR haben einen zuschaltbaren Pullup widerstand. Ich 
werd mal diesen verwenden ausser es spricht etwas dagegen.Also taste 
nach GND und denn internen Pullup konfigurieren. Sonst, Pullups ohne 
weiteren Anforderunegn, 10k, 22k, 47k.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Oh D. schrieb:
> ausser es spricht etwas dagegen

Dass du vorher nie weißt, wieviel Strom er in der Praxis tatsächlich
treibt.  Ist halt kein richtiger Festwiderstand, sondern ein dotiertes
Stück Silizium oder gar eine DS-Strecke eines FETs.

Wenn du nur gleiche Widerstände nehmen willst (und davon auch nur
jeweils einen), dann fällt halt die Erkennung mehrerer gedrückter
Tasten aus.  Ob du eine solche überhaupt brauchst, darüber hast du
dich bislang aber noch gar nicht ausgelassen.

von Dominic K. (domi1997)


Lesenswert?

Jörg W. schrieb:
> Oh D. schrieb:
>> ausser es spricht etwas dagegen
>
> Dass du vorher nie weißt, wieviel Strom er in der Praxis tatsächlich
> treibt.  Ist halt kein richtiger Festwiderstand, sondern ein dotiertes
> Stück Silizium oder gar eine DS-Strecke eines FETs.
>
> Wenn du nur gleiche Widerstände nehmen willst (und davon auch nur
> jeweils einen), dann fällt halt die Erkennung mehrerer gedrückter
> Tasten aus.  Ob du eine solche überhaupt brauchst, darüber hast du
> dich bislang aber noch gar nicht ausgelassen.

Nein die Erkennung von mehreren Tasten ist mir nicht wichtig. Denn es 
handelt sich um tasten mit dem man etwas erhöht oder senkt und beides 
gleichzeitig macht kein sin. Aber eben es sollte verläsliche resultate 
liefern.

von Helmut L. (helmi1)


Lesenswert?

Dominic K. schrieb:
> Und vorallem muss ich so viele verschiedene
> SMD Rollen kaufen.

Es gibt auch noch die Reihen u. Parallelschaltung von Widerstaenden.
Dann must du weiniger Rollen kaufen.

von (prx) A. K. (prx)


Lesenswert?

Jörg W. schrieb:
> Dass du vorher nie weißt, wieviel Strom er in der Praxis tatsächlich
> treibt.  Ist halt kein richtiger Festwiderstand, sondern ein dotiertes
> Stück Silizium oder gar eine DS-Strecke eines FETs.

... und deshalb von Spannung und Temperatur abhängig.

von Crazy Harry (crazy_h)


Lesenswert?

Du könntest auch 2 Pins nehmen und einen I2C-Portexpander anschliessen 
wie z.B. den PCF8574

von Bügl (Gast)


Lesenswert?

> Ich habe 4 Taster doch nur 3 pins am uC.

Mit 3 Pins kannst du 6 Taster abfragen.

Abschnitt: 4. Matrizen mit weniger Portpins.

https://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Tastenmatrix.htm

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Crazy H. schrieb:
> Du könntest auch 2 Pins nehmen und einen I2C-Portexpander anschliessen
> wie z.B. den PCF8574

Ist aber weit weg von seinen gewünschten 8 Pins.

Was natürlich gänge wäre ein kleiner Controller wie ATtiny13, der
an seinen Eingängen die Taster abfragt und am Ausgang als seriellen
Bitstrom liefert.  Dann hätte der ATmega644 sogar noch zwei Pins
frei am Ende. :-)  ATtiny13 gibt's bis zu 3x3 mm² herunter.

: Bearbeitet durch Moderator
von Paul B. (paul_baumann)


Angehängte Dateien:

Lesenswert?

Im Anhang ist eine erprobte Schaltung, die prima funktioniert. Man 
braucht
3 Sorten von Widerständen im angegebenen Verhältnis. Die Absolutwerte 
sind Brust.

MfG Paul

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Es gibt auch noch die Prioritäts-Encoder 74xx147/148, mit allerdings 
mehr als 10 pins.
8 bzw. 10 Tasten werden auf 3 bzw. 4 bit reduziert. Ein n-key-rollover 
geht natürlich nur mit Matrix und Dioden, es darf hier immer nur eine 
gedrückt sein, oder die stärkere gewinnt.

von Jörg R. (solar77)


Lesenswert?

Ein 4051 ginge auch. Das ist zwar ein Analogmultiplexer, aber das merkt 
der uC nicht?

https://www.reichelt.de/SMD-HC-4051/3/index.html?ACTION=3&LA=446&ARTICLE=18687&artnr=SMD+HC+4051&SEARCH=4051

Leider hat auch der mehr wie 10 Pins.

von Helmut L. (helmi1)


Lesenswert?

Warum dieser Aufwand, 3 Widerstaende und 3 Dioden reichen mit 3 Ports 
fuer 6 Tasten

von Dominic K. (domi1997)


Lesenswert?

Jörg R. schrieb:
> Ein 4051 ginge auch. Das ist zwar ein Analogmultiplexer, aber das merkt
> der uC nicht?
>
> 
https://www.reichelt.de/SMD-HC-4051/3/index.html?ACTION=3&LA=446&ARTICLE=18687&artnr=SMD+HC+4051&SEARCH=4051
>
> Leider hat auch der mehr wie 10 Pins.

OH der 4051er wie er im Lehrbuch steht XD. Nun ich denke die 
Widerstandslösung macht mehr sins, denn wenn ich 0603 nehme kann ich das 
noch gut von Handlöten und braucht viel weniger Platz. Dazu kommt das 
ich nur 1 Port brauche. Das heisst ich kann noch mehr funktionen 
einbauen

von Paul B. (paul_baumann)


Lesenswert?

Helmut L. schrieb:
> Warum dieser Aufwand, 3 Widerstaende und 3 Dioden reichen mit 3 Ports
> fuer 6 Tasten

Das ist wohl wahr...
So viele Schaltkreise wie nötig -so wenige, wie möglich ist die 
Devise.

MfG Paul

von 1234567890 (Gast)


Lesenswert?

Helmut L. schrieb:
> Warum dieser Aufwand, 3 Widerstaende und 3 Dioden reichen mit 3 Ports
> fuer 6 Tasten

Wer will schon drei lausige Dioden und drei lausige PullUps verbauen, 
wenn man einen Portexpander per I2C, einen Multiplexer oder sogar einen 
weiteren Mikrocontroller mit serieller Schnittstelle verbauen kann. :-)

von Helmut L. (helmi1)


Lesenswert?

1234567890 schrieb:
> oder sogar einen
> weiteren Mikrocontroller mit serieller Schnittstelle verbauen kann. :-)

Aber dann schon richtig, mindestens einen STM32 Cortex mit 168MHz Takt, 
sonst schafft er das nicht.

von 1234567890 (Gast)


Lesenswert?

Helmut L. schrieb:
> Aber dann schon richtig, mindestens einen STM32 Cortex mit 168MHz Takt,
> sonst schafft er das nicht.

Genau, da kann man dann noch ein Display dranhängen und eine 
statistische Auswertung über das Prellen eines jeden einzelnen Schalters 
machen, eine kleine MP3-Datei bei jedem Tastendruck abspielen, eine 
kleine Animation während des Schaltvorgangs im Display anzeigen, das 
Licht im Badezimmer per Bluetooth ein- oder ausschalten und die 
Vorlauftemperatur der Heizkörper per WLAN ändern.

von Paul B. (paul_baumann)


Lesenswert?

1234567890 schrieb:
> ....und die
> Vorlauftemperatur der Heizkörper per WLAN ändern.

Per WLAN? Das wäre mir zu heiß...

MfG Paul

von Wolfgang (Gast)


Lesenswert?

Dominic K. schrieb:
> Ich nutze bereits den 644er ...

Dann zeig doch mal deine Schaltung. Vermutlich läßt sich die Nutzung der 
Pins noch verbessern. Jeder normale PC kommt mit 4 Pins (incl. 
Versorgungsspannung) für über hundert Tasten aus ;-)

von Dominic K. (domi1997)


Angehängte Dateien:

Lesenswert?

Hier sind die Schemen.Bin gerade am ändern der BUttons daher sind noch 
unrouted lines da.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ist schon gut ausgelastet. ;-)

Ggf. kannst du die JTAG-Leitungen doppelt belegen.  Das JTAG
lässt sich mit dem JTD-Bit dynamisch zur Laufzeit ausschalten,
d. h. du hast es dann immer noch zum Programmieren verfügbar,
Debuggen geht natürlich nur, solange dabei niemand auf die Buttons
drücken muss.  Wenn man debuggen will, muss man entweder das Setzen
von JTD ganz abklemmen, oder man setzt einen Breakpoint davor und
geht dann im Einzelschritt drüber.  (Damit JTD wirksam wird, muss es
zweimal direkt hintereinander gesetzt werden.)

von Dominic K. (domi1997)


Lesenswert?

Ich habe es nun mit einem adc gelöst, ich hoffe das funktioniert so. 
Eine etwas dumme Frage habe ich noch. Wie nrnnt man das kleine feine 
jtag kabel dad mit dem ganz feinen Abstand? Mein Problem ist das mein 
platinenhersteller 10euro mehr will wenn ich den drauf habe,da der 
Abstand unter 6mil liegt.Jetzt dachte ich daran lötstifte zu verwenden 
und da ein kabel anlöten. Aber ich finde diesen Stecker nicht.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Das sind Pfostenstecker mit 1,27 mm Raster.

von Peter D. (peda)


Lesenswert?

Dominic K. schrieb:
> Mein Problem ist das mein
> platinenhersteller 10euro mehr will wenn ich den drauf habe,da der
> Abstand unter 6mil liegt.

Du mußt ja nicht zwischen die Pins noch nen Track quetschen.
Ich hab auch 1,27mm Pfosten drauf und komme bequem mit 10mil hin.
Erst bei ICs im 0,5mm Pitch nehme ich 8mil.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

ADG704. Auch wenn es vielleicht schon zu spät ist...

von Dominic K. (domi1997)


Lesenswert?

hat jemand eine eagle library für ein 2x5 1.27mm pin header? Denn 
welchen ich verwendet habe war der beste,denn ich fand. Andere haben 
noch weniger Abstand:/. Wie ihr auf dem Board seht hat es keine 
Leiterbahn zwischen den Pins

: Bearbeitet durch User
von 1234567890 (Gast)


Lesenswert?

Dominic K. schrieb:
> Hier sind die Schemen

Wer bringt euch eigentlich bei, solche zerstückelten unübersichtlichen 
Schaltpläne zu zeichnen?

Ein Schaltplan soll die Zusammenhänge in der Schaltung übersichtlich und 
nachvollziehbar darstellen. Auch, wenn man eine Woche später nochmal 
drauf guckt.

Wenn man keine übersichtlichen Schaltpläne zeichnen will oder braucht, 
kann man gleich das Board zeichnen, ohne den Schaltplan.

Das mit den Labels ist eine tolle Sache, wenn  man sie in vernünftigen 
Mengen (so wenig wie möglich; bei den Betriebsspannungen; bei 
Seitenwechseln) und an vernünftigen Stellen (z.B. Bei Seitenwechseln 
rechts und links am Rand) einsetzt.

Das ist ein einseitiger Plan mit ungefähr 30 (in Worten: dreißg) Label. 
Auf einen solchen Plan gehören außer den Betriebsspannungen und 
Masseverbindungen gar keine Label.

Meine Empfehlung: Löschen und Neuzeichnen!

von 1234567890 (Gast)


Lesenswert?

Dominic K. schrieb:
> hat jemand eine eagle library für ein 2x5 1.27mm pin header?

Selber zeichnen. Das ist eine gute Übung mit dem Tool deiner Wahl 
umzugehen. Und eine Stiftleiste ist wirklich kein großes Geheimnis.

von 1234567890 (Gast)


Lesenswert?

Dominic K. schrieb:
> hat jemand eine eagle library für ein 2x5 1.27mm pin header? Denn
> welchen ich verwendet habe war der beste,denn ich fand. Andere haben
> noch weniger Abstand

So funktioniert es sowieso nicht. Es sind alle 10 Pins miteinander 
verbunden! Der Durchmesser des Restrings steht bestimmt auf "auto". Du 
musst die Lib also anpassen.

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.