Emuler un vieux clavier

Emuler un vieux clavier - Clavier / Souris - Hardware - Périphériques

Marsh Posté le 17-02-2014 à 13:16:32    

Salut,
 
J'ai un vieil Atari 800 XL des années 80 dont le clavier est en QWERTY et pas vraiment agréable. J'aimerai enlever le clavier, brancher à la place les broches GPIO d'une carte genre arduino et simuler les contacts lignes colonnes par les dites GPIO. On rajoute un soft qui lit un clavier PC et simule sur les GPIO les signaux existant avec le clavier d'origine. Le problème c'est que ce n'est pas statique, il ne suffit pas d'envoyer une combinaison ligne colonne. L'Atari (comme quasiment tout ce qui utilise un clavier) change l'état d'un bit de colonne et regarde si quelquechose a changé dans les bits de lignes. Il faut donc être extrêmement rapide, de l'ordre de quelques microsecondes, je n'ai pas encore regarde le code de l'OS de l'Atari. Quelqu'un aurait déjà expérimenté ce genre de choses?
 
A+
 
Pfeuh

Reply

Marsh Posté le 17-02-2014 à 13:16:32   

Reply

Marsh Posté le 17-02-2014 à 23:24:18    

Un cycle d'une puce à 1MHz = 1 micro-seconde. (mais une instruction machine sur un CPU peut prendre deux ou plusieurs cycles pour être exécutée)
 
En supposant qu'on utilise au moins un micro-contrôleur récent à plusieurs dizaines de MHz et qu'on ne fait tourner que ce programme très simple en C ou assembleur (sans OS, ou avec un OS qui ne fout presque rien?) raisonnablement optimisé (pas de bug qui conduit à faire 80 fois le travail pour rien) on peut supposer que ce n'est pas impossible.
 

Reply

Marsh Posté le 17-02-2014 à 23:29:25    

L'atari ne doit pas avoir d'OS?, juste une ROM.  
en effet d'après google il fait du polling pour lire le clavier (alors que le PC fonctionne avec des interruptions). Ca serait bien de déterminer à quelle fréquence.
C'est intéressant comme projet :D, est-ce que ça marche je ne sais pas.

Reply

Marsh Posté le 17-02-2014 à 23:55:49    

Sans aller jusqu'à l'OS, il y a quand même l'USB à gérer. J'ai pensé a un  système plus "hardware" qui utiliserait le changement d'état de la ligne comme un trigger de bascule pour latcher sur les colones un mot bufferisé à l'entrée des dites bascules. Le passage de la ligne à la position repos effacerait ce mot de l'entrée des bascules. Du coup j'ai 3 solutions:
 
1 - La solution "hardware"... mais mes souvenirs d'électronique remontent à une quinzaine d'années.
2 - La solution "bourrin", mettre un micro qui pédale en espérant que ça passe.
3 - La solution "doigts de fée", monter à la place du clavier une matrice lignes/colones et mettre un transistor par point de contact, une soixantaine, quoi, pour gérer tout ça avec un micro pas forcément puissant mais avec beaucoup de gpio...
 
Techniquement parlant, la 1ère me parait la plus réalisable. Y a t-il des hardeux sur hardware.fr?  :)  
 
La matrice du clavier:
http://members.casema.nl/hhaydn/ho [...] matrix.gif
 
Un multiplexeur en sortie et un en entrée pour scanner le clavier. Apparement le scan ne se fait même pas par 8 bits mais bit à bit! 3 bits pour un multi, 3 bits pour le deuxième et un dernier bit pour lire l'état! Ca c'est de l'économie!
 
http://krap.pl/mirrorz/atari/homep [...] d_scan.gif
 
A+
 
Pfeuh
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed