Hallo in die Runde! Ich zerbreche mir den Kopf über eine Matrix. Zum Abfragen von Tastenfeldern nutzt man ja gerne Matrizen, z.B. 8x8, alles nix Neues. Die werden aber logischerweise mit Schaltern realisiert. Nun würde ich statt Schaltern gerne Hallsensoren nutzen, Problem: mit einer klassischen Diodenmatrix nicht machbar, da der Output des Hall zwar bei Erkennen eines Magneten auf GND zieht (Open Collector), aber ja nicht als klassischer Schalter fungiert. Mein Ziel soll sein: Klassische 8x8 Matrix statt mit Schaltern über Hall.... mit wenigen zusätzlichen Bauteilen. Es handelt sich um eine MIDI-Projekt. Rein Theoretisch könnte ich die einzelnen Eingabetasten als Einzeleingang (Scanrow) auf den MIDI-Encoder schicken, aber aus Platzgründen geht das nicht (54 Einzeltasten), daher muß es schon eine 8x8-Matrix sein. Die Hallsensoren sollen dauerhaft auf Vss und GND sein, d.h., die Variante, bei der solche Sensoren in einer Matrix mittels Transistoren, Multiplexer etc. ein- und ausgeschaltet werden, fällt flach. Mir geht es darum, eine Version zu entwerfen, bei der der Ausgang des Halls quasi "schaltet". Transistor? Besten Dank für Eure Anregungen!!
:
Bearbeitet durch User
Es gibt Analogschalter in 8*8-Matrix, aber das wäre hier etwas überdimensioniert https://www.maximintegrated.com/en/products/analog/analog-switches-multiplexers/MAX4456.html 64 Optokoppler als Analogschalter sind auch etwas aufwendig. Vom gewöhnlichen CD4066 oder CD4016 sind immer noch 16 Stück nötig.
:
Bearbeitet durch User
Andreas K. schrieb: > Es handelt sich um eine MIDI-Projekt. Rein Theoretisch könnte ich die > einzelnen Eingabetasten als Einzeleingang (Scanrow) auf den MIDI-Encoder > schicken, aber aus Platzgründen geht das nicht (54 Einzeltasten), daher > muß es schon eine 8x8-Matrix sein. Der logische Kurzschluss erschließt sich mir nicht. Ich würde da der Einfachheit halber ein paar Schieberegister nehmen. Andreas K. schrieb: > Die Hallsensoren sollen dauerhaft auf Vss und GND sein, d.h., die > Variante, bei der solche Sensoren in einer Matrix mittels Transistoren, > Multiplexer etc. ein- und ausgeschaltet werden, fällt flach. Würde das Parallelschalten prinzipiell fuktionieren? Halten die nicht versorgten Schalter am Ausgang still? Hast du das probiert?
:
Bearbeitet durch Moderator
Das Problem beim Multiplexen der Vss ist ja dann die Reaktionszeit. Das haben einige Freaks schon probiert, mit bescheidenen Ergebnissen. Teilweise hat der MIDI-Encoder Müll eingelesen. Man müßte also schon den in der klassischen 8x8-Diodenmatrix vorhandenen Schalter mittels des Hall-Ausgangs simulieren. Das wäre dann die ultimative Lösung, weil man dann eine Platine entwerfen kann, die anreihbar und zu jedem üblichen MIDI-Encoder paßt, der 8x8 kann, was bei den meisten so ist, die mit Klaviertasten o.ä. zu tun haben.
Ein Problem der Tastenmatrix ist das "Rollover", wenn kurzzeitig mehrere Tasten gedrückt sind. Hier hilft am einfachsten ein Prioritäts-Encoder 74xx147/148 https://www.ti.com/lit/ds/symlink/cd74hc147.pdf https://www.ti.com/lit/ds/symlink/sn74hc148.pdf
Es wird natürlich so sein, daß bis zu 10 Tasten (zehn Finger) gedrückt sein können. Bei klassischen 8x8-Scannern ist das auch kein Thema. Die Firma FATAR, weltweit größter Klaviaturhersteller, löst das ja nicht mit Hallsensoren, sondern mit kleinen Gummihütchen, die dann auf ein Graphitbeet drücken, so wie beim Taschenrechner quasi. Problem: die nutzen sich rapide ab. Hallsensorlösungen gibt es, klar, aber nicht als Matrix, sondern nur als Einzelkontakt, was bei 64 Tasten ein 64pol. Kabel fordert mit entsprechender Anbindung an die Auswertelektronik. Gerade bei MIDI hat sich aber die 8x8 bewährt. Deswegen bin ich an einer Lösung für Hall dran.
Eine Handvoll Schieberegister ala 74HC595 oder PCF8574. Wenn es denn UNBEDINGT eine Matrix sein soll, könnte man PNP-Transistoren über den Open Collector Ausgang ansteuern und deren Emitter an die geschalteten Zeilen klemmen. Siehe Anhang. Könnte funktionieren. Wenn man welche mit integriertem Basiswiderstand nimmt ("Digitaltransistor"), wird das auch alles recht klein.
Christoph db1uq K. schrieb: > Ein Problem der Tastenmatrix ist das "Rollover", wenn kurzzeitig mehrere > Tasten gedrückt sind. Den vermeidet man, wenn die Tasten Dioden in Reihe haben.
Die ICs, die sich "8*8" nennen sind leider nicht brauchbar, die werden digital angesteuert, nicht über einzelne Tasten (auch das von Maxim, das ich nannte). https://www.mouser.de/Semiconductors/Communication-Networking-ICs/Analog-Digital-Crosspoint-ICs/_/N-50nch?P=1yyhncd Ich habe ein aufrollbares "Klavier" von Pollin (35€ damals), da hat der Hersteller die Matrixdioden eingespart. Wenn ich mehr als drei Tasten gleichzeitig drücke gibt es noch mindestens einen vierten Misston gratis dazu.
Andreas K. schrieb: > Mir geht es > darum, eine Version zu entwerfen, bei der der Ausgang des Halls quasi > "schaltet". Transistor? Da brauchst du Schalter, ob Transistor Relais Opto .. ist vom Prinzip her egal. Deine Abfrage muss auch schnell genug sein um den "Hallimpuls" zu erwischen Wenn es ein Keyboard ist will man noch wissen ob mehrere Tasten gleichzeitig gedrückt wurden, evtl später noch ne Anschlagdynamik usw ... Wird das jetzt weniger Aufwand als mit Schieberegistern? Alternativ, die Ausgänge sind ja aktiv, kann man auch über analoge Messung per Spannungsteiler nachdenken. Dann muss der Analogwert für jede Taste verschieden sein und man nimmt ein paar A/D Wandler als Eingänge. Hat auch den Charme das keine Frequenzen durch das ganze laufen die andere Teile stören können
Andreas K. schrieb: > Besten Dank für Eure Anregungen Jeder Kreuzungspunkt:
1 | +5V+5V |
2 | | | |
3 | | 10k +---- Scanrow (die eine, die ausgewertet wurd, auf high) |
4 | | | | |
5 | Hall--+--|< NPN |
6 | | | |
7 | | +----+--- Scanline (aktiver Hallsensor bleibt low) |
8 | | | |
9 | | 10k common pull down |
10 | | | |
11 | GND GND |
Die Transistoren wirken als Dioden, also dürfen simultan mehrere Hallsensoren aktiv sein. So lange VCC nur 5V beträgt, ist UBE reverse kein Problem. Leider braucht man 64 10k pull ups weil die meisten Hgallsensoren nur open collector Ausgänge haben. Bei Halsensor mit push-pull können die entfallen, braucht auch keine Basisvorwiderstände.
Toby P. schrieb: > Andreas K. schrieb: >> Mir geht es >> darum, eine Version zu entwerfen, bei der der Ausgang des Halls quasi >> "schaltet". Transistor? > > Da brauchst du Schalter, ob Transistor Relais Opto .. ist vom Prinzip > her egal. Deine Abfrage muss auch schnell genug sein um den "Hallimpuls" > zu erwischen > > Wenn es ein Keyboard ist will man noch wissen ob mehrere Tasten > gleichzeitig gedrückt wurden, evtl später noch ne Anschlagdynamik usw > ... > > Wird das jetzt weniger Aufwand als mit Schieberegistern? > > > Alternativ, die Ausgänge sind ja aktiv, kann man auch über analoge > Messung per Spannungsteiler nachdenken. Dann muss der Analogwert für > jede Taste verschieden sein und man nimmt ein paar A/D Wandler als > Eingänge. Hat auch den Charme das keine Frequenzen durch das ganze > laufen die andere Teile stören können Die MIDI-Encoder, die ich im Blickfeld habe, fragen mit ca. 300Hz ab, das reicht locker für jede musikalische Anwendung. Problem ist halt, wie schon beschrieben, daß die Encoder, die wirklich was taugen, mehrheitlich entweder mit 8x8 Diodenmatrix oder mit 64x1 Scanrow (alle Taster liegen an einem GND-Bus und jeder hat einen Input am Encoder) fahren. Diodenmatrix ist Standard im Musikbereich, Korg, Roland, Kawai, Yamaha, alles nutzen das. Teilweise sogar mit zwei oder drei Tastern pro Ton, damit man die Dynamik "berechnen" kann (laut, leise...). Hallsensoren gibt es nur im professionellen Orgelbau, da aber, wie gesagt, nicht für MIDI, sondern eben Ton für Ton auf Rechner und weiter zur Leistungsstufe. Angehängt das übliche Diodenschema mit den Tastern. So läuft das in Mio Tastaturen. Die Taster sollen eben jetzt durch Hall ersetzt werden, da die 1. ewig robust 2. prellfrei 3. besser justierbar sind 4. man nix mechanisch drücken muß, was wiederum zu Lasten des Druckpunktes der Tasten geht.
MaWin schrieb: > Andreas K. schrieb: >> Besten Dank für Eure Anregungen > > Jeder Kreuzungspunkt: > >
1 | > +5V+5V |
2 | > | | |
3 | > | 10k +---- Scanrow (die eine, die ausgewertet wurd, auf high) |
4 | > | | | |
5 | > Hall--+--|< NPN |
6 | > | | |
7 | > | +----+--- Scanline (aktiver Hallsensor bleibt low) |
8 | > | | |
9 | > | 10k common pull down |
10 | > | | |
11 | > GND GND |
12 | > |
Die Elektronik würde 5V+ erhalten, demnach wäre das machbar. Der 10k Pulldown ist notwendig? Hat die Auswerte-Elektronik nicht schon pull-downs drin? Pull-Ups kein Problem, SMD. Die Platine soll immer 8 Halls enthalten, modular erweiterbar über Flachstecker... da passen die paar Pull-Ups gut drauf.
Andreas K. schrieb: > Das Problem beim Multiplexen der Vss ist ja dann die Reaktionszeit. Dann verrate doch mal, wie lang die Reaktionszeit sein darf, ohne dass es sich störend auswirkt? > Das haben einige Freaks schon probiert, mit bescheidenen Ergebnissen. Und du bist sicher, dass die kein Problem in ihrer Verschaltung und dem Auswertealgorithmus hatten?
Wolfgang schrieb: > Andreas K. schrieb: >> Das Problem beim Multiplexen der Vss ist ja dann die Reaktionszeit. > > Dann verrate doch mal, wie lang die Reaktionszeit sein darf, ohne dass > es sich störend auswirkt? ab 10ms wird es kritisch, je nachdem, was Du spielst.... > >> Das haben einige Freaks schon probiert, mit bescheidenen Ergebnissen. > > Und du bist sicher, dass die kein Problem in ihrer Verschaltung und dem > Auswertealgorithmus hatten? 300Hz sollten es schon sein, ist halt Standard bei MIDI... mir geht es ja darum, etwas zu entwerfen, was mit bereits erhältlichen Teilen kompatibel ist. Das Problem bei anderen war offenbar, daß die Hallsensoren beim Zuschalten offenbar undefinierte Zustände angenommen hatten und just in dem Moment eine Abfrage generiert wurde, die dann ein fehlerhaftes Ergebnis lieferte. Auf jeden Fall ist diese Art der Hallverschaltung (Vss über Transistor etc. zuschalten) nicht bei instrumentalen Sachen anwendbar, wurde probiert, unbefriedigend. Deswegen hängt man ja immer noch auf Graphit-Gummi-Kontakten fest oder eben auf Hall mit Einzelton-Einlesung. Ich weiß, keine befriedigende Antwort auf Deine Frage, aber alle MIDI-Hersteller und Lieferanten schütteln den Kopf, wenn ich nach Hall und Matrix frage. Selbst hochpreisige im Orgelbau-Zubehör..... da reden wir dann mal über 5000 für die Klaviatur, und 15000 für die Elektronik, bei 10 Registern und knapp 700 Pfeifen.
:
Bearbeitet durch User
Andreas K. schrieb: > bei 10 Registern und knapp 700 Pfeifen. Hier im Forum gibt es DEUTLICH mehr davon ;-)
Schau mal ob Du ne alte DDR Tastatur bekommst. ich weis nicht mehr welche es war, da war jede Taste mit Hall IC gebaut. Vlt. schau ich mal nach, ich müsste sogar noch welche von den Tasten haben.
Andreas K. schrieb: > Der 10k Pulldown ist notwendig? Hat die Auswerte-Elektronik nicht schon > pull-downs drin? Wenn die welche drin hat, sind die verzichtbar.
Alternativ das ganze per Mikrocontroller und SPI lösen. Sind dann ja nur 64 Bit durchzuschieben. Du kannst z.B jeweils 8 Tasten an einen Klemmen. Da die Hall Tasten ja aktiv sind geht das empfangen auch per Interrupts. Das lässt sich auch beliebig in Module aufteilen.
Andreas K. schrieb: > Wolfgang schrieb: >> Andreas K. schrieb: >>> Das Problem beim Multiplexen der Vss ist ja dann die Reaktionszeit. >> >> Dann verrate doch mal, wie lang die Reaktionszeit sein darf, ohne dass >> es sich störend auswirkt? > > ab 10ms wird es kritisch, je nachdem, was Du spielst.... Wenn man den Multiplexer nicht ausgerechnet mit Relais aufbaut, sind 10ms doch überhaupt kein Problem. Das wären gerade 100 Scans pro Sekunde, d.h. bei einer 8x8-Matrix hätte man mehr als 1ms pro Spalte ;-)
Ha, wer suchet, der findet! Hier hat jemand ein Board zusammengebruzzelt, Hallsensoren, zur Abfrage von Pedaltastensignalen... wenn ich richtig sehe: 74HCT4051....... Multiplexer
:
Bearbeitet durch User
Christoph db1uq K. schrieb: > 64 Optokoppler als Analogschalter sind auch etwas aufwendig. Sehe ich nicht so, und auch der Preis ist klein.
unterm Strich brauchen wir ja nur die beiden Widerstände 0 Ohm und unendlich zu simulieren, also Schalter "ZU" oder "AUF". Das sollte doch wohl mit nem Transistor "in etwa" möglich sein.
Falk B. schrieb: > Eine Handvoll Schieberegister ala 74HC595 oder PCF8574. > > Wenn es denn UNBEDINGT eine Matrix sein soll, könnte man > PNP-Transistoren über den Open Collector Ausgang ansteuern und deren > Emitter an die geschalteten Zeilen klemmen. Siehe Anhang. Könnte > funktionieren. Wenn man welche mit integriertem Basiswiderstand nimmt > ("Digitaltransistor"), wird das auch alles recht klein. z.B. BCR185 SMD?
Wenn man Anschlagdynamik will, braucht man das ganze zweimal. 128 Hallsensoren lassen sich leicht mit 16 165er Schieberegistern einlesen. Man hat ueberhaupt keine Probleme mit Roll-over, vielen gleichzeitig gedrueckten Tasten und dem Timing. Die Schieberegister kann mit man direkt per SPI in den Controller einlesen. Bautechnischer Vorteil: Man muss keine 128 Strippen von den Hallsensoren zu einer Auswerteelektronik fuehren, sondern nur zwei bzw 3. Takt, Daten-In und Daten-Out. Und kann jeweils einer Gruppe von Tasten eine Baugruppe mit Schieberegistern zuordnen und dann per SPI kaskadieren. Kommerzielle Instrumente haben Platinen von Manualgroesse verbaut. Das will man sich selber vielleicht nicht antun. Schieberegister erlauben, den gesamten Aufbeu in handliche Teile zu zerlegen. Alles andere ist m.E. voellig sinnfrei.
Aus den Daten kann man natuerlich auch selbst dann MIDI-Befehle erzeugen. Note-On, Note-Off und aus der Geschwindigkeit des Anschlags die Velocity. Kein Grund fuer einen weiteren "komischen" Matrixdekoder.
Larry schrieb: > Bautechnischer Vorteil: Man muss keine 128 Strippen von den > Hallsensoren zu einer Auswerteelektronik fuehren, sondern > nur zwei bzw 3. Takt, Daten-In und Daten-Out. > Und kann jeweils einer Gruppe von Tasten eine Baugruppe > mit Schieberegistern zuordnen und dann per SPI kaskadieren. und schnell genug wäre es auch. 10ms / 54 Tasten = 185us, das entspricht einem Mindest-Bittakt von nur 5,4 kHz.
> 5,4 kHz
Wenn man bei der Velocity einigermassen exakte Werte
haben will, muss man da schon einen Zahn zulegen.
Sonst hat man da nur einen Hausnummerngenerator.
Aber selbst 1.28 MHz ist ja fuer HCMOS kein Problem.
Dann hat man alle 100 us eine Abfrage jedes Ein- und
Aus-Hallsensors.
Oder man teilt das auf 2 SPI-Kanaele auf.
@Larry: natürlich. Die Rechnung war nur als Überschlag gedacht um zu zeigen, dass die Geschwindigkeit kein Problem ist und man um Größenordnungen von irgendwelchen Limits entfernt ist.
Auf die Schnelle habe ich nicht gesehen, ob folgender Vorschlag schon mal kam: Jedem Hall-Sensor wird ein ein 1-Gatter Analogschalter (z. B. 74HCT1G66) und eine Diode zugeordnet. Platz für die beiden Elemente in SOT23-Gehäusen, oder auch viel, viel kleiner, sollte sein. Der Analogschalter wirkt wie ein potentialfreier Kontakt, so dass die Schaltung wieder wie in Beitrag "Re: 8x8 Matrix mit Hallsensoren" aussieht. Der Hall-Sensor müsste natürlich einen digitalen Ausgang mit aktiv high haben. Prinzipiell würde es statt der '66 auch ein kleiner MOS-FET tun, wenn seine Schaltschwelle (und sein Gehäuse sowie sein Preis) klein genug ist. Oder 4-fach eine 'HCT4066.
Matritze schrieb: > Schau mal ob Du ne alte DDR Tastatur bekommst. ich weis nicht mehr > welche es war, da war jede Taste mit Hall IC gebaut. Die Taster da drin hießen TSH19. Jede Taste hatte 4 Anschlüsse; 5P, GND, Enable und Out. Es konnte mit Enable und Out also ganz leicht eine Matrix aufgebaut werden. Der Hall-IC war ein B461 (TTL-Pegel) oder B462 (CMOS).
So eine ASCII-Tastatur mit 4-oder 5-poligen Siemens Hall-ICs habe ich auch noch. Je nach Tastenfunktion eines mit Dauerausgang oder kurzem Impuls. Unter jeder Tastenkappe ein kleiner Permanentmagnet. Im Vergleich zu heutigen Tastaturen ist die ziemlich hoch. Ich hatte die an meinen Apple-II-Nachbauten hängen.
Andreas K. schrieb: > Zum Abfragen von Tastenfeldern nutzt man ja gerne Matrizen, z.B. 8x8, > alles nix Neues. > Die werden aber logischerweise mit Schaltern realisiert. > Nun würde ich statt Schaltern gerne Hallsensoren nutzen, Problem: Kein Problem. Du mußt nur passende Hallsensoren verwenden. Die Tätärä hat Tastaturen auf dieser Basis gebaut, mit dem B461 Hallsensor. Der hat 4 Pins: GND, Vcc, Enable (l-aktiv) und Out (open collector). Damit konnte man direkt eine Matrix aufbauen. Enable-Eingänge als Zeilen und open-collector Ausgänge als Spalten. Der Äquivalenztyp zum B461 war der SAS261 von Siemens. Diese historischen Typen wirst du nicht mehr bekommen (bzw. nur als Restposten aus unzuverlässigen Quellen). Aber neuere Typen dieser Art wird es ja wohl geben.
:
Bearbeitet durch User
nanu, da werde ich zitiert: https://telcontar.net/KBK/Siemens/Hall_ICs#docs von hier: Beitrag "Re: Hall Sensor SAS 221S2 (Siemens)" mit dem genannten SAS-261
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.