Hi Andreas & Patrick
ich habe mich jetzt etwas durch die Datenblätter und Spezifikationen gelesen. Das Problem liegt grundsätzlich in der Meßmethode über eine Spannungsmatrix und in der Beschränkung des Keybuffers der IC-Controllers.
Zum Verständnis die Theorie.
Meßmethode:
Die einzelnen Tasten werden nicht einzeln abgefragt! Das wäre zu teuer und aufwendig.
Es wird eine Spannungsmatrix verwendet. Die sieht ungefär so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| X1 X2 X3 X4 X5 | | | | | Y1---A---B---C---D---E---............ | | | | | Y2---F---G---H---I---J---............ | | | | | Y3---K---L---M---N---O---............ | | | | | |
(X & Y sind die Messkontakte.)
Jede Dimension ist auf eine Folie gedruckt und ein Tastendruck löst einen Kontakt zwischen den Dimensionen aus. Über den fliesenden Strom wird dann ermittelt welche Tasten gedrückt sind.
Wenn jetzt viele Tasten gedrückt sind, bricht die Spannung zusammen. Messung im Ar***! Das erklärt auch die unterschiedliche Anzahl der maximalen Tastenzahlt in Abhängigkeit der Kombination. Je nach Position in der Matrix werden einzelne Stränge mehr belastet. Im Beispiel wäre B-F-G kritischer als A-G-M.
In Anbetracht dieser Tatsache hat der Controler nur einen sehr kleinen Tastenbuffer von 8 oder 16 Byte. Jeder weitere Tastendruck geht immer verloren!
Tja damit ist die Idee einer billigen und einfachen Altarnative für einen I²C- oder CAN-Bus gestorben.
Noch einen Link zur Technik-Theorie von PS/2-Interfaces:
panda.cs.ndsu.nodak..../PICmicro/Links.html