Hallo Besucher, der Thread wurde 134k mal aufgerufen und enthält 712 Antworten

letzter Beitrag von axorp am

Keyman64: Tastatur- und Hardwarecontroller

  • Hallo Leute,
    ich suche auch Händeringend ein overlay64.
    Das wäre echt kkasse wenn ihr noch einen Bausatz in der Rückhand hättet 8o


    Viel Grüße

    ich müsste genug Bauteile da haben, Platinen sind letzte Woche gekommen. Ich schau mal, dass ich das diese Woche zusammen sortieren kann.

  • Hallo dukestah,
    vielen Dank für deine Rückmeldung. Kurz vorher hab ich aber schon bei Babble einen Bausatz kaufen können. Mein Bedarf ist also erst mal gedeckt. Trotzdem vielen Dank für deine Mühe.
    Jetzt schaue ich mir erst mal gemütlich deinen Youtoube Kanal an :popcorn:


    Viel Grüße

  • Ich habe hier ein Keyman64 und Reprom64 verbaut und in dem 27c512 habe ich mit "Reprom Image Creator" ein .bin erstellt und dieses gebrannt.
    Nun ist leider mein Problem, das ich nur zwei statt vier Kernals auswählen kann.


    Jemand eine Idee? Wo könnte der Fehler/Denkfehler sein?

  • Ich habe hier ein Keyman64 und Reprom64 verbaut und in dem 27c512 habe ich mit "Reprom Image Creator" ein .bin erstellt und dieses gebrannt.
    Nun ist leider mein Problem, das ich nur zwei statt vier Kernals auswählen kann.


    Jemand eine Idee? Wo könnte der Fehler/Denkfehler sein?

    Für die Auswahl des Kernals über den Reprom hast du zwei Steuerleitungen:


    • HI - HI
    • HI - LO
    • LO - LO
    • LO - HI


    Ich würde erstmal mit einem Multimeter messen ob die Verbindungen korrekt sind. Vielleicht liegt es auch an der Konfiguration des Keyman. Hast du das Reprom denn schon ohne Keyman versucht?

  • @Bobbel


    Ich habe ihm die Sachen eingebaut. Das Reprom funktioniert. Ich habe es mit Schaltern getestet und es konnten alle 4 Kernals angewählt werden.
    Habe ihm dann die beiden Steuerleitungen an den Keyman gesteckt. Dürfte ein Cinfig Fehler sein


    Lg
    Rolf

  • Wie würde denn eine config für das Umschalten der vier Kernals aussehen?
    Hatte eine config probiert, wo ich mit einer Taste immer den nächsten Kernal verwenden hätte können, aber auch hier nur zwei Kernals.

  • Wie würde denn eine config für das Umschalten der vier Kernals aussehen?
    Hatte eine config probiert, wo ich mit einer Taste immer den nächsten Kernal verwenden hätte können, aber auch hier nur zwei Kernals.

    Code
    1. #Kernal
    2. KERNAL = port a bits 0-1
    3. k: inc KERNAL
    4. k: clear a7 #Reset
    5. k: sleep 100
    6. k: tristate a7

    so sollten alle 4 Kernals durchgeschalten werden wenn die Kernalsteuerleitungen an bit 0 und 1 und Reset an bit 7 angeschlossen ist

  • shit...
    es bleibt dabei, ich kann nur zwischen zwei Kernals umschalten.
    Da ist wohl der Wurm drin :-(

  • Yes, unfortunately this is still the case. The reset routine for the 22106 is wrong. But in my experience, the disconnected pin 10 (or pin 21 on the Atmega) works reliable, it looks like the reset isn't used at all. The fix in the firmware is perhaps easy (just the initial state needs to be inverted for the 22106) but I haven't found the time to check this further.

  • Thanks for info dukestah.
    For now I try to put everything together, MixSID, Reprom64, Overlay64 and Keyman64. It looks like writing proper config files will not be an easy task. ;)

    Yes, it appears a bit confusing at the beginning but basically, it is almost impossible to break something with a wrong configuration. So be brave and test :)

  • Hallo zusammen,


    Auch hier möchte ich mich kurz zurückmelden.


    Wer noch Interesse am Keyman oder anderen Bausätzen hat, kann sich gerne wie auf meiner Webseite auf den einzelnen Projektseiten beschrieben bei mir melden. Im Moment sind übrigens noch fünf Keyman64-Bausätze auf Lager.


    Es tut mir leid, dass ihr euch zwischenzeitlich selbst helfen musstet... Ebenso tut es mir leid, dass ich euch bei Problemen nicht weiterhelfen konnte. Zum Glück sind da ja andere Leute eingesprungen, vielen Dank euch allen, besonders dukestah :)


    Ich wollte eigentlich nur kurz Bescheid sagen, dass die Dokumentation des Keyman64 nun auch auf deutsch verfügbar ist. Vielleicht behebt das ja schon das eine oder andere Verständnisproblem. In der deutschen Variante habe ich auch an einigen Stellen etwas ausführlicher beschrieben, z.B. was es mit dem tristate-Befehl auf sich hat.


    Beim Übersetzen meiner Dokumentation und auch beim Nachlesen dieses Threads ist mir aufgefallen, dass meine Dokumentation durchaus noch ein paar konkrete Beispiele vertragen könnte. So könnte ich an manchen Stellen noch kurz beschreiben, wozu ein erstmal etwas esoterisches Feature eigentlich dienen könnte. Das werde ich demnächst mal in Angriff nehmen.


    Außerdem schwebt es mir schon länger vor, mal einen blog-Artikel zu machen, in dem ich mein Setup mit meinen Projekten Schritt für Schritt beschreibe.


    Soweit erstmal von mir,

    Henning

  • Ich hab aber nur den MT22106 als Cross-Point da, da hat die Firmware vom Keyman64 einen Bug, das Ganze funktioniert nur, wenn man entweder Pin 10 am MT22106 oder Pin 21 am Atmega nicht verbindet (vorm Einstecken wegbiegen oder halt Leiterbahn durchkratzen)

    Yes, unfortunately this is still the case. The reset routine for the 22106 is wrong. But in my experience, the disconnected pin 10 (or pin 21 on the Atmega) works reliable, it looks like the reset isn't used at all. The fix in the firmware is perhaps easy (just the initial state needs to be inverted for the 22106) but I haven't found the time to check this further.

    Du hast aber schon in deiner Config beim Verwenden des 74HC22106 die Direktive "using 22106" verwendet, um dem Keyman mittzuteilen, dass du diesen Crosspoint-Switch verwendest? Ich sehe in der Firmware da nämlich keinen Bug.


    Der einzige Unterschied zwischen den beiden Varianten ist, dass beim MT8808 die Signale STROBE und RESET active-high sind, beim CD74HC22106 sind sie active-low.


    In ResetCrosspointSwitch8808() wird RESET entsprechend einmal kurz auf HIGH gezogen:


    Code
    1. PORTD |= CPR;
    2. _delay_ms(1);
    3. PORTD &= ~CPR;


    In ResetCrosspointSwitch22106() wird RESET entsprechend einmal kurz auf LOW gezogen:


    Code
    1. PORTD &= ~CPR;
    2. _delay_ms(1);
    3. PORTD |= CPR;

    Die Direktive "using" setzt den function pointer ResetCrosspointSwitch je nach angegebener Variante auf die jeweilige Reset-Funktion.


    Wenn "using 22106" fehlt, geht der Keyman von einem 8808 aus, ein 22106 bleibt dann natürlich im Dauerreset und die Tastatur funktioniert nicht. Natürlich kannst du das durch Trennen des RESET-Signals lösen, aber so ist das eigentlich nicht gedacht.

  • ...selbst helfen musstet...

    Das klingt ja ganz toll!
    Allerdings habe ich mir gerade ein paar Platinen (man muss mind. 5 nehmen) machen lassen da ich es nachbauen möchte, ich warte derzeit noch auf ein paar Bauteile.
    Danke schon mal für die deutsche Version!
    Ich werde berichten falls es Fragen gibt.

  • Ahoi,

    sorry das ich das wieder ausgrabe aber ich denke hier passt meine Frage bzw. mein Problem am besten hin.


    Ich habe mehrere Geräte mit jeweils Keyman64 im Einsatz und die möchte ich nun auch alle direkt ansprechen.
    Das ganze läuft unter Linux und es gibt ja bei keyman64 den Parameter --device


    Ich hatte nun gedacht, das zb die Geräte sich mit /dev/keyman1, /dev/keyman2 oder halt /dev/keyman3 anmelden.


    Doch, das ist leider nicht so :-(

    Alle drei sind via USB angeschlossen, doch habe ich unter /dev weiterhin nur ein /keyman.

    Wie kann ich denn nun die anderen Keymans64 ansprechen?
    Jemand eine Idee?