MSX Village forum

L'atelier [EN COURS] remplacement d'un clavier PX-7 par un clavier PS/2 ou USB

6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 10/05/2015 à 11h10
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


Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 10/05/2015 à 11h46
il y a un schéma et des photos dans le MSX Magazine Jap 1991 03 pour monter un clavier de PX7 sur un Turbo-R

j'ai tué ton post en double ;)


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 10/05/2015 à 12h41
[quote=Jipe

j'ai tué ton post en double ;)[/quote]

Dans un autre contexte cette phrase pourrait t'emmener en prison :lol


banniere-ericb59e
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 10/05/2015 à 22h53
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


Site web    
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 10/05/2015 à 23h09
J'ai pas vu de STB autour du clavier :hum
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 10/05/2015 à 23h27
à la page 10 le pînout du clavier la pin 10 est indiqué STB dans le sens Out !!!

Donc en faite ce STB est contrôlé par l'UC en sortie peut être pour indiqué quand il y a une donnée envoyé par l'UC au clavier ??? Edité par 6502man Le 10/05/2015 à 23h31


Site web    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5886

Le 11/05/2015 à 07h18
En tapant "keyboard stb pin" sur Google
J'ai pas mis le lien car ça me fait un message blanc :gne
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)
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 11/05/2015 à 14h19
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


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 11/05/2015 à 14h21
normalement la matrice est directement aux broches du PPI

il y a des claviers externes multiplexés voir le HBF700F par exemple


:noel
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 11/05/2015 à 23h43
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 ...


Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 28/06/2015 à 11h53
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 :




Site web    
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 28/06/2015 à 17h41
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 ?
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 28/06/2015 à 19h12
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


Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 28/06/2015 à 19h17
Sur ton proto le protocole d'échange avec le clavier est identique ???
Et le délai de présence de l'octet envoyé par le PPI est de quel ordre ???


Site web    
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 28/06/2015 à 20h28
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.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie