L'atelier [EN COURS] remplacement d'un clavier PX-7 par un clavier PS/2 ou USB
Salut, les gars,
Ayant quelques MSX pour lequel il leurs manquent le clavier (séparé) comme des SONY, YAMAHA, PIONEER ...
Je suis entrain d'étudier la possibilité de connecter un clavier de substitution mais je recherche des infos concernant les échanges entre le clavier et l'UC, ainsi que les schèma mais pas facile à trouver !!!
Pour le PX-7 par exemple j'ai trouvé ca : http://msx.hansotten.com/uploads/msxdocs/pioneertx7sm.pdf
ca décrit le pin-out du clavier le port B du PPI en entrée (données du clavier), les bits 0-3 du port C en sortie, mais quelles données sont envoyé au clavier et à quelle fréquence ?
Pour le PINOUT il est indiqué les 8 bits de données avec 4 en entrées sorties OK mais aussi une broche STB ???? (strobe ?)
Pour CAPS je suppose que c'est pour indiqué la touche "verrouillage majuscule" appuyée ou non ?
Donc si vous avez des informations sur les échanges entre le clavier et l'UC du PX-7 pour commencer ca m'intéresse.
Merci d'avance de votre aide. Edité par 6502man Le 01/07/2015 à 15h31
Ayant quelques MSX pour lequel il leurs manquent le clavier (séparé) comme des SONY, YAMAHA, PIONEER ...
Je suis entrain d'étudier la possibilité de connecter un clavier de substitution mais je recherche des infos concernant les échanges entre le clavier et l'UC, ainsi que les schèma mais pas facile à trouver !!!
Pour le PX-7 par exemple j'ai trouvé ca : http://msx.hansotten.com/uploads/msxdocs/pioneertx7sm.pdf
ca décrit le pin-out du clavier le port B du PPI en entrée (données du clavier), les bits 0-3 du port C en sortie, mais quelles données sont envoyé au clavier et à quelle fréquence ?
Pour le PINOUT il est indiqué les 8 bits de données avec 4 en entrées sorties OK mais aussi une broche STB ???? (strobe ?)
Pour CAPS je suppose que c'est pour indiqué la touche "verrouillage majuscule" appuyée ou non ?
Donc si vous avez des informations sur les échanges entre le clavier et l'UC du PX-7 pour commencer ca m'intéresse.
Merci d'avance de votre aide. Edité par 6502man Le 01/07/2015 à 15h31
Merci Jipe pour l'info je vais jeter un oeil.
Je vais me concentrer en premier sur le PX-7 ...
Je pense avoir "deviné" le fonctionnement logique entre la clavier et l'UC, il faut juste que je comprenne la fonction de la broche STB, sur les schémas je ne retrouve pas cette annotation !!!
Peut être un fonctionnement du type "clock" comme un mode SPI ou I2C ???
mais qui contrôle ce STB l'UC ou le clavier ???, Edité par 6502man Le 10/05/2015 à 22h54
Je vais me concentrer en premier sur le PX-7 ...
Je pense avoir "deviné" le fonctionnement logique entre la clavier et l'UC, il faut juste que je comprenne la fonction de la broche STB, sur les schémas je ne retrouve pas cette annotation !!!
Peut être un fonctionnement du type "clock" comme un mode SPI ou I2C ???
mais qui contrôle ce STB l'UC ou le clavier ???, Edité par 6502man Le 10/05/2015 à 22h54
Fabf
Membre non connecté
Conseiller Municipal
TurboSEB
Membre non connecté
Conseiller Municipal
En tapant "keyboard stb pin" sur Google
J'ai pas mis le lien car ça me fait un message blanc
On accède à un pdf explicatif ou d'après ce que j'ai compris un clavier géré par un ci8255, le serait, un peu comme une interface parallèle. Edité par TurboSEB Le 11/05/2015 à 07h58
J'ai pas mis le lien car ça me fait un message blanc
On accède à un pdf explicatif ou d'après ce que j'ai compris un clavier géré par un ci8255, le serait, un peu comme une interface parallèle. Edité par TurboSEB Le 11/05/2015 à 07h58
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
le 8255 est présent dans les MSX1 c'est le PPI
il a été intégré dans les puces systéme par la suite
donc il faut se référer a un schéma MSX1 a chips classiques pour bien comprendre
la communication passe par les ports I/O A8 , A9 , AA et AB
voir assembleur et périphériques des MSX page 150 et plus
il a été intégré dans les puces systéme par la suite
donc il faut se référer a un schéma MSX1 a chips classiques pour bien comprendre
la communication passe par les ports I/O A8 , A9 , AA et AB
voir assembleur et périphériques des MSX page 150 et plus
Pour l'instant voici ce que j'ai "compris" des échanges entre l'UC et le clavier (pour le PX-7) :
D0-D7 = données ( 0-2 et 4 In/Out les autres uniquement In ) côté PPI.
CAPS = verrouillage majuscule.
STB = Signal indiquant données IN ou OUT (je suppose pour l'instant)
Donc le PPI place STB en position haute ou basse pour envoyer des données au clavier ou recevoir des données du clavier.
Je suppose que le PPI demande au clavier l'état de la ligne de la matrice et celui ci lui renvoi l'octet correspondant ?
Il me reste juste à vérifier ces hypothèses ...
D0-D7 = données ( 0-2 et 4 In/Out les autres uniquement In ) côté PPI.
CAPS = verrouillage majuscule.
STB = Signal indiquant données IN ou OUT (je suppose pour l'instant)
Donc le PPI place STB en position haute ou basse pour envoyer des données au clavier ou recevoir des données du clavier.
Je suppose que le PPI demande au clavier l'état de la ligne de la matrice et celui ci lui renvoi l'octet correspondant ?
Il me reste juste à vérifier ces hypothèses ...
Je viens de connecter mon petit analyseur logique chinois sur la prise keyboard du PX-7, et fait quelques tests.
Mon hypothèse a l'air tout fait juste l'UC envoie la demande de la ligne de la matrice et place STB à 0.
Par contre le delai pour lire l'octet envoyé par l'UC est très court d'après les relevés de l'analyseur
J'arrive avec un Arduion à renvoyer des octets à l'UC pendant l'état haut (1) de STB et le MSX affiche bien un caractère à l'écran, mais pour l'instant c'est juste un test brut donc aucune logique ...
Mais je n'arrive pas à lire la donnée envoyé par l'UC avec l'Arduino je pense que la donnée est pas assez longtemps présente sur le port !!!
L'idée que j'ai pour l'instant : connecter l'Arduino sur le port Keyboard et faire un petit programme qui capture les touches claviers du clavier PS/2 connecter à l'Arduino, en renvoyant la ligne matrice au PX-7.
Keyboard PS/2 -> Arduino <-> PX/7
Je ne sait pas si l'Arduino seras assez rapide pour capturer la donnée envoyé par l'UC ???
Voici les relevés en photos de l'analyseur :
Mon hypothèse a l'air tout fait juste l'UC envoie la demande de la ligne de la matrice et place STB à 0.
Par contre le delai pour lire l'octet envoyé par l'UC est très court d'après les relevés de l'analyseur
J'arrive avec un Arduion à renvoyer des octets à l'UC pendant l'état haut (1) de STB et le MSX affiche bien un caractère à l'écran, mais pour l'instant c'est juste un test brut donc aucune logique ...
Mais je n'arrive pas à lire la donnée envoyé par l'UC avec l'Arduino je pense que la donnée est pas assez longtemps présente sur le port !!!
L'idée que j'ai pour l'instant : connecter l'Arduino sur le port Keyboard et faire un petit programme qui capture les touches claviers du clavier PS/2 connecter à l'Arduino, en renvoyant la ligne matrice au PX-7.
Keyboard PS/2 -> Arduino <-> PX/7
Je ne sait pas si l'Arduino seras assez rapide pour capturer la donnée envoyé par l'UC ???
Voici les relevés en photos de l'analyseur :
Fabf
Membre non connecté
Conseiller Municipal
Super c'est quelque chose qui manque vraiment au MSX.
Ca devrait marcher, ca marchait pas trop mal avec un petit Atmega sur mon proto.
Il tourne à combien ton arduino ?
Ca devrait marcher, ca marchait pas trop mal avec un petit Atmega sur mon proto.
Il tourne à combien ton arduino ?
J'ai utilisé un Uno il est basé sur un ATmega328 cadencé à 16Mjz !!!
Ce qui est certain c'est que ca fonctionne bien pour envoyer la matrice au PX-7 avec l'Arduino, mais pour lire l'octet envoyer par le PX-7 pour l'instant c'est pas vraiment ca !
Mais surtout je trouve que le delai pour capturé la donné envoyer par le PX-7 est vraiment très très courte
J'ai déjà fait un adapteur Souris pour thomson avec un Arduino Mini et un Adaptateur Manette PSX et Wii pour Thomson, donc je pense qu'un clavier devrait pas être plus difficile ....
Dans la semaine si j'ai un peu de temps je vais faire d'autres essais ... Edité par 6502man Le 28/06/2015 à 19h18
Ce qui est certain c'est que ca fonctionne bien pour envoyer la matrice au PX-7 avec l'Arduino, mais pour lire l'octet envoyer par le PX-7 pour l'instant c'est pas vraiment ca !
Mais surtout je trouve que le delai pour capturé la donné envoyer par le PX-7 est vraiment très très courte
J'ai déjà fait un adapteur Souris pour thomson avec un Arduino Mini et un Adaptateur Manette PSX et Wii pour Thomson, donc je pense qu'un clavier devrait pas être plus difficile ....
Dans la semaine si j'ai un peu de temps je vais faire d'autres essais ... Edité par 6502man Le 28/06/2015 à 19h18
Fabf
Membre non connecté
Conseiller Municipal
Je sais pas trop comment était foutu le programme de l'Atmel, je l'ai rapidement remplacé par du FPGA.
En gros le fonctionnement est le même :
Quand une touche est pressée le programme renvoie l'octet correspondant au PPI au moment ou ce dernier sélectionne la bonne ligne.
C'est vraiment une reproduction de la matrice physique d'un clavier MSX.
En gros le fonctionnement est le même :
Quand une touche est pressée le programme renvoie l'octet correspondant au PPI au moment ou ce dernier sélectionne la bonne ligne.
C'est vraiment une reproduction de la matrice physique d'un clavier MSX.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie