Hallo, ich habe ein fertiges gekauftes Gerät, welches ein PIN-Pad (4x4 Matrix) hat und ich möchte mit "meinem" Gerät tasten bei diesem Gerät "drücken". Nach einigen Irrwegen habe ich verstanden, dass solche Pin-Pads mehrschrittig (Interrupt auf Spalte, dann Scan über Zeilen) gelesen werden. Das kann ich auch schön im Oszi nachvollziehen. Jetzt dachte ich, ich muss einfach die "Sequenz" der Ereignisse imitieren. Sprich: Spalte auf LOW ziehen, dann den Scanmode erkennen (Spalte wieder HIGH) und "im richtigen Moment" (wenn Zeile LOW ist), die Spalte auf LOW ziehen. Im Oszi sehe ich, dass eine Zeile für ca. 80µs im LOW-State ist und ca. 3mal so lange im HIGH State. Das fühlt sich also alles richtig an / so an als würden meine Annahmen erstmal stimmen. Ich versuche das ganze mit einem ESP8266 zu steuern. Und renne hier gerade in das Problem, das ein (Adruino) loop Up/down "zu langsam" ist. Sprich die erwartete Frequenz um Größenordnungen verfehlt wird. Aber das ist nur der aktuelle Stolperstein in einer langen Kette. Meine konkrete Frage: Ist es überhaupt realistisch sinnvoll in euren Augen machbar so einen Tastendruck zu "imitieren"? Oder bin ich hier auf den letzten Metern eines langen Holzweges? Danke!
:
Bearbeitet durch User
Sebastian G. schrieb: > Nach einigen Irrwegen habe ich verstanden, dass solche Pin-Pads > mehrschrittig (Interrupt auf Spalte, dann Scan über Zeilen) gelesen > werden. Das kann ich auch schön im Oszi nachvollziehen. Da wird eine "handelsübliche" Matrixabfrage gemacht. Ein Interrupt kommt wird dafür darin normalerweise nicht benötigt. Allerdings kann die Umschaltung der Zeilen/Spalten und die Auswertung auch in einem Timerinterrupt passieren. > Jetzt dachte ich, ich muss einfach die "Sequenz" der Ereignisse > imitieren. Sprich: Spalte auf LOW ziehen, dann den Scanmode erkennen > (Spalte wieder HIGH) und "im richtigen Moment" (wenn Zeile LOW ist), die > Spalte auf LOW ziehen. Wenn du die Matrix simulieren willst, dann musst da nichts immitieren, sondern blitzschnell reagieren. Denn das Timing bestimmt ja der Controller im Pinpad, der da einfach die einen Signale umschaltet und die Reaktionen auswertet. > Meine konkrete Frage: Ist es überhaupt realistisch sinnvoll in euren > Augen machbar so einen Tastendruck zu "imitieren"? Das geht nur, wenn du das recht knappe Timing schnell genug nachbauen und entsprechend schnell regieren kannst. > ich habe ein fertiges gekauftes Gerät, welches ein PIN-Pad (4x4 Matrix) > hat und ich möchte mit "meinem" Gerät tasten bei diesem Gerät "drücken". Was spricht gegen Relais über den bzw. statt der Tasten?
Lothar M. schrieb: > Was spricht gegen Relais über den bzw. statt der Tasten? Oder Optokoppler. Klein und billig.
Oder Analogschalter. Ich hab das vor Jahrzehnten (198x) mal mit einem EEPROM gemacht, für eine elektrische Schreibmaschine. Ein Teil der Adressen waren die Scanleitungen, der zweite Teil das zu druckende Zeichen und der Ausgang hat dann die Leseleitung bedient.
Vielen Dank für die Antworten. 1. Warum keine Relais? Geschmackssache :) Um ehrlich zu sein, hätte das alles vor Wochen fertig sein können, wenn ich das mit Relais realisiert hätte. Es fühlt sich nur irgendwie unelegant an. 2. Blitzschnell reagieren Das ist der Punkt den ich immer mehr realisiere, wie schnell das sein muss. Sagen wir aber mal, dass ich das hinbekomme - im zweifel mit ASM oder noch größeren Kanonen (dickerer Controller, FPGA what not). Stimmt rein die Logik, dass man, wenn man im "ScanMode" ist, "nur" die FALLING Flanke erkennen und so lange die Spalte LOW hält, bis wieder die RISING Flanke da ist? 3. Analogschalter (74HC4051) Das ist nen Weg der sich nicht ganz nach Niederlage anfühlt... irgendwie ist das zwar fast SSR, aber das kann ich mir schön reden. 4. "ich habe das in den 1980er"... Kudos... im Ernst: Ohne die ganzen Internetquellen ist das für mich schwer vorstellbar. Ich erinnere mich an die Wochen, die ich zugebracht habe das Atmega8 Datenblatt zu lesen :)
Hallo, Wenn die fallende Flanke zum lesen einer Zeile erkennst ist es bereits zu spät. Triggere statt dessen auf die steigende Flanke der vorherigen Zeile um die nächste "vorzubereiten". Je nachdem wie viel Zeit dazwischen liegt, hast du VIELLEICHT eine Chance. Zeichne mal Timing Diagramme mit nem Osszi auf. 2x 74HC4051 erscheint aber immer noch am einfachsten. Grüße, da1l6
Sebastian G. schrieb: > Stimmt rein die Logik, dass man, wenn man im "ScanMode" ist, "nur" die > FALLING Flanke erkennen und so lange die Spalte LOW hält, bis wieder die > RISING Flanke da ist? Ja, so macht das eine gedrückte Taste auch. Nur eben mit 0µs Verzögerung.... Sebastian G. schrieb: > Im Oszi sehe ich, dass eine Zeile für ca. 80µs im LOW-State ist und ca. > 3mal so lange im HIGH State. D.h. also, dass irgendwann vor Ablauf der 80µs der Wert (ggfs. auch mehrfach) eingelesen wird. Ich würde sagen, du hast da realsistisch 20-30µs Zeit zum Anlegen der "Antwort" an die Returnleitungen. Schaffst du das mit dem Rechenboliden? Praktisch würde ich diese "Antwort" aber schon vorher (wie gesagt: nach der vorherigen steigenden Flanke) anlegen. Das geht aber natürlich nur, wenn die selbe Matrix (bzw. deren Returnleitungen) nicht auch für Ausgaben verwendet wird. Oder eben ein Tristate-Gatter dazwischenschalten, das dann mit den (verUNDeten) low-aktiven Scanleitungen auf Durchlass geschaltet wird. So hast du dann 300µs mehr Zeit und das Ganze entspannt sich gewaltig.
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.