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
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
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.
nlas4599 ist ein umschalter, ob es die auch doppelt gibt? sicherlich... https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwiNwKPWmOTPAhVLvRQKHWedALYQFgggMAA&url=https%3A%2F%2Fwww.onsemi.com%2Fpub%2FCollateral%2FNLAS4599-D.PDF&usg=AFQjCNEaGbNt1q84CXCSX59NGe4nf-j9uQ&sig2=MPaBmDF10Wh8rSKfDGV9Yg StromTuner
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
Ich nutze bereits den 644er der nächste den ich von den registern kenne ist der 2560er und der wäre Overkill.
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?
Dominic K. schrieb: > Dachtest du an sowas? Aua... Wie soll denn Deine kreative Umsetzung von Helmuts durchaus korrekter Skizze bitte funktionieren?
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.
Dominic K. schrieb: > Ich nutze bereits den 644er Dann nimm einen ADC-Pin. Alle 4 Taster an einem Pin.
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?
NLAS4684 im DFN10 schaltet 2xum und den NLAS4599 im SC70 dahinter. oder eben drei mal 4599 als "binären baum"... StromTuner
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
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.
Eine korrekte Erkennung gleichzeitig gedrückter Taster ist also nicht erforderlich?
Dominic K. schrieb: > Ich würde s nun so machen Dann kannst Du aber nicht erkennen, ob keine Taste gedrückt ist.
>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
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.
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.
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.
Das soll heissen beim Pin muss noch ein Pulldown widerstand hin?
Peter D. schrieb: > driftet langsam durch Leckströme in unbekannte Richtung Oder wackelt im 50-Hertz-Takt vor sich herum. ;)
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?
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
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.
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.
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.
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.
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.
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.
> 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
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
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
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.
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.
Warum dieser Aufwand, 3 Widerstaende und 3 Dioden reichen mit 3 Ports fuer 6 Tasten
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
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
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. :-)
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.
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.
1234567890 schrieb: > ....und die > Vorlauftemperatur der Heizkörper per WLAN ändern. Per WLAN? Das wäre mir zu heiß... MfG Paul
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 ;-)
Hier sind die Schemen.Bin gerade am ändern der BUttons daher sind noch unrouted lines da.
:
Bearbeitet durch User
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.)
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.
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.
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
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.