Forum: Analoge Elektronik und Schaltungstechnik Handy Tastenanschlag per Transistor


von Leo B. (luigi)


Lesenswert?

Servus beieienander.

Ich wollte mal anfragen ob jemand Erfahrung damit hat, einen 
Tastenanschlag bei einem Handy (in meinem Fall wird es ein Nokia 6110 
sein) mit einem Transitor auszulösen.
Ich möchte mein Handy nämlich zukünftig über einen uC bedienen.

Bedenken habe ich, da ein Transistor seine Collector-Emitter-Spannung 
leider nicht bis auf 0V "herunterziehen" kann.ein Schalter allerdrings 
schon.
Leider habe ich noch keine Möglichkeit für praktische Tests, will aber 
schonmal theoretisch vorplanen.

Kann mir also jemand sagen obs geht oder nicht?

Vielen dank

von anonymous (Gast)


Lesenswert?

1.) geht wahrscheinlich, ist aber davon abhängig wie die tastatur 
funktioniert

2.) warum nicht per seriellem port ran oder gleich nen gsm-modem?

von Michael L. (Gast)


Lesenswert?

Hallo,

> Ich wollte mal anfragen ob jemand Erfahrung damit hat, einen
> Tastenanschlag bei einem Handy (in meinem Fall wird es ein Nokia 6110
> sein) mit einem Transitor auszulösen.
> Ich möchte mein Handy nämlich zukünftig über einen uC bedienen.
Nein, habe ich nicht. Ich habe noch so ein altmodisches Handy - also 
eines mit den Tasten 0...9. Viel mehr Tasten braucht man ja auch nicht 
zum Wählen. Und da tippe ich dann immer mit dem Finger drauf. 
Transistoren oder Mikrocontroller sind mit zu empfindlich dafür. ;-)

> Bedenken habe ich, da ein Transistor seine Collector-Emitter-Spannung
> leider nicht bis auf 0V "herunterziehen" kann.ein Schalter allerdrings
> schon.
Ein FET kann das auch; je nach Modell hast Du dann nur wenige Milliohm 
zwischen Source und Drain.

Gruß,
  Michael

von yalu (Gast)


Lesenswert?

Möglicherweise schalten die Tasten nicht gegen Masse, sondern sind in
einer Matrix angeordnet. Sollte dies der Fall sein:

So eine Tastaturmatrix kann man mit einfachen Transistoren nicht ohne
weiteres schalten, da ein gemeinsames Bezugspotenzial fehlt.

Alternativen:

1. Je ein Analogschalter parallel zu den Tasten: Damit kann potenzial-
   frei geschaltet werden. Du kannst bspw. für je 4 Tasten einen 4066
   einsetzen.

2. Das Ganze geht auch digital: Du speicherst die gewünschten Tasten-
   zustände in Tristate-D-Latches (bspw. 74xx373). Jede Tastenzeile
   bekommt ihren eigenen Latch, die Zeilenansteuerleitungen werden mit
   den /OE-Eingängen, die Q-Ausgänge mit den Spaltenleseleitungen
   verbunden, so dass bei Aktivierung einer Tastenzeile durch die
   Handy-Elektronik auch der entsprechenden Latch aktiviert wird und so
   dem Handy Tastendrücke gemäß dem im Latch gespeicherten Bitmuster
   vorgegaukelt werden. Der Mikrocontroller beschreibt die Latches über
   die D- und CLK-Eingänge. Dazu musst du natürlich erst die genaue
   Beschaltung der Matrix im Handy analysieren. Außerdem müssen die
   Latch-Bausteine signalspannungsmässig mit der Handy-Elektronik
   zusammenpassen. Der 74LVX373 läuft bspw. schon ab 2V und könnte ein
   Kandidat sein.

Bei der ersten Variante musst du weniger denken, dafür brauchst du mehr
Mikrocontroller-I/Os und evtl. mehr ICs.

von Leo B. (luigi)


Lesenswert?

Du hast recht, es ist so eine Matrix

> 2. Das Ganze geht auch digital: Du speicherst die gewünschten Tasten-
>    zustände in Tristate-D-Latches (bspw. 74xx373). Jede Tastenzeile
>    bekommt ihren eigenen Latch, die Zeilenansteuerleitungen werden mit
>    den /OE-Eingängen, die Q-Ausgänge mit den Spaltenleseleitungen
>    verbunden, so dass bei Aktivierung einer Tastenzeile durch die
>    Handy-Elektronik auch der entsprechenden Latch aktiviert wird und so
>    dem Handy Tastendrücke gemäß dem im Latch gespeicherten Bitmuster
>    vorgegaukelt werden. Der Mikrocontroller beschreibt die Latches über
>    die D- und CLK-Eingänge. Dazu musst du natürlich erst die genaue
>    Beschaltung der Matrix im Handy analysieren. Außerdem müssen die
>    Latch-Bausteine signalspannungsmässig mit der Handy-Elektronik
>    zusammenpassen. Der 74LVX373 läuft bspw. schon ab 2V und könnte ein
>    Kandidat sein.

Kannst du mir das vllt etwas genauer beshreiben, oder irgendwelche 
schlauen Seiten zu diesem Thema sagen? ich versteh davon leider noch 
nicht viel und Jeder Satz mit "Latch" ist ein Fragezwichen für mich.
Und das Datenblatt mcht mich auch nicht ganz schlau.

Aber das würde mich schon sehr interessieren. Da kann man scheinbar so 
manch eine Leiterbahn einsparen.

von yalu (Gast)


Angehängte Dateien:

Lesenswert?

> Jeder Satz mit "Latch" ist ein Fragezwichen für mich.

Zum Thema Latch:

  http://de.wikipedia.org/wiki/Latch

Der 74x373 hat gleich 8 davon. Zusätzlich sind die Ausgänge tristate,
können also in einen hochohmigen Zustand geschaltet werden.

Alternativ könnte man auch ein 8-fach-D-Flipflop verwenden (74x374), für
die Schaltung ergibt sich dadurch kein Unterschied.

  http://de.wikipedia.org/wiki/D-Flipflop#D-Flipflop

So wie im obigen Bild habe ich mir das ungefähr vorgestellt. Ich bin im
Beispiel von folgenden Randbedingungen ausgegangen:

1. Die Tastaturmatrix hat 4 Zeilen und 8 Spalten.

   Ist die Zeilenzahl größer als 4, musst du zusätzliche 74x373-Latches
   hinzufügen. Ist die Spaltenzahl kleiner als 8, legst du die
   unbenutzten D-Eingänge der Latches einfach auf GND oder VCC, anstatt
   sie an den µC anzuschließen. Mehr als 8 Spalten hat die Tastatur
   wahrscheinlich nicht. Wenn doch, werden pro Zeile mehrere Latches
   benötigt.

2. Die Handy-Elektronik treibt die Zeilenleitungen Z0-Z3 der
   Tastaturmatrix mit einem Low-Active-Signal und liest den aktuellen
   Zustand über die Spaltenleitungen S0-S7. Die Handy-Elektronik legt
   also an diejeige Zeile, die gerade gelesen werden soll, ein
   Low-Signal an, alle anderen Zeilen lässt sie offen. Dann schaut sie
   nach, an welchen Spaltenleitungen das Low-Signal ankommt. Das sind
   dann die gedrückten Tasten der aktivierten Zeile.

   Treibt die Handy-Elektronik nicht die Zeilen, sondern die Spalten,
   dann vertausche einfach die Zeilen mit den Spaltenleitungen. Ist das
   Zeilensignal nicht low- sondern high-active, schaltest du vor die
   EN-Eingänge der Latches jeweils einen Inverter. Aus den
   Pullup-Widerständen R1-R4 (ca. 10kOhm) machst du Pulldown-Widerstände
   (jeweils vom Inverter-Eingang nach GND.

Um festzustellen, wie die Handy-Elektronik die Tastaturmatrix genau
anspricht, wäre ein Oszi nicht schlecht, vielleicht geht es mit ein paar
Tricks aber auch ohne.

Wie schon in meinem ersten Beitrag erwähnt, musst du auf die richtigen
Signalpegel achten. Sind sie in deiner Schaltung höher als diejenigen im
Handy, geht dieses kaputt.

Funktionsweise der Schaltung:

Der Mikrocontroller schreibt in jeden der Latches eine Bitkombination,
die den Zustand der Tasten der entsprechenden Zeile beschreibt. Dabei
steht eine 0 für "gedrückt" und eine 1 für "nicht gedrückt". Das
Schreiben geschieht dadurch, dass das Bitmuster auf den Leitungen
MS0-MS7 ausgegeben und anschließend für der den anzusprechenden Latch
auf die MZn-Leitung (n=0..3) ein kurzer High-Impuls gegeben wird.

Liest die Handy-Elektronik eine Zeile aus, indem sie die Zeilenleitung
auf low zieht, werden die 8 Ausgänge des zugehörigen Latches über den
EN-Eingang aktiviert, die Ausgänge aller anderen Latches bleiben
hochohmig. Die Handy-Elektronik liest somit an den Spaltenleitungen den
gespeicherten Inhalt des Latches aus.

Die Widerstände R5-R12 (ca. 1kOhm) begrenzen den Strom, wenn trotz
angeschlossener Tastendruckelektronik Tasten von Hand betätigt werden.


Und die Alternative mit den Analogschaltern?

So schlecht ist die auch nicht :)

Bei der obigen rein digitalen Schaltung kommst du zwar mit ein paar ICs
weniger aus, aber je nach Anzahl der Tasten ist der Unterschied nicht
einmal so groß. Dafür musst du schon recht viele Schaltungsdetails des
Handys analysieren und auf die richtigen Signalpegel achten.

Die Verwendung von Analogschaltern ist im Vergleich dazu flexibler und
funktioniert unabhängig von der internen Beschaltung im Handy, fast so,
also würde man je ein Relais parallel zu jeder Taste schalten.

Wieviele Tasten hat das Handy denn? Musst du alle davon ansprechen
können?

von Leo B. (luigi)


Lesenswert?

Hey das war mal ne Antwort. Dickes Danke!!!
Ich verstehe also richtig, dass ich in den Latch durch ein positives 
Signal an C1 einspeichern kann was gerade an D1-D8 anliegt (high / low) 
und dann durch ein low-signal an EN wird dieses Abbild dann an den 
Ausgängen ausgegeben.

Ein Oszi habe ich, und werde damit hoffentlich auch herausfinden wie das 
Handy arbeitet.

Aber meinst du wirklich dass die Spannung so kritisch ist? mit den 
1k-Widerständen dürfte doch genug absicherung für 1V, 2V differenz sein 
oder nicht? Mehr spannungsunterschiede zu 5V mit denen meine Elektronik 
arbeiten soll erwarte ich zumindest nicht.

Das Handy, welches ich bedienen möchte hat 18 Tasten, wobei ich davon 12 
Tasten steuern möchte (0-9,*,#,Abheben,Auflegen).
Dies würde sich mit einer 4x4 Matrik verwirklichen lassen.
Die anderen Tasten (LMenü,Up,Down,RMenü) liegen in einer weiteren Zeile 
der Matrix. Sollte das Handy also die Spalten meiner Matrix abtasten, 
brauche ich für die weitere Zeile keine zusätzlichen Bauteile. Dann 
werde ich auch diese Tasten dazunehmen.

Ja Analogschalter sind schon die sicherere Methode, aber nunja, soo 
viele Kabel um die paar signale. Und ich will ja was lernen. Gerade wo 
ich doch jetzt in die Digitaltechnik einsteigen möchte.

von Leo B. (luigi)


Lesenswert?

> Ich verstehe also richtig, dass ich in den Latch durch ein positives
> Signal an C1 einspeichern kann was gerade an D1-D8 anliegt (high / low)
> und dann durch ein low-signal an EN wird dieses Abbild dann an den
> Ausgängen ausgegeben.

Wer Datenblätter lesen kann ist klar im Vorteil...

von Ulf (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

hatte mal ein ähnliches Problem. Die Daten eines Mitutoyo Meßschiebers 
sollten über USB an ein Laptop als Tastencode geschickt werden.
Die "Schnittstelle" ist eine Zifferntastatur mit opt. Maus drin.
Auch in diesem Teil war eine Matrix zu schalten, mit Zeilen- und 
Spaltenleitungen. Der Tastaturcontroller ist eim EM78M611, Datenblatt s. 
ALLDATASHEET.
Die Verbindung der Leitungen gelang mir mit einer Handvoll Transistoren, 
wobei immer der Transistor für die jeweilige Zeile und Spalte 
angesteuert werden.
(Siehe Schaltplan)
Das Ganze hat in der Tastatur noch Platz gefunden, so daß ich jetzt an 
der sowieso benötigten Tastatur/Maus-Kombination auch noch den 
Meßschieber anschließen kann.
Vielleicht klappts auch mit dem Handy so....

ulf.

von Leo B. (luigi)


Lesenswert?

Jetz ma ne sau dumme Frage:
Was muss ich eigentlich bei meinem Handy rausmessen?
ich kapier's grad gar nicht.
Bei jedem Taster steht ein Kontakt auf V+ der andere auf GND. Wenn der 
Taster schließt, stehen beide Auf GND.
Müsste da nicht irgendwie ein pulsieren drin sein?

Ulf wrote:
> Hallo,
>
> hatte mal ein ähnliches Problem. Die Daten eines Mitutoyo Meßschiebers
> sollten über USB an ein Laptop als Tastencode geschickt werden.
> Die "Schnittstelle" ist eine Zifferntastatur mit opt. Maus drin.
> Auch in diesem Teil war eine Matrix zu schalten, mit Zeilen- und
> Spaltenleitungen. Der Tastaturcontroller ist eim EM78M611, Datenblatt s.
> ALLDATASHEET.
> Die Verbindung der Leitungen gelang mir mit einer Handvoll Transistoren,
> wobei immer der Transistor für die jeweilige Zeile und Spalte
> angesteuert werden.
> (Siehe Schaltplan)
> Das Ganze hat in der Tastatur noch Platz gefunden, so daß ich jetzt an
> der sowieso benötigten Tastatur/Maus-Kombination auch noch den
> Meßschieber anschließen kann.
> Vielleicht klappts auch mit dem Handy so....
>
> ulf.

Sowas habe ich mir auch schon überlegt. Zwar mit n paar 40106ern aber 
Transistoren tuns ja prinzipiel auch.
Trotzdem gefällt mir irgendwie die andre Methode besser. Ein Lösungsweg 
wäre es, aber.
Trotzdem Danke für deine Idee.

von Ulf (Gast)


Lesenswert?

Zur "sau dummen Frage":

Wenn wirklich jede Taste ein "V+" gegen GND schaltet, solltest Du mal 
überprüfen, ob die auf GND liegenden Leitungen miteinander verbunden 
sind.
Aber: Ich kann mir nicht vorstellen, daß der Handyentwickler für jede 
Taste einen Portpin vergeudet hat...
Bei mir war "V+" ca. 5V und schien auch nicht getaktet zu sein. Wenn man 
die Leitung aber mit einem ca. 10k Widerstand gegen GND belastete, lag 
ein schönes Rechtecksignal an.
Am einfachsten wäre es, z.B. den "V+" von der Ziffer 9 mit GND einer 
anderen Ziffer zu verbinden. Kommt dabei die 9 auf das Display, ist 
wirklich ein Pin pro Taste verbaut und Du mußt ebensoviele Transistoren 
ansteuern.
Ansonsten mußt Du für Zeile und Spalte je einen Transistor nehmen, z.B. 
3Zeilen und 4Spalten = 7 Transistoren für eine 12 Tasten Matrix.
Bei mir war "V+" ca. 5V und schien auch nicht getaktet zu sein. Wenn man 
die Leitung aber mit einem ca. 10k Widerstand gegen GND belastete, lag 
ein schönes Rechtecksignal an.(Pull high input)
Und, wie gesagt, die jeweils 2 Transistoren haben die Tastatur sauber 
bedient.

ulf.

von Leo B. (luigi)


Angehängte Dateien:

Lesenswert?

Also: Ich hab mal alles ganz wild vermessen. Das Ergebnis steht im Bild.
Das Handy setzt die Signalleitungen 1-5 Auf ca. 3V (wenn ich meinem Oszi 
glauben darf). Beim Drücken eines Schalters wird die entspechende 
Leitung durch die auf 0V liegenden Signalleitungen 6-9 ebenfalls auf 0V 
gezogen.
Selbst mit 10kOhm belastet gibts keine Rechtecke zu finden.
Die Taste löst mit 10k nicht aus, aber die entsprechende Signalleitung 
1-5 wird von ~3V auf ca. ~0,5V heruntergezogen.
Wie das Handy zwischen den Leitungen 6-9 unterscheidet ist mir ein 
Rätsel, welches höchstens durch Strommessung einen Sinn gibt, denke ich.
Wer ne Idee hat bitte Posten!
Ich hab grad keine Ahnung mehr wie des funktionieren könnte.

von gast (Gast)


Lesenswert?

mal ne blöde frage warum kann man nicht einfach einen optokoppler 
verwenden und den an die tasten kontakte anloten, falls das nicht 
funktioniert wegen rechtecksignal oder so vileihct einen optotriac??? 
benötigt halt einige teuererer bauteile

von yalu (Gast)


Angehängte Dateien:

Lesenswert?

> Wie das Handy zwischen den Leitungen 6-9 unterscheidet ist mir ein
> Rätsel, welches höchstens durch Strommessung einen Sinn gibt, denke
> ich.

Ich glaube nicht, dass da etwas mit Stromsignalen gemacht wird. Ich
würde eher auf ein Problem bei der Oszimessung tippen. An einer
gedrückten Taste solltest du eigentlich ein Rechtecksignal messen
können, unabhängig davon, auf welcher Seite die Ein- und Ausgänge des
Handy-Controllers liegen und ob die Signalpegel high- oder low-active
sind. Das Puls-/Pausenverhältnis kann allerdings sehr klein sein. Um die
kurzen Pulse sehen zu können, muss du also die Zeitbasis des Oszis
genügend weit aufdrehen, die Triggerschwelle richtig einstellen (ca.
1.5V) und am besten in den Triggermodus "normal" schalten.

Es gibt m.W. nur zwei sinnvolle Möglichkeiten, eine Tastaturmatrix durch
einem Controller anzusteuern (s. Bild):

Variante a:

Die Zeilenleitung ist normalerweise offen und wird bei Aktivierung auf
Low geschaltet. Die Spaltenleitung wird über einen Pullup im Ruhezustand
auf High gehalten. Nur wenn die Taste gedrückt ist und die betreffende
Zeile aktiviert wird, wird die Spaltenleitung auf Low gezogen.

Variante b:

Wie Variante a, nur mit vertauschten High- und Low-Pegeln.

> Beim Drücken eines Schalters wird die entspechende Leitung durch die
> auf 0V liegenden Signalleitungen 6-9 ebenfalls auf 0V gezogen.

Das sieht nach Variante b aus. Allerdings müssten die 0V durch kurze
3V-Pulse unterbrochen werden.

> Die Taste löst mit 10k nicht aus, aber die entsprechende Signalleitung
> 1-5 wird von ~3V auf ca. ~0,5V heruntergezogen.

Ich nehme an, du hast den 10k-Widerstand gegen GND gelegt. Das sieht
wiederum eher nach Variante a aus: Die 10k bilden mit dem Pullup
(typischer Wert: 50k) einen Spannungsteiler, an dem du die Spannung
3V*10k/(10k+50k)=0,5V misst. In Variante b hätte ich erwartet, dass die
Spannung durch die 10k auf 0V heruntergezogen wird, sonst taugt der
Ausgangs-MOSFET im Controller nichts.

von Tamme D. (tamme)


Lesenswert?


von Leo B. (luigi)


Lesenswert?

yalu wrote:
> Ich glaube nicht, dass da etwas mit Stromsignalen gemacht wird. Ich
> würde eher auf ein Problem bei der Oszimessung tippen. An einer
> gedrückten Taste solltest du eigentlich ein Rechtecksignal messen
> können, unabhängig davon, auf welcher Seite die Ein- und Ausgänge des
> Handy-Controllers liegen und ob die Signalpegel high- oder low-active
> sind. Das Puls-/Pausenverhältnis kann allerdings sehr klein sein. Um die
> kurzen Pulse sehen zu können, muss du also die Zeitbasis des Oszis
> genügend weit aufdrehen, die Triggerschwelle richtig einstellen (ca.
> 1.5V) und am besten in den Triggermodus "normal" schalten.

Langsam, meinOszi ist alt... sehr alt...
So viele Knöpfe hat es gar nicht und ausser der Zeitbasis und der 
Spannungseinstellung funktioniert auch nicht viel. Die meisten Knöpfe 
sind so fest, dass sich eher der Knopf an sich, nicht das Poti dreht. 
Aber bisher habe ich immer alles erkennen können.
Aber selbst wenn die Zeitbasis nicht stimmt, und auch das Triggern nicht 
funktioniert. ich müsste ja immerhin ein unsauberes Signal sehen, was 
ich sehe ist aber ganz klar. Nicht (aussergewöhnlich) unscharf, nix.

> Es gibt m.W. nur zwei sinnvolle Möglichkeiten, eine Tastaturmatrix durch
> einem Controller anzusteuern (s. Bild):
>
> ...

Dachte ich eigentlich auch.

> Das sieht nach Variante b aus. Allerdings müssten die 0V durch kurze
> 3V-Pulse unterbrochen werden.

ich seh leider nix. Aber ich glabe es ist schon eher Variante a.
Nur denke ich sind die FETs ständig an und in dem moment, wenn eine 
Taste gedrückt wird, schaltet er in regelmäigen aber verdammt kurzen 
Momenten Die FETs nacheinander kurz aus. kann das sein?

> Ich nehme an, du hast den 10k-Widerstand gegen GND gelegt. Das sieht
> wiederum eher nach Variante a aus: ...
Ganz genau.

Tamme D. wrote:
> Beitrag "Mein verrücktes Projekt ist fertig :)"
hab ich auch schon gefunden, aber die möglichkeit ist die allerletzte, 
die ich nehmen werde. Aber genau dafür ist es ;-)

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.