Hallo,
ich habe eine Tastatur made in GDR auf dem Trödelmarkt erstanden und
würde diese gern mit einem USB-Anschluss ausrüsten. Es handelt sich um
das KC85 Keyboard, wunderbar dokumentiert unter
http://www.mpm-kc85.de/dokupack/kc852_keyboard.pdf
Die Tastatur verfügt über eine zweiadrige Leitung, die gleichzeitig
Stromversorgung und Signalleitung ist. Sie soll laut Handbuch über einen
270 Ohm-Widerstand mit 12V Spannung versorgt werden. Das Signal wird
pulsabstandsmoduliert.
Was bedeutet das, wie hoch sind hier die Logikpegel?
Mir ist nicht ganz klar, wie ich das am besten realisiere. Ich hatte
gedacht, aus den 5V des USB-Anschluss per Step-Up-Wandler die benötigten
12V zu erzeugen und das Signal mit einem Arduino o.ä. auszuwerten. Würde
es wie folgt funktionieren?
- StepUp-Wandler: Plus über 270 Ohm an Tastaturplus, Minus an
Tastaturminus
- Pullup 10k an Arduino Pin
- Vom Arduino Pin über 150 Ohm Strombegrenzungswiderstand und
Zener-Diode 5.1V zur Spannungsbegrenzung an das Tastaturplus
Vielen Dank für alle Hinweise
Gregor
Gregor N. schrieb:> wie hoch sind hier die Logikpegel
Es gibt keine Logikpegel, da die Übertragung durch Modulation der
Stromaufnahme stattfindet.
Gregor N. schrieb:> wie ich das am besten realisiere
U807 entfernen und durch Controller mit USB (z.B. ATMega32U4) ersetzen?
Merkwürdige Idee, aber was solls.
Ich würde die Auswerteschaltung aus Bild 3 aufbauen und das entstehende
Signal in einem kleinen V-USB µC auswerten und als USB-HID ausgeben.
Lösungsvorschlag, wenn du die Tatstatur nicht „verbasteln“ möchtest.
Der U807 (SAB3021) ist ein IR Fernbedienungssender. Der dazu passen
zugehörige Decoder ist der U806 (SAB3022B). Besorge dir diesen Decoder
und klemme ihn an eine passende Schaltung (meinetwegen Arduino).
Gregor N. schrieb:> Die Tastatur verfügt über eine zweiadrige Leitung, die gleichzeitig> Stromversorgung und Signalleitung ist. Sie soll laut Handbuch über einen> 270 Ohm-Widerstand mit 12V Spannung versorgt werden. Das Signal wird> pulsabstandsmoduliert.>> Was bedeutet das, wie hoch sind hier die Logikpegel?
Das bedeutet (wie du aus dem Schaltplan entnehmen kannst), daß diese
Tastatur auf der kombinierten Daten- und Versorgungsleitung kurze
Low-Impuls-Bursts erzeugt. Sonderlich groß sind die wohl nicht, denn da
wird lediglich ein 2k2 Widerstand von 9.1 Volt gegen GND gezogen.
Wahrscheinlich wäre es weitaus besser gewesen, die Anschlußleitung
dreiadrig zu machen: GND+VCC+Signal, um sich den Zirkus mit dem
Komparator am µC zu ersparen. Aber das läßt sich ja nachholen.
Und eben die Zeit von einem Burst zum nächsten ist, was du messen mußt.
Für eine Null sind das etwa 5 ms, für eine Eins etwa 7 ms und als
Endekennzeichen so etwa 14 ms oder mehr.
Ob du da mit 5 Volt auskommst, mußt du ausprobieren. Intern arbeitet das
Ding mit maximal 9.1 Volt, vielleicht funktioniert der Chip auch noch
bei 5 Volt.
Ich hatte mal von Pollin zusammen mit anderen Fernbedienungen auch sowas
dabei. Im Vergleich zu anderen FB sind das ziemliche Exoten. Im
Gegensatz zum Rest der Welt brauchen diese FB gleich 4 Stück AAA als
Versorgung.
W.S.
Gregor N. schrieb:> Mir ist nicht ganz klar, wie ich das am besten realisiere. Ich hatte> gedacht, aus den 5V des USB-Anschluss per Step-Up-Wandler die benötigten> 12V zu erzeugen und das Signal mit einem Arduino o.ä. auszuwerten. Würde> es wie folgt funktionieren?>> - StepUp-Wandler: Plus über 270 Ohm an Tastaturplus, Minus an> Tastaturminus> - Pullup 10k an Arduino Pin> - Vom Arduino Pin über 150 Ohm Strombegrenzungswiderstand und> Zener-Diode 5.1V zur Spannungsbegrenzung an das Tastaturplus
Wahrscheinlich nicht.
Warum nimmst du nicht einfach die Originalschaltung des "Empfängers" aus
der von dir selbst verlinkten Beschreibung, bzw. den relevanten Teil
davon? D.h.: Bild 3 auf Seite 11. Der relevante Teil ist: R1..R4 und C1.
Das ganze Gedöns danach ersetzt du einfach durch einen AVR8 mit
Analogkomparator (also nahezu jeden). Das, was in der Originalschaltung
Pin1 und 2 des B2761 darstellt, macht am AVR8 AIN1 und AIN0.
Allenfalls könnte man als Übervorsichtiger noch eine zusätzliche
Schottky-Diode zwischen dem Verbindungspunkt von C1/R4 und Masse des AVR
vorsehen. Nötig ist das aber aller Wahrscheinlichkeit nach nicht.
Der Rest ist reine Software...
c-hater schrieb:> Allenfalls könnte man als Übervorsichtiger noch eine zusätzliche> Schottky-Diode zwischen dem Verbindungspunkt von C1/R4 und Masse des AVR> vorsehen. Nötig ist das aber aller Wahrscheinlichkeit nach nicht.
Mist, ich sehe gerade, dass ich da ein Detail übersehen habe: der
Spannungsteiler R2/R3 liegt an -5V, nicht an +5V. Also müßte man die
Schaltung für den AVR-AC doch ein wenig abwandeln.
c-hater schrieb:> Mist, ich sehe gerade, dass ich da ein Detail übersehen habe: der> Spannungsteiler R2/R3 liegt an -5V, nicht an +5V. Also müßte man die> Schaltung für den AVR-AC doch ein wenig abwandeln.
Wobei das auch kein Problem sein muss.
Als OPV könnte man einen LM393 nehmen, die beiden Eingänge auf U/2
vorspannen.
Das wäre auch mit dem B2761 so gegangen, aber wer weiss, wofür die 2.
Hälfte von dem ursprünglich genutzt wurde.
Die -5V waren im KC sowieso vorhanden, für die alten 16k-DRAMs also
wurden sie hierfür gleich mitgenutzt.
Sempfdazugeber schrieb:> Der Bedienkomfort einer KC85-2/3 Tastatur ist etwa der eines> chinesischen Bluetoothminikeyboards.
Das ist leider nur zu wahr. Die Tasten klemmen gerne und/oder geben
schlechten Kontakt. Und zu schnell darf man auch nicht tippen.
Der einzige Grund, warum man eine solche Tastatur verwenden wollen
würde, wäre der Betrieb eines KC85 selber.
Joe G. schrieb:> Der U807 (SAB3021) ist ein IR Fernbedienungssender. Der dazu passen> zugehörige Decoder ist der U806 (SAB3022B). Besorge dir diesen Decoder
Wohl nicht. Zum einen dürfte der Decoder mittlerweile absolut unkaufbar
sein (oder wenn dann zu Wucherpreisen). Das simple Pulsabstandsprotokoll
kriegt man mit jedem µC der Welt in Software ganz locker nebenbei
decodiert.
Es sind immer 7 Bursts von 36kHz mit 152µs Länge, die Länge zwischen
zwei Bursts codiert entweder eine 0 (5.12ms) oder eine 1 (7.14ms). Das
erste Bit ist immer 0 (das Startbit). Bei andauerndem Drücken einer
Taste werden Frames mit 14.34ms Abstand gesendet, sonst ist der Abstand
mindestens 19.46ms. Das alles unter der Maßgabe, daß der U807 mit 4MHz
läuft.
Vielen Dank für all die Hinweise. Ich fasse die Hardwareoptionen mal für
mich zusammen:
1. Hauruckmethode:
Schaltung inkl. Controller in der Tastatur komplett durch
Microcontroller mit USB oder V-USB und um die 16 In/Out-Pins bzw.
Kombination mit Schieberegister ersetzen. Maximalinvasiv aber einfach zu
verstehen, vermutlich relativ schnell umzusetzen und passt im besten
Fall in die Tastatur rein.
2. Nachbaumethode:
Auswertungsschaltung nachbauen (Bild 3), entweder nur bis ran an den
B2761 oder bis direkt dahinter oder bis zum Ende. Das ist wegen der
negativen Spannungen nicht ganz trivial, könnte aber durch "vorspannen"
(= "virtuelle Masse"?) erreicht werden. Die 12V müssten auch noch
irgendwie aus 5V USB erzeugt werden (Step-Up-Wandler). Wenn ich das
richtig verstehe, könnten aber auch 9V reichen, weil die Tastatur
ohnehin intern durch Z-Diode auf 9 Volt runtergeht.
Statt B2761 könnte auch ein LM393 verwendet werden. Egal wie...es ist
immer irgendeine Art Schaltung mit Operationsverstärker. Ich habe noch
keine Ahnung, wie genau man das aufbaut, werde aber in den nächsten
Tagen mal einen Vorschlag ersinnen. Das könnte relativ groß werden und
passt dann vielleicht nicht mehr in die Tastatur.
3. Nachkaufmethode:
Einen passenden Dekoderbaustein besorgen. Das könnte teuer werden. Und
ich wüsste noch nicht, wie der dann beschaltet wird.
4. Naivmethode:
Warum eigentlich muss ein Operationsverstärker her? Weil die Bursts
intern mit runterziehen auf Ground über 2,2kOhm erzeugt werden und das
zu schwach ist? Ich hatte zwischendurch die Hoffnung, dass sich
irgendeine Art Spannungsteiler aufbauen lässt, der direkt an einen Pin
vom Mikrocontroller geht, ggf. noch mit Z-Diode gegen Überspannung
gesichert. Aber das scheint nicht zu funktionieren?
5. Hauwegmethode
Tastatur wegwerfen, denn sie ist nicht ergonomisch. Das wäre schade,
denn ich zitiere aus dem Handbuch (S.4):
> Bei der Entwicklung des Kleincomputers KC 85 durch den VEB> Mikroelektronik "Wilhelm Pieck" Mühlhausen wurde ein Hauptaugenmerk> auf die Entwicklung einer ergonomisch und ökonomisch optimalen Tastatur> gelegt. Als ergonomisch günstig haben sich vom Computer abgesetzte,> flache und leicht bewegliche Tastaturen erwiesen.
Was kann daran falsch sein?
Ich tendiere zu einer abgewandelten Nachbaumethode (Option 2), d.h.
möglichst nur die vorderen Teile von Bild 3 nachbauen und als
Operationsverstärker LM393 verwenden. Denn ich will gern lernen, wie so
etwas funktioniert - auch für zukünftige Projekte. Softwaremäßig ist mir
übrigens einigermaßen klar, wie das funktionieren kann, das bekomme ich
hin.
Über konkrete, möglichst einfache Schaltungsvorschläge würde ich mich
sehr freuen, versuche aber selbst in den nächsten Tagen einmal eine
Skizze.
Nochmals vielen Dank für die bisherigen und die zukünftigen Ideen und
Hinweise.
Sempfdazugeber schrieb:> Der Bedienkomfort einer KC85-2/3 Tastatur ist etwa der eines> chinesischen Bluetoothminikeyboards.> Ich würde sowas in die nächste Tonne werfen...
Zumindest für einige Ossis ist auch das ein Stück Technik-Geschichte.
Ein Stück das ins Museum gehört (und zwar unverbastelt) und nicht in die
Tonne.
Selbst wenn es im Museum nur als gutes Beispiel für "martialisches
Minimaldesign ohne Benutzerkomfort" ausgestellt wird, ist es besser als
in Afrika als Stück tiefschwarz qualmendes Stück "Rohstoff" zu
verbrennen.
Gregor N. schrieb:> Warum eigentlich muss ein Operationsverstärker her?
Weil einerseits die Unterschiede der Logikpegel ziemlich gering sind,
andererseits aber auch ein gewisser Mindesthub überschritten werden
soll, damit es überhaupt als Änderung des Logikpegels zählt.
Das Problem ist halt das Grundkonzept, die Logikpegel durch Modulation
der Stromaufnahme einer digitalen Schaltung zu übertragen.
Aber was hast du gegen einen OV? Wie gesagt: jeder AVR8 enthält einen in
Form des Analogkomparators und du willst doch letztlich sowieso einen
AVR8 benutzen. Das passt doch gut.
Die Originalschaltung brauchst du dafür bloß minimal abwandeln. Etwa so:
Gregor N. schrieb:> ich habe eine Tastatur made in GDR auf dem Trödelmarkt erstanden und> würde diese gern mit einem USB-Anschluss ausrüsten.
Welche denn genau: Die Flache
(http://www.mpm-kc85.de/html/D001BasisDevise.htm#Tastatur) oder die
Dicke (http://www.mpm-kc85.de/html/D005Tastatur.htm)?
Axel S. schrieb:>> Der Bedienkomfort einer KC85-2/3 Tastatur ist etwa der eines>> chinesischen Bluetoothminikeyboards.>> Das ist leider nur zu wahr. Die Tasten klemmen gerne und/oder geben> schlechten Kontakt. Und zu schnell darf man auch nicht tippen.
Für die flache Tastatur stimmt das. Aber mit der D005 kann man auch
heute noch komfortabel arbeiten.
Allerdings sieht man heutzutage eher den umgekehrten Weg: Da wird eine
PS/2-Tastatur mit Protokollwandler am KC85 betrieben.
P.S.: Die Schaltungsvariante mit dem Analogkomperator am ATtiny/ATmega
hätte ich auch gewählt.
Mike B. schrieb:> Sempfdazugeber schrieb:>> Der Bedienkomfort einer KC85-2/3 Tastatur ist etwa der eines>> chinesischen Bluetoothminikeyboards.>> Ich würde sowas in die nächste Tonne werfen...>> Zumindest für einige Ossis ist auch das ein Stück Technik-Geschichte.> Ein Stück das ins Museum gehört (und zwar unverbastelt) und nicht in die> Tonne.
Man darf auch nicht vergessen, daß diese Tastatur Mitte der 80er in der
DDR-Mangelwirtschaft für einen Heimcomputer entworfen wurde. Das heißt,
sie mußte einfach und billig herzustellen sein, ohne hochwertige oder
knappe Materialien zu verwenden. Unter diesen Voraussetzungen ist sie
den Ingenieuren m.E. gut gelungen. Und wer mal mit der
Flachfolientastatur eines Z1013 "gearbeitet" hat, wird sie als
reglerecht komfortabel empfinden.
Axel S. schrieb:> Der einzige Grund, warum man eine solche Tastatur verwenden wollen> würde, wäre der Betrieb eines KC85 selber.
Dann würde man sie einfach anstecken und müßte keinen USB-Zauber
dranbasteln. Ich vermute, der TE will sie als Eingabegerät für den
KC-Emulator am PC benutzen.
Axel S. schrieb:> Das ist leider nur zu wahr. Die Tasten klemmen gerne und/oder geben> schlechten Kontakt. Und zu schnell darf man auch nicht tippen.
Das ist auch meine Erinnerung, die Tastatur taugte nichts. Sie war nur
solange gut, solange es nichts besseres gab.
Außerdem hatte sie durch den FB-IC eine extrem lange Verzögerungszeit.
Reaktionsspiele ließen sich damit fast nicht spielen. Man mußte die
Tasten schon drücken, lange bevor der Ball ins Tor rollte.
@Gregor N.:
Sieh Dich mal im Forum von robotrontechnik.de um, Du findest dort
verschiedene Lösungen PS/2 und USB Tastaturen mit dem KC85 zu koppeln um
die teilweise mittlerweile defekten oder aber nur die aus heutiger Sicht
unergonomischen Originaltastaturen zu ersetzen. Ich habe auch einen KC85
Turm da stehen, den mir ein Bastelfreund mal als Kompensation für eine
P8000 hingestellt hat, ich habe die Originaltastatur und eine kleine POS
-PS/2 Tastatur mit Attiny85 im DIN-Stecker. Die Originale Tastatur hat
den Vorteil das sie eben genau das macht was dran steht...das ist aber
bereits Alles.
Laß die Tastatur einem Besitzer eines KC85 (Jemandem Anderen als mir)
zukommen und verwirf die Idee das Teil an einen PC zu prömpeln, Du wirst
damit nicht froh. Ist wirklich nur ein gut gemeinter Rat.
Gruß,
Holm
Holm T. schrieb:> Laß die Tastatur einem Besitzer eines KC85 (Jemandem Anderen als mir)> zukommen und verwirf die Idee das Teil an einen PC zu prömpeln, Du wirst> damit nicht froh. Ist wirklich nur ein gut gemeinter Rat.
Das würde das Beste sein!
MfG
Tim schrieb:> Gregor N. schrieb:> Welche denn genau: Die Flache> (http://www.mpm-kc85.de/html/D001BasisDevise.htm#Tastatur) oder die> Dicke (http://www.mpm-kc85.de/html/D005Tastatur.htm)?
Die flache in schwarz mit roten Tasten in der obersten Reihe. Also die
ältere, mit Charme, aber ohne Bedienkomfort.
> Allerdings sieht man heutzutage eher den umgekehrten Weg: Da wird eine> PS/2-Tastatur mit Protokollwandler am KC85 betrieben.
Ja, das habe ich im Netz auch mehrfach gefunden. Das ergibt für mich
wiederum keinen Sinn - wenn ich ernsthaft einen Computer brauche, dann
nehme ich lieber ein schnelles, vielseitiges, ergonomisches, leises,
aktuelles Gerät. So unterschiedlich können Menschen sein.
Al.Kn. schrieb:>> Laß die Tastatur einem Besitzer eines KC85 (Jemandem Anderen als mir)>> zukommen und verwirf die Idee das Teil an einen PC zu prömpeln, Du wirst>> damit nicht froh. Ist wirklich nur ein gut gemeinter Rat.>> Das würde das Beste sein!
Jetzt mal ernsthaft: die Frage ist nicht, wie ich die Tastatur loswerde,
sondern wie ich sie per USB anschließe. Warum? Mir reicht als Grund erst
einmal, dass ich dabei etwas lerne, zum Beispiel über Elektronik und
über das aktuelle und historische Verhältnis Mensch-Computer. Vielleicht
gibt das auch anderen Anlass, darüber nachzudenken, wenn man eine E-Mail
mit der Tastatur einer vergangenen Ära schreiben kann.
Außerdem finde ich den Kontrast reizvoll...letztendlich werde ich weder
einen orginalen KC noch einen Emulator damit betreiben, sondern das für
einen F-Tsch-Chq-&-Wumm-Apparat verwenden oder als Zusatztastatur mit
Makros für Programmieren, Spiele, Multimedia belegen oder als Twitter
oder E-Mailmaschine.
Wozu wurde die @-Taste eigentlich vorrangig eingesetzt? Für welche
Programmiersprache oder was auch immer war das gut? Weiß jemand, wie die
den Weg auf die Belegung gefunden hat oder wer damals dabei gewesen ist?
Interessant ist auch, dass es eine Negatortaste gibt, aber keine Tilde.
c-hater schrieb:> Die Originalschaltung brauchst du dafür bloß minimal abwandeln. Etwa so:>>
1
> +12V +5V
2
> o---- -------*------o
3
> | | |
4
> | | -
5
> - - | |22k
6
> | | 270 | |22k | |
7
> | | | | -
8
> - - | AIN0
9
> | | *------o
10
> | | || | | AIN1
11
> o----*----| ||----*--------------o
12
> | || | |
13
> TAS 4.7µ - -
14
> | |22k | |18k GND
15
> o---- | | | | --o
16
> | - - |
17
> | | | |
18
> --- --- --- ---
19
>
Wow, danke, das sieht richtig gut aus. Ich versuche noch zu verstehen,
wie das funktioniert. Ist folgende Interpretation einigermaßen sinnvoll?
An AIN0 liegt durch den Spannungsteiler aus 22k und 18k normalerweise
2,25V an. An AIN1 liegt durch den Spannungsteiler aus 22k und 22k
normalerweise 2,5V an. Das heißt Spannung an AIN1 ist 0,25 V größer als
AIN0. Die Tastatur zieht AIN1 auf Masse, dadurch wird AIN1 kurzzeitig
bis zu 2,25V kleiner als AIN0. Das dreht den Logikpegel um.
Bitte entschuldige meine Naivität, ich lerne noch. Woher weiß ich, wie
die Spannungsteiler dimensioniert werden? Und wozu ist eigentlich der
4.7µ-Kondensator da? Glättet der nicht die bursts weg?
[Anmerkung zum Edit: habe meine Interpretation noch einmal geändert]
Gregor N. schrieb:> Jetzt mal ernsthaft: die Frage ist nicht, wie ich die Tastatur loswerde,> sondern wie ich sie per USB anschließe.
Wenn du die Tastatur original belässt und Sie nur an USB adaptieren
willst ist doch o.k.
Mir geht es darum dieses Teil nicht als Schrott zu sehen, wie es sehr
viele machen!
Na dann:
-eine Buchse für den Klinkenstecker
-ein 5 zu 12V DCDC Wandler
-ein 270Ω R und ein 4,7µ C und evtl. eine 3V3 Z Diode
-ein BluePill Board
Der Rest ist Software.
Gregor N. schrieb:> An AIN0 liegt durch den Spannungsteiler aus 22k und 18k normalerweise> 2,25V an. An AIN1 liegt durch den Spannungsteiler aus 22k und 22k> normalerweise 2,5V an. Das heißt Spannung an AIN1 ist 0,25 V größer als> AIN0. Die Tastatur zieht AIN1 auf Masse, dadurch wird AIN1 kurzzeitig> bis zu 2,25V kleiner als AIN0. Das dreht den Logikpegel um.
So isses.
> Woher weiß ich, wie> die Spannungsteiler dimensioniert werden?
Die Spannungsverhältnisse entstammen der Originalschaltung, die
absoluten Werte des Spannungsteilers hinter dem Kondensator ergaben sich
dadurch, dass ich versucht habe, die Zeitkonstante des Diffenziergliedes
des Originals beizubehalten (in der gut begründeten Annahme, dass die
Entwickler sich damals etwas dabei gedacht haben). Um das zu verstehen,
muss man wissen: AC-mäßig verhalten sich die beiden Widerstände dieses
Spannungsteilers wie eine Parallelschaltung (weil sie über + und - der
5V-Versorgung praktisch kurzgeschlossen sind), haben also zusammen
11kOhm (10kOhm waren's im Original).
Die Werte des anderen Spannungsteilers sind dann wiederum so gewählt,
dass möglichst schon in der Schaltung benutzte Widerstandswerte
verwendet werden, sich aber in etwa die Spannungsverhältnisse der
Originalschaltung ergeben. D.h.: Referenz gut 0,2V unter "Neutrallage"
des Signals.
> Und wozu ist eigentlich der> 4.7µ-Kondensator da? Glättet der nicht die bursts weg?
Genau. Der ist der eigentliche Trick der Originalschaltung. Primär hält
er die DC-Komponente des zu messenden Signals (immer so ungefähr +12V)
vom Messeingang fern. Sekundär bildet er zusammen mit dem 10k-Widerstand
der Originalschaltung eine Zeitkonstante, die als Tiefpass (wenn auch
nur erster Ordnung) wirkt. Damit werden die für Digitalschaltungen
typischen kurzen Spikes mit der Betriebsfrequenz etwas weggedämpft.
Insgesamt erleichtert es also dieser Tiefpass, das Nutzsignal (also die
gewollte Modulation der Stromaufnahme) von der unvermeidlichen
Modulation durch den normalen Betrieb des U807 zu trennen.
Gregor N. schrieb:> 1. Hauruckmethode:
Nein, das hast du nicht richtig verstanden. Die 1. Methode wäre, das
zweipolige Anschlußkabel gegen ein dreipoliges Kabel zu ersetzen, wobei
die dritte Leitung an die Ausgänge der zwei UND-Gatter gelegt wird -
allenfalls über einen einfachen Spannungsteiler. Sowas geht mit einem
einfachen Stereo-Kabel.
Damit hätte man schon mal einen µC-gerechten Spannungspegel des
auszuwertenden Signals. Den Rest kann dann tatsächlich der µC per
Software erledigen.
W.S.
W.S. schrieb:> Nein, das hast du nicht richtig verstanden. Die 1. Methode wäre, das> zweipolige Anschlußkabel gegen ein dreipoliges Kabel zu ersetzen, wobei> die dritte Leitung an die Ausgänge der zwei UND-Gatter gelegt wird -> allenfalls über einen einfachen Spannungsteiler. Sowas geht mit einem> einfachen Stereo-Kabel.
Diese Möglichkeit hatte ich tatsächlich nicht richtig verstanden, ich
hatte mich mit Option 1 auf folgenden Kommentar bezogen:
Mario M. schrieb:> U807 entfernen und durch Controller mit USB (z.B. ATMega32U4) ersetzen?
Tatsächlich habe ich gerade die vorgeschlagene Schaltung von c-hater
nachgebaut, an den Komparator von einem einen Arduino Uno (ATmega 328P)
gehängt, per Zeitmessung zwischen Interrupts das Signal
ausgewertet...und es funktioniert! Unglaublich, ganz herzlichen Dank bis
hierhin!
Ok, es funktioniert fast. Das Signal ist nicht sauber. Es funktioniert
gut, wenn ich die Tasten gedrückt halte. Bei einfachen Anschlägen
entsteht aber meistens Datenmüll. Mal längere, mal sehr kurze
Impulsabstände gemischt mit den im Handbuch beschriebenen Abständen.
Ich kann versuchen, das per Software zu optimieren. Aber vielleicht
liegt das auch an der Schaltung?
Und einige Tasten gehen leider gar nicht, z.B. die Entertaste.
Gregor N. schrieb:> Es funktioniert> gut, wenn ich die Tasten gedrückt halte.
Also dann, wenn "das System" eingeschwungen ist.
> Bei einfachen Anschlägen> entsteht aber meistens Datenmüll. Mal längere, mal sehr kurze> Impulsabstände gemischt mit den im Handbuch beschriebenen Abständen.> Ich kann versuchen, das per Software zu optimieren. Aber vielleicht> liegt das auch an der Schaltung?
Da hilft ein Oszilloskop, um sich das resultierende Signal genauer
anzuschauen.
Im Handbuch steht ja was von 5 und 7 ms für '0' und '1'.
Da würde ich die Unterscheidung bei 6 ms machen.
Testweise kann man auch den Koppel-Kondensator mal auf 2,2µF
verkleinern.
> Und einige Tasten gehen leider gar nicht, z.B. die Entertaste.http://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=13059
Tim schrieb:> Da hilft ein Oszilloskop, um sich das resultierende Signal genauer> anzuschauen.
Ich habe leider kein Oszilloskop, das steht noch ganz oben auf meiner
Wunschliste. Mit dem Arduino kann ich aber die Mikrosekunden zwischen
den Impulsen messen, das sieht zum Beispiel bei Taste "m" so aus:
1
755275527552755253965396755219444
2
62860648316216216216224208
3
216216216216216216216240
4
248228220216216224208
Die erste Zeile entspricht 1111001, beendet durch einen
Doppelwortabstand von ca. 19,4ms. Das Bit ganz links ist das Bit für die
Shift-Taste (Startbit). Den Rest muss man umdrehen, dann entspricht es
der IBUS-Code-Nr. im Handbuch. Sprich: Startbit == 1, IBUS-Nummer =
100111 = 39.
Danach kommt Müll.
Manchmal fehlt aber auch das erste Bit, zum Beispiel bei der Leertaste:
1
75487552539253925392754819564
2
32021660380
3
312220220212216216216216
4
216220216216236244216220
5
216216216216
Als erstes Bit hätte hier laut Handbuch eine 0 stehen müssen.
Hält man die Leertaste gedrückt, wird es eindeutiger:
1
75447548539253885392754815092
2
754875487544539253925388754415096
3
754875447548539253885392754415096
4
754875447548538853925388754815096
5
754475447548539253885392754815092
6
75487544754822892
7
32068412
8
296216216216224208220216
9
216216216216220252236204
10
216220216316
In der ersten Zeile fehlt wieder das erste Bit, eine 0.
Danach wird vier Mal (bis man loslässt) ein vollständiges Wort gesendet,
allerdings mit dem falschen Startbit, aber vielleicht ist da ja auch ein
Fehler im Handbuch. Danach kommt wieder Müll.
Bei anderen Tasten kommt das erste Bit mal mit, mal nicht, je nach
Laune. Ich werde mal probieren, den Elko zu tauschen.
Gregor N. schrieb:> Danach kommt Müll.
Sollte eigentlich nicht sein, wenn auf der Leitung tatsächlich Ruhe ist.
Vielleicht statt der Widerstände an Ain0 ein Poti (ca. 47k) einbauen. Am
Mittelabgriff kommt Ain0 und an die Enden jeweils +5V und GND.
Dann solange von der Mittelstellung wegdrehen (ggf. beide Richtungen
probieren), bis das "Rauschen" aufhört, aber der Empfang von Bits noch
läuft...
> Ich werde mal probieren, den Elko zu tauschen.
Ja, sieht so aus, als wenn der das erste Bit verschluckt...
Ich habe verschiedenes versucht: den Elko gegen 2,2µF getauscht, die
beiden Spannungsteiler mit Potis gebaut (hatte keine 47k, habe 22k und
100k probiert). Ja, das Signal lässt sich verändern. Aber sauber wird es
nicht und ich kann nicht sagen, dass man es dadurch verbessern kann.
Ich vermute fast, dass das im Original auch so war und per Software
abgefangen wurde. Mit mehrfachem Debouncing per Software (und
Invertierung des Startbits) lässt sich die Tastatur zum Schreiben
benutzen. Das fühlt sich extrem lahm an, aber vielleicht war das einfach
nicht anders?
Zur Schaltung habe ich noch eine Frage: dieser Koppelkondensator trennt
die beiden Stromkreise mit ihren unterschiedlichen
Spannungsversorgungen, so dass sie sich gegenseitig nicht (zer)stören
können, richtig? Ist das eine Technik, die für beliebige Messungen
verwendet werden kann? Also zum Beispiel, um analoge Audiosignale
mitzuschneiden oder um das digitale Signal in einer Heizungsanlage
(Bus-System) mitzulesen?
Ich werde noch etwas an der Software optimieren. Und mir ein Oszilloskop
zulegen. Eigentlich ein anderes Thema aber vielleicht habt ihr eine ganz
kurze Einschätzung zu folgendem Gerät: Rigol DS1054Z. Ist das zu teuer
für den Einstieg?
Gregor N. schrieb:> Ich habe leider kein Oszilloskop, das steht noch ganz oben auf meiner> Wunschliste. Mit dem Arduino kann ich aber die Mikrosekunden zwischen> den Impulsen messen, das sieht zum Beispiel bei Taste "m" so aus:>>
1
>755275527552755253965396755219444
2
>62860648316216216216224208
3
>216216216216216216216240
4
>248228220216216224208
5
>
Das ist doch schon fast so gut wie ein Oszi.
Was das Rauschen betrifft: Rechne einfach mal aus, welcher Frequenz dein
Messwert "216" entspricht. Dann überlege, wo diese Frequenz herstammen
kann. Im Prinzip sehe ich nur zwei Möglichkeiten, entweder ist es die
Betriebsfrequenz des U807 oder Ripple auf der 12V-Spannung
(Schaltwandler).
Was auch immer: der Wert ist weit weg von den Werten des Nutzsignals und
wesentlich kürzer, das Zeug kann also sehr leicht und ohne Nachteile für
die Benutzbarkeit der Sache per Software ausgefiltert werden. Dass das
nötig sein würde, ergibt sich schon aus der Originalschaltung. Da ist
nämlich auch noch was zwischen dem OV und der eigentlichen
Rechentechnik, dessen Funktion musst du natürlich in Software
nachbilden...
> Manchmal fehlt aber auch das erste Bit, zum Beispiel bei der Leertaste:
Bei dieser Sache tippe ich mal ganz stark auf einen Fehler in deiner
Auswertesoftware und wage folgende Prophezeiung: nachdem du o.g. Filter
implementiert hast, wirst du (fast) durchgängig das Phänomen haben, dass
das Startbit beim ersten Tastendruck fehlt und für die restlichen Fälle
wirst du einen scheinbar willkürlichen Messwert haben...
Die Störungen werden durch das Umladen des Elkos entstehen. Auch nimmt
man statt eines Komparators eher einen Schmitt-Trigger.
Ich habe mal Pulse mit einem 74HC14 regeneriert. Der Spannungsteiler
legt den Eingang auf die Mitte zwischen den Schwellen. Der
Koppelkondensator wird so klein gewählt, daß er aus den Flanken nur
kurzen Nadeln macht.
c-hater schrieb:> Da ist> nämlich auch noch was zwischen dem OV und der eigentlichen> Rechentechnik, dessen Funktion musst du natürlich in Software> nachbilden...
Ich verstehe leider noch nicht, was der Rest der Schaltung macht...auch
weil ich über die Bauteilnummern nicht so recht was finde. Aber per
Software funktioniert es mittlerweile ganz gut und ich bin kurz davor,
mir ein Oszilloskop zu kaufen, um dem Signal weiter auf den Grund zu
gehen.
> wage folgende Prophezeiung: nachdem du o.g. Filter> implementiert hast, wirst du (fast) durchgängig das Phänomen haben, dass> das Startbit beim ersten Tastendruck fehlt und für die restlichen Fälle> wirst du einen scheinbar willkürlichen Messwert haben...
Interessante Prognose...aber warum? Die Schaltung (das meinst Du mit
Filter, nehme ich an) sollte doch im Orginal funktioniert haben?
Die Auswerteroutine ist tatsächlich noch nicht so ganz gut. Anscheinend
verbraucht die Ausgabe auf dem Serial Monitor hin und wieder trotz hoher
Baudrate so viel Zeit, dass Impulse übersprungen werden...was ich erst
jetzt feststelle. Das hat bislang nicht gestört, da es eine Art
unfreiwilliges Debouncing war.
Gregor N. schrieb:> Ich verstehe leider noch nicht, was der Rest der Schaltung macht...auch> weil ich über die Bauteilnummern nicht so recht was finde.
Das ist im Kern ein Monoflop. Also ein digitaler Tiefpass einfachster
denkbarer Bauart. Der macht genau das, was ich dir empfohlen habe:
einfach stumpf alles ausfiltern, was wesentlich kürzer ist, als das, was
du erwartest. In Software kann man das eleganter umsetzen, als es diese
primitive Schaltung zu leisten vermag, denn die ist
"polaritäts-sensitiv". In Software kannst du dasselbe Verhalten leicht
auch unipolar herstellen. Eine Hardwareschaltung dafür ist auch möglich,
wäre aber deutlich aufwendiger als die Originalvorlage. Deswegen wurde
wohl damals darauf verzichtet, auch deshalb, weil es schlicht nicht
nötig war. In Software kann man sich diesen Luxus aber locker leisten,
denn er kostet nicht einen Takt Rechenzeit mehr als die
"polaritäts-sensitive" Variante. Jedenfalls nicht auf einem AVR8...
> Interessante Prognose...aber warum?
Weil ich ein erfahrener Programmierer bin und deswegen wahrscheinlich
schon 99,9% aller denkbaren blöden Fehler selber schon mindestens einmal
gemacht (und behoben) habe. Z.B. eben auch den, den du sehr
wahrscheinlich gemacht hast (weil er das aufgezeichnete Verhalten
perfekt erklären könnte...)
c-hater schrieb:> Z.B. eben auch den, den du sehr> wahrscheinlich gemacht hast (weil er das aufgezeichnete Verhalten> perfekt erklären könnte...)
Na dann hier mal mein aktueller Code. Ich habe lediglich ein paar
debug-Definitionen entfernt, unübersichtlich ist es trotzdem noch.
Der Filter ist direkt unterhalb des Kommentars "Frequenzen ausfiltern"
zu finden. Ich hatte diese Bedingung erst nicht drin, sondern nur die
untere Grenze über TIME_ZERO ausgewertet. So ist es aber besser.
Wo hat oder hätte sich dort ein Fehler eingeschlichen?
1
/*
2
3
KC85 Keyboard
4
5
*/
6
7
// Times
8
#define TIME_MINIMUM 1000
9
#define TIME_ZERO 4500 //tD0 = 5 tu = 5,12 ms Pulsabstand für lohgische Null
10
#define TIME_ONE 6500 //tD1 = 7 tu = 7,168 ms Pulsabstand für lohgische Eins
11
#define TIME_WORD 13500 //tDW = 14 tu = 14,336 ms Wortabstand
12
#define TIME_DOUBLEWORD 18500 //tDS = 13 tu = 19,456 ms Doppelwortabstand
Ich kenne diese Tastatur nicht direkt.
Aber ich kann mir nicht vorstellen, dass man da so ein kompliziertes
Programm braucht.
Ich würde mir da erst einmal den Eingang am KC85 ansehen.
Speicherplatz war damals sehr knapp.
michael_ schrieb:> Ich kenne diese Tastatur nicht direkt.> Aber ich kann mir nicht vorstellen, dass man da so ein kompliziertes> Programm braucht.
Das sieht nur kompliziert aus, weil so viel Output-Code dazwischen
liegt. Nimm alles mit "Serial" und was so dazu gehört raus. Dann ist es
immer noch nicht besonders elegant, aber es bleibt nur noch übrig:
1
/*
2
3
KC85 Keyboard
4
5
*/
6
7
// Times
8
#define TIME_MINIMUM 1000
9
#define TIME_ZERO 4500 //tD0 = 5 tu = 5,12 ms Pulsabstand für lohgische Null
10
#define TIME_ONE 6500 //tD1 = 7 tu = 7,168 ms Pulsabstand für lohgische Eins
11
#define TIME_WORD 13500 //tDW = 14 tu = 14,336 ms Wortabstand
12
#define TIME_DOUBLEWORD 18500 //tDS = 13 tu = 19,456 ms Doppelwortabstand
13
#define TIME_MAXIMUM 70000
14
15
16
// States
17
volatilebooleantriggered;
18
19
booleankey_hold=false;
20
booleankey_pressed=false;
21
22
unsignedlonglast_time=0;
23
unsignedlongcurrent_time=0;
24
unsignedlongsignal_time=0;
25
unsignedlongsignal_count=0;
26
27
// Buffer
28
bytekeybuffer=0;
29
bytekeylast=0;
30
31
//ISR routine
32
ISR(ANALOG_COMP_vect){
33
cli();
34
triggered=true;
35
sei();
36
}
37
38
voidsetup(){
39
Serial.begin(115200);
40
Serial.println("Started.");
41
42
ADCSRB=ADCSRB&!bit(ACME);// disable Analog Comparator Multiplexer Enable
43
ACSR=bit(ACI)// clear Analog Comparator Interrupt Flag
44
|bit(ACIE)// set Analog Comparator Interrupt Enable
45
|bit(ACIS1)|bit(ACIS0)// select rising edge: ACIS1/ACIS0 Analog Comparator Interrupt Mode Select
michael_ schrieb:> Was sagt eigentlich der Assembler-Code des KC-85?
Hui, muss ich erstmal lesen lernen. Nach dem ersten Überfliegen sieht es
ganz ähnlich aus wie mein Programm. Das Rückwärtszählen der Takte finde
ich sehr elegant.
W.S. schrieb:> Nein, das hast du nicht richtig verstanden. Die 1. Methode wäre, das> zweipolige Anschlußkabel gegen ein dreipoliges Kabel zu ersetzen, wobei> die dritte Leitung an die Ausgänge der zwei UND-Gatter gelegt wird -> allenfalls über einen einfachen Spannungsteiler. Sowas geht mit einem> einfachen Stereo-Kabel.
Da muss ich jetzt noch einmal nachhaken: was machen diese beiden
UND-Gatter denn da überhaupt? Die sehen so überflüssig aus. Beide
Eingänge sind kurzgeschlossen, das ergibt doch gar keinen Sinn?
michael_ schrieb:> Aber ich kann mir nicht vorstellen, dass man da so ein kompliziertes> Programm braucht
Die Fernbedienungscodes in passende Scancodes einer IBM Tastatur mit
völlig anderem Layout umzuwandeln wird beliebig komplex.
Beide Tastaturen senden schliesslich KEIN ASCII.
Trommelwirbel.....mein Oszilloskop ist angekommen. Tastatur wie im
Handbuch beschrieben über 270 Ohm an 12 Volt angeschlossen, Tastkopf
zwischen Widerstand und Tastatur gesetzt. Hier die ersten Aufnahmen.
Erkenntnisse:
- Der Spannungspegel liegt zwischen ca. 9,7 und 10,4 Volt (die dicken
Linien). Das ist aber nicht immer gleich und sinkt auch mal auf 9,5 zu
10,2 Volt ab.
- Das Signal ist durch Abfall der Spannung um ca. 0,5 Volt aufmoduliert.
- Man kann gut den "Wortabstand" zwischen den einzelnen Sendepaketen
erkennen.
- Print 6: Das Signal besteht wie in der Anleitung beschrieben aus einem
Burst mit fünf Tälern (sagt man das so?)
- Print 10 zeigt das Signal hinter dem Kondensator in der oben von
c-hater beschriebenen Schaltung. Ziemlich verrückt, dass das überhaupt
mit dem Arduino auswertbar ist.
- Dummerweise funktioniert das erste Bit nicht immer. Man sieht hier
denke ich sehr schön, wie es verschollen geht. Nach einem Tastendruck
wird der gesamte Pegel erst hochgezogen, aber das erste Bit sendet schon
während der Aufwärtsfahrt.
Kann man da was machen? Das ist ja eigentlich ein Problem in der
Tastatur und wohl kaum durch externe Beschaltung und nur mit sehr
trickreicher Software zu bewältigen, oder?
Hier noch ein Print mit den Signalen an beiden Spannungsteilern
(Schaltung von c-hater). Der Bitverlust ist ja noch viel krasser als
gedacht: es braucht erst ein komplettes Sendepaket und manchmal mehr,
bis die Bursts unter die Triggerspannung fallen. Und das ist auch alles
ziemlich rauschig. Muss das so sein?
Kannst Du die Daten von Kanal 1 aus Deinem Oszi exportieren (Format:
csv, xls o.ä) und hier einstellen?
Dann könnte man die Simulation damit füttern und nach einem geeigneten
Hochpass suchen.
Tim schrieb:> Kannst Du die Daten von Kanal 1 aus Deinem Oszi exportieren (Format:> csv, xls o.ä) und hier einstellen?> Dann könnte man die Simulation damit füttern und nach einem geeigneten> Hochpass suchen.
Interessant, das geht? Mit welchem Programm macht man das?
Anbei die Daten auf dem Bild als csv-Datei, dazu noch die Einstellungen
des Scopes in der txt-Datei. Sind das die Daten, die man für eine
Simulation braucht? Ich kann sonst auch trc- oder wfm-Dateien
exportieren.
Bei den Dateien mit Kennzeichnung "precap" hängt das Scope vor dem
Koppelkondensator (4.7µ), bei den anderen Dateien hinter dem
Kondensator.
Das Signal wird beim kurzen Drücken der Leertaste erzeugt. Zu sehen sind
zwei Pakete mit sieben Bit, getrennt durch Wortabstand. Wenn man die
Taste gedrückt hält, wird die Bitfolge auf dem oberen Spannungsneiveau
fortlaufend weitergesendet.
Miss doch mal ganz ohne Auswerteschaltung. Meine Vermutung ist, dass der
gezeigte Spannungssprung erst durch die Auswerteschaltung verursacht
wird (Klemmdioden?). Sonst müsste die Tastatur ihre Stromaufnahme zu
Beginn der Datenübertragung um mehr als 3 mA senken, wofür ich in deren
Schaltplan keinen Grund erkennen kann. Du bist ja nicht der Erste, der
sich an der KC85-Tastatur versucht. Z.B. habe ich obige Grafik gefunden
und da ist eine glatte Linie bei 9V mit 0,5V-Impulsen nach unten zu
sehen.
Mario M. schrieb:> Miss doch mal ganz ohne Auswerteschaltung.
Habe ich als allererstes getan. Ohne Auswerteschaltung -> die obigen
Messungen und Bilder mit Sprung, aber geradem Spannungsniveau. Ich werde
noch einmal komplett neu aufbauen, mit anderer Spannungsversorgung.
Wüsste aber nicht, was das ändern kann.
> Z.B. habe ich obige Grafik gefunden> und da ist eine glatte Linie bei 9V mit 0,5V-Impulsen nach unten zu> sehen.
Danke für den Tipp. Die habe ich auch gefunden. Vielleicht ist meine
Tastatur ja auch kaputt. Ein paar Tasten gehen wie gesagt gar nicht, ein
Pin des Controllers ist tot.
--- schrieb:> zu doof [...]> ohne Fremderleuchtung
Interessant, wie einige Menschen glauben, das Wissen sei von allein in
sie hinein gepurzelt. Du müsstest ja alles, was Du kannst, ganz allein
erfinden. Keine Schule, keine Bücher, kein Internet, keine Familie,
keine Freunde. Realistischer ist doch, dass wir alle das Produkt unseres
Umfelds sind. Ich wünsche Dir ein freundlicheres Umfeld. You made my
day.
Mario M. schrieb:> Miss doch mal ganz ohne Auswerteschaltung.
Das ist ganz sicher eine gute Idee im Sinne der klassischen Fehlersuche:
man versucht, mögliche Störeinflüsse zu eleminieren.
> Meine Vermutung ist, dass der> gezeigte Spannungssprung erst durch die Auswerteschaltung verursacht> wird (Klemmdioden?).
Das allerdings halte ich doch für eher unwahrscheinlich. Die verwendete
Auswerteschaltung war doch im Thread enthalten. Keine Dioden als reale
Bauelemente drin. Kämen also höchstens noch die Substratdioden der
AVR-Eingänge in Frage. Aber noch nicht bei den Spannungen, die sich aus
dem Oszibildern ablesen lassen. Also: nein, nix Dioden-Einflüsse.
Ich würde mal sagen: die Tastatur ist schlicht und einfach defekt.
> Sonst müsste die Tastatur ihre Stromaufnahme zu> Beginn der Datenübertragung um mehr als 3 mA senken, wofür ich in deren> Schaltplan keinen Grund erkennen kann.
Ganz genau so ist das. Würde sie normal funktionieren, gäbe es diesen
Puls nicht. Wahrscheinlich war sie deshalb so günstig bei ePay...
c-hater schrieb:>> Sonst müsste die Tastatur ihre Stromaufnahme zu>> Beginn der Datenübertragung um mehr als 3 mA senken, wofür ich in deren>> Schaltplan keinen Grund erkennen kann.>> Ganz genau so ist das. Würde sie normal funktionieren, gäbe es diesen> Puls nicht. Wahrscheinlich war sie deshalb so günstig bei ePay...
Von wegen günstig...5 Euro. Nicht bei eBay, sondern aus einem total
verrückten Trödelladen, eine Halle mit unglaublich viel unsortiertem
Kram.
Ok, ich gehe nun davon aus, dass sie kaputt ist und werde den kompletten
Controller rauswerfen, durch einen ATmega328 ersetzen und mit V-USB die
USB-Verbindung bauen.
Bis hierhin habe ich schon unglaublich viel gelernt und bin in mir
vorher verschlossene Welten eingetreten. Herzlichen Dank soweit, ganz
besonders an c-hater, Tim und Mario M. Jetzt habe ich hoffentlich
niemanden vergessen.
Gregor N. schrieb:> Von wegen günstig...5 Euro.
Wenn ich diese utopischen 5 Euro dafür ausgegeben hätte, würde ich nicht
eher ruhen, bis ich entweder ein Lösung dafür gefunden hätte, dieses
halbkaputte Stück Hardware doch noch irgendwie sinnvoll benutzen zu
können oder besser: bis ich es repariert hätte.
Das wäre für mich eine reine Frage der Ehre. Also völlig jenseits von
Sinn und Verstand und wirtschaftlichen Erwägungen...
Zum Glück habe nicht ich es gekauft. ;o)
Gregor N. schrieb:> Bei den Dateien mit Kennzeichnung "precap" hängt das Scope vor dem> Koppelkondensator (4.7µ), bei den anderen Dateien hinter dem> Kondensator.
Ich hab jetzt nur die Daten vor dem Kondensator genommen.
Mit einem Pythonskript waren die schnell ins PWL-Format für LTSpice
gewandelt (alles oben als Anhang).
In der Simulation bildet C1 mit R2||R3 einen Hochpass mit einer
Grenzfrequenz von 3 Hz. Wenn C1 auf 47n reduziert wird, erhöht sich die
Grenzfrequnz auf 300 Hz. Damit sieht das Signal für den Komparator doch
schon ganz brauchbar aus...
Wegen dem defekten Chip würde ich mal im richtigen Forum nachfragen:
http://robotrontechnik.de/html/forum/thwb/index.php
Gregor N. schrieb:> Ok, ich gehe nun davon aus, dass sie kaputt ist und werde den kompletten> Controller rauswerfen
Das ist sehr unwahrscheinlich. Ein kaputter U807 würde schlicht gar
nichts tun. Die Tastatur sendet ja aber. Alle anderen Bauteile in der
Tastatur wären problemlos ersetzbar (falls defekt).
Mal ne verrückte Idee: man könnte eine IR-LED an den Ausgang des U807
hängen (ok ich sags extra dazu: mit einem Treibertransistor natürlich)
und die Tastatur so als IR-Fernbedienung betreiben. Ein TSOP34136
(31236, 1836, ... einer für 36kHz halt) als IR-Empfänger. Und schon hat
man saubere Impulse für einen µC.
Im Anhang die empfohlene Beschaltung des U807 als IR-Sender.
> durch einen ATmega328 ersetzen und mit V-USB die USB-Verbindung bauen.
Frevel. Das ist etwa so als würdest du einen handgepflegten Oldtimer
kaufen und dann den Motor rauswerfen und durch einen aktuellen ersetzen.
Axel S. schrieb:> Ein kaputter U807 würde schlicht gar> nichts tun.
Es ist zwar ein Digital-IC, aber zwischen funktionierend und kaputt gibt
es trotzdem Abstufungen. Zum Beispiel:
Gregor N. schrieb:> ein> Pin des Controllers ist tot.Axel S. schrieb:> einer für 36kHz halt) als IR-Empfänger
Original sendet die Tastatur mit 31kHz und 5 Impulsen pro Burst, also
müsste man einen passenden Empfänger nehmen oder den Taktgeber umbauen.
Außerdem brauchen die TSOP mindestens 6 Impulse. Ich weiß nicht, ob es
IR-Empfänger gibt, die mit weniger funktionieren.
Axel S. schrieb:> Frevel. Das ist etwa so als würdest du einen handgepflegten Oldtimer> kaufen und dann den Motor rauswerfen und durch einen aktuellen ersetzen.
Andere würden es einen Hot Rod nennen. ;-)
Axel S. schrieb:> Frevel. Das ist etwa so als würdest du...
...naja, ganz so schlimm ist das auch nicht. Ich hatte vor lange Zeit
mal eine IR-Fernbedienung auf ähnliche Weise umgebaut, nämlich für einen
DVD-Player, dessen FB verloren war. Den ursprünglichen Chip raus, dafür
einen PIC16F870 (oder so) rücklings reingeklebt, dann alles mit feinem
CuL Draht verstrippt.
Aber so eine Tastatur zur IR-Tastatur umzubauen, halte ich für
kontraproduktiv. Dann eher schon ein dreipoliges Kabel oder eben einen
mechanisch kleinen µC zum Umsetzen auf USB hinein.
W.S.
Axel S. schrieb:> Mal ne verrückte Idee: man könnte eine IR-LED an den Ausgang des U807> hängen (ok ich sags extra dazu: mit einem Treibertransistor natürlich)> und die Tastatur so als IR-Fernbedienung betreiben. Ein TSOP34136> (31236, 1836, ... einer für 36kHz halt) als IR-Empfänger. Und schon hat> man saubere Impulse für einen µC.>> Im Anhang die empfohlene Beschaltung des U807 als IR-Sender.
Könnte man da nicht auch einen Optokoppler mit Hysterese nehmen? Ich
habe hier zum Beispiel einen H11L1M rumzuliegen.
Mario M. schrieb:> Mario M. schrieb:>> und 5 Impulsen pro Burst>> Ups, falsches Datenblatt. Es sind doch 6 Impulse, dann passt es zu den> TSOP.
Es sind gemessen 5 Impulse mit eine Periode von 34μs bzw. 29,4 kHz,
siehe oben der Output vom Oszilloskop:
https://www.mikrocontroller.net/attachment/375029/DS1Z_QuickPrint6.png
Es scheint mir mit der IR-Idee dann doch etwas komplizierter zu werden.
Tim schrieb:> Mit einem Pythonskript waren die schnell ins PWL-Format für LTSpice> gewandelt (alles oben als Anhang).
Deine LTSpice-Datei hat mir den Weg in diese Richtung gewiesen, vielen
Dank! Bis zur Umwandlung zu PWL bin ich sogar schon gekommen, allerdings
mit Excel+Texteditor. Auch das Simulieren hatte ich hinbekommen. Beim
nächsten Schritt habe ich dann gehangen...
> In der Simulation bildet C1 mit R2||R3 einen Hochpass mit einer> Grenzfrequenz von 3 Hz. Wenn C1 auf 47n reduziert wird, erhöht sich die> Grenzfrequnz auf 300 Hz. Damit sieht das Signal für den Komparator doch> schon ganz brauchbar aus...>
Perfekt! Ich habe gerade keinen 47nF parat gehabt und bin deshalb mit
68nF eingestiegen, anbei das Bild vom Oszilloskop.
Rein theoretisch kann man doch die optimale Grenzfrequenz ausrechnen,
oder? Wäre nicht eine Grenzfrequenz optimal, die nur die bursts mit um
die 30kHz durchlässt bzw. unter Berücksichtigung des Sampling Theorems
davon die Hälfte? Wenn ich es richtig verstanden habe, dann wären das
für 15kHz ca. 1nF bei einem Spannungsteiler mit ca. 2 x 10kOhm.
Sind denn irgendwelche Nebenwirkungen zu erwarten?
Kann man diese Technik eigentlich verallgemeinern und unabhängig von der
Spannung der ursprünglichen Schaltung einfach so mit einem beliebigen
Kondensator einen Spannungsteiler an einen Mikrocontroller ankoppeln?
Fragen über Fragen.
Gregor N. schrieb:> Axel S. schrieb:>>> Mal ne verrückte Idee: man könnte eine IR-LED an den Ausgang des U807>> hängen (ok ich sags extra dazu: mit einem Treibertransistor natürlich)>> und die Tastatur so als IR-Fernbedienung betreiben. Ein TSOP34136>> (31236, 1836, ... einer für 36kHz halt) als IR-Empfänger. Und schon hat>> man saubere Impulse für einen µC.>>>> Im Anhang die empfohlene Beschaltung des U807 als IR-Sender.>> Könnte man da nicht auch einen Optokoppler mit Hysterese nehmen?
Nein. <seufz> sind da irgendwelche Kenntnisse vorhanden?
>> Ups, falsches Datenblatt. Es sind doch 6 Impulse, dann passt es zu den>> TSOP.>> Es sind gemessen 5 Impulse mit eine Periode von 34μs bzw. 29,4 kHz
...
> Es scheint mir mit der IR-Idee dann doch etwas komplizierter zu werden.
Nicht wirklich. Es gibt auch TSOP's für 30kHz. Und so super trennscharf
sind die ohnehin nicht. Die 36kHz gelten übrigens für 4MHz Taktfrequenz
am U807. Genau sind es 4MHz/112. Wenn die Tastatur bei 30kHz Träger
rauskommt, ist die Taktfrequenz offensichtlich niedriger.
Was der TSOP auf jeden Fall schon mal macht, ist den Träger zu
entfernen. Außerdem kuriert er deine Unfähigkeit, die Impulse von der
12V Schiene auszukoppeln. Zu der Zeit als diese Tastatur designed wurde,
war man noch in der Lage, eine solche Auswerteschaltung aufzubauen. Im
Gegenteil wäre damals der IR-Empfänger aufwendiger gewesen, weil es die
integrierten Empfänger noch nicht gab. Tatsächlich ist die gewählte
Schaltungsvariante nur der Nichtverfügbarkeit von Steckverbindern mit
mehr als 2 Polen anzulasten. Denn schon ein simpler dreipoliger Stecker
hätte es erlaubt, GND, Vcc und Signal separat zu führen.
Gregor N. schrieb:> Sind denn irgendwelche Nebenwirkungen zu erwarten?
Eigentlich nicht. Je höher die Grenzfrequenz ist, desto runder werden
die Flanken an den Spikes. Irgendwann werden die Spikes dann kleiner und
dann reicht es irgendwann nicht mehr für den Komparator.
> Kann man diese Technik eigentlich verallgemeinern und unabhängig von der> Spannung der ursprünglichen Schaltung einfach so mit einem beliebigen> Kondensator einen Spannungsteiler an einen Mikrocontroller ankoppeln?
Warum nicht? Nur wenn die Werte die Grenzen der Kleinspannung
überschreiten, würde ich mir doch ein paar mehr Gedanken machen.
Axel S. schrieb:> Nein. <seufz> sind da irgendwelche Kenntnisse vorhanden?> Außerdem kuriert er deine Unfähigkeit, die Impulse von der> 12V Schiene auszukoppeln.
Tja, was soll ich sagen? Ich habe leider in diesen Bereichen kaum
Kenntnisse, bin dafür aber umso wissbegieriger. Ich bin übrigens
Sozialwissenschaftler.
Gregor N. schrieb:> Ich bin übrigens> Sozialwissenschaftler.
Na und?
Guck dir mal den Rothammel an. Ist ein dickes Buch über Antennen. Der
Autor war auch kein Diplomelektroniker, sondern Soldat, Landwirt,
Gastwirt, Postler und so weiter.
W.S.
Dup didup dup. Laeuft. Dies ist mein erster Beitrag mit KC85 Tastatur
ueber USB.
Das beste an der Sache ist, dass es ohne StepUp Wandler geht, die
Tastatur haengt direkt an den 5 Volt vom USB Port. Erstaunlich, dieses
rauschige Signal mit gerade mal 200mV Hub reicht aus. Mit den Potis und
einer Status LED kann man den Abstand prima einstellen.
Jetzt muss nur noch der U807 repariert werden. Dann ist es kein
Oldtimer, kein Hot Rod, sondern ein Trabi am Abschleppseil.
Axel S. schrieb:> Mal ne verrückte Idee: man könnte eine IR-LED an den Ausgang des U807> hängen (ok ich sags extra dazu: mit einem Treibertransistor natürlich)> und die Tastatur so als IR-Fernbedienung betreiben. Ein TSOP34136> (31236, 1836, ... einer für 36kHz halt) als IR-Empfänger. Und schon hat> man saubere Impulse für einen µC.>> Im Anhang die empfohlene Beschaltung des U807 als IR-Sender.
Danke für den Schaltplan, gutes Lernmaterial, ich habe wieder das eine
und andere mitgenommen. Die Idee finde ich ganz famos - gehe jetzt aber
erst einmal den angefangenen Weg weiter...der scheint ebenfalls zum Ziel
zu führen.
Gregor N. schrieb:> Jetzt muss nur noch der U807 repariert werden. Dann ist es kein> Oldtimer, kein Hot Rod, sondern ein Trabi am Abschleppseil.Gregor N. schrieb:> Vielleicht ist meine Tastatur ja auch kaputt. Ein paar Tasten> gehen wie gesagt gar nicht, ein Pin des Controllers ist tot.
Kannst du dazu mehr sagen? Welcher Pin? Wie festgestellt? Achte auf
kalte Lötstellen. Ebenfalls nicht auszuschließen ist eine weggegammelte
Leiterbahn. Tastaturen sind typisch widrigen Umgebungsbedingungen
ausgesetzt. Schon Handschweiß allein ist erstaunlich aggressiv, da muß
noch nicht mal Cola in die Tastatur geflossen sein.
Falls es den U807 wirklich gerissen hat und du sonst keinen Ersatz
findest, dann melde dich bei mir. Ich schaue dann mal in meinem Fundus.
Mission erfuellt. Nachdem ich den U807 getauscht hatte, ging es immer
noch nicht. Letztlich hatte sich zwischen zwei Leiterbahnen unsichtbar
leitender Dreck gebildet. Isopropanol und Freikratzen, alles auf
Verdacht, waren die Loesung. Tada...ich kann nun aucc 0en und Qs
schreiben und habe Cursortasten.
Das laeuft alles mit Minimalbeschaltung: wie oben, aber mit zwei 10k
Potis und 68nF Koppelkondensator. Dahinter haengt ein Digispark USB
Board mit ATtiny85.
Herzlichen Dank an alle fuer die grossartige Unterstuetzung.