Hello, Guest the thread was called284 times and contains 4 replays

last post from axorp at the

Grundlagenfrage zu langem Tastaturkabel

  • Hallo,


    Elektronik interessiert mich sehr, wirklich auskennen tu ich mich aber nicht.


    Ich bin wieder über eine simple, aber interessante Sache gestolpert.

    Vielleicht hat jemand Zeit und Lust, das etwas zu erläutern?


    In diesem Link wird erklärt, wie man ein längeres Tastaturkabel für C64/C128 basteln kann:

    https://ist.uwaterloo.ca/~schepers/MJK/c128_keyboard.html


    Da die Spannung zum Abfragen der Tastatur direkt aus dem CIA kommt, ist die Kabellänge beschränkt (weil mehr Kabel mehr Strom benötigt).

    Das verstehe ich.


    Der IC ist dazu da, um zu verhindern, dass zu viel Spannung vom CIA gezogen wird. Stimmt das?

    Was Dioden und Widerstände grundsätzlich machen, weiß ich.

    Warum werden sie in diesem Zusammenhang benötigt? Reicht der IC alleine nicht aus?


    Danke!

  • Die Widerstände sind Pullups, die ziehen die PB-Leitungen auf 5V Niveau, wenn keine Taste gedrückt ist.

    Die Tastatur beim PET und 64 (und anderen) funktioniert ja grundlegend so, dass eine der PA-Leitungen auf Low gezogen wird, und gleichzeitig an die Ports an den PB-Leitungen ausgelesen werden. Ist keine Taste mit Verbindung der gerade auf low gezogenen PA-Leitung gedrückt, sind alle PA-Leitungen high, eben weil sie durch die Widerstände mit 5V verbunden sind. Drückt man eine Taste, dann verbindet man effektiv eine der PA mit einer der PB-Leitungen. Ist eine Taste gedrückt UND die dazugehörende PA-Leitung low wird die PB-Leitung über den Schalter auf low gezogen. Da der Rechner weiß, welche PA Leitung gerade low und damit aktiv war, ist über den Status der PB-Leitungen klar, welche Taste (oder Tasten) gedrückt wurden.


    Die CIA hat dafür auch interne Pullups, diese können aber nicht genügend Strom liefern, um sehr lange Leitungen sauber auf high zu ziehen/dabei zu überlasten. Daher die externen.


    Die Dioden sind dafür da, dass im Falle mehrerer gedrückter Tasten, welche ein und dieselbe PB-Leitung benutzen, keine direkte Verbindung zwischen einem LOW und einem HIGH-Ausgang des 74HC541 erfolgt. Taste 9 und 7 liegen zum Beispiel auf PA4 und PA3, und sind, wenn sie beide gedrückt werden, durch die Leitung PB0 miteinander verbunden. Wenn jetzt PA4 auf LOW, PA3 aber auf High ist, dann hätte man ohne die Diode einen Kurzschluss zwischen den beiden Ausgängen.


    Bei der CIA kann das nicht passieren, da diese über open collector-Ausgänge verfügt, die CIA KANN nur auf low ziehen, und treibt nie eine Leitung aktiv high. Beim 74HC541 ist dies nur dann gegeben, wenn dieser im Tri-State ist, also alle seine Ausgänge deaktiviert. Was in dem Fall ja nicht möglich ist.


    PS: und ja, der 74HC541 ist ein Driver/Buffer, gemacht und auch längere Leitungen zu treiben.

  • Einen großen Bogen um solche Schaltungen machen, weil zwar ein Großteil der Software die Tastatur ausliest, indem auf PA geschrieben und dann PB gelesen wird, aber das ist nicht von der Hardware so vorgegeben, und entsprechend gibt es Software, die es eben nicht so macht. Bruce Lee zum Beispiel liest andersherum aus, und die Tasten werden in dem Spiel mit der Schaltung nicht funktionieren.


    "Mehr Kabel braucht mehr Strom" ist übrigens nur ein Teilproblem. Das Hauptproblem ist: längere Leitung => höherer Widerstand der Leitung und höhere parasitäre Kapazität. Entsprechend dauert es bei Schaltvorgängen länger, bis auf der anderen Seite auch der Spannungspegel messbar wird, der sich aufgrund der "Schaltlage" (also Taste gedrückt oder nicht) ergeben sollte - weil eben erstmal die Leitungskapazität umgeladen werden muss. Der C64 bzw. die laufende Software erwartet aber die passende "Antwort" in wenigen Mikrosekunden.


    Ähnliche Problem hat man auch mit langen Joystick-Leitungen und langen IEC-Leitungen. Das geht dann mit mancher Software gut, mit anderer nicht.

  • 1570 hat schon eine menge gut erklärt.


    die dioden sind nötigt, so wie es Zitruskeks da erklärt hat.

    damit man keine dioden benötigt, nimmt man ics mit einem open collector.

    so kann ein high pegel an einem ausgang garnicht vorkommen. nur über einen externen pullup widerstand.


    dann gibt es noch weitere unstimmigkeiten. die noch nicht erwähnt wurden.


    der hc541 ist ein nicht ttl kompatibler ic. der hct541 ja.


    der hc541 hat einen cmos pegel erkennungs eingang.

    somit erkennt er alles unter 1/3 vcc garantiert sicher als low pegel. somit alles von 0 bis 1,7V,

    aber als 1,7V kann undefiniert, besonders vom vorzustand abhängig, auch als ein low erkannt werden :(


    alles ab 2/3 vcc erkennt er garantiert als high pegel. somit also erst ab 3,3V bis 5V.


    aber der 6526, laut datenblatt, liefert für den low pegel ttl entsprechend den low pegel garantiert unter 0,4V

    und den high pegel garantiert mit über 2,4v


    da der hc541 aber bei 5v garantiert den high pegel vom 6526 erst ab 3,3v erkennt.

    so kann es sein, das manchmal die pegel bei einem hc541 nicht immer oder ganz falsch erkannt werden.


    nun sind da die 8 dioden, da der hc541 kein open collector typ ist.

    so wird der ausgegebener low pegel, durch die dioden, um ca. 0,7v angehoben.


    der 6526 aber benötigt immer den low pegel unter 0,8v, damit er intern immer ganz sicher erkannt wird.

    so wird durch die dioden aber das ganz ganz bestimmt immer knapp.

    früher benutzte man an dieser stelle germanium dioden, wenn man keinen open collector hatte.

    wie z.b. bei dem cbm600 und cbm700er.


    so würde ich sagen, zu den anderen schon erwähnten sachen, da hat einer nicht gut überlegt.

    und es verschlimmbessert.


    da geht es um den anschluss einer c128 tastatur an einem c64?


    das tastaturkabel an der externen c128 tastatur ist doch nicht viel länger als das interen kabel der c64 tastatur?


    es soll sogar joysticks geben, die sogar ein längeres kabel haben, als die externe c128 tastatur ;)
    und alles läuft auch an dem 6526 port parallel.


    wie kommt man nun auf die idee, diesen aufwand zu betreiben, wegen einem angeblich viel zu langem kabel,

    an einer c128 tastatur?


    und macht es mit der zwischenschaltung nur viel schlimmer.


    wir haben oft, für unsere kunden, die die commodore platinen, in maschinen als steuerung benutzten,

    das tastaturkabel bis auf einen meter problemlos verlängert.


    die paar cm, die eine externe c128d tastatur länger ist, als das interne c64 tastatur kabel,

    machen nie und nimmer probleme. sonnst müsste es doch viele probleme bei einem c128d dann auch geben?


    gruß

    helmut