Suche einen kleinstmöglichen 4 to 1 mux

OP #4759460
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
#4759474
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
#4759516
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.
#4759532
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.
OP #4759740
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.
Moderator Persönliche Seite #4759773
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.
OP #4759810
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.
Moderator Persönliche Seite #4759939
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.
OP #4760021
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
Gast #4760028
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. :-)
Gast #4760075
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.
Moderator Persönliche Seite #4760386
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.)
OP #4762840
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.
Gast #4764973
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!
Gast #4764978
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.

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