L'atelier Clavier de remplacement pour Sony HB-F500 PS/2 ou USB
Je vous propose d'étudier une solution de remplacement de clavier pour les Sony HB-F500 (peut être compatible avec d'autres modèles) .
Je voudrais commencer par comprendre le fonctionnement interne au MSX de la gestion du clavier, ensuite comprendre le protocole d'échange avec le clavier et pour finir proposer une solution moderne (si j'y arrive)
le diagramme extrait du manual service, sur lequel j'ai surligné les liaisons entre le clavier et l'UC plus particulierement le MSX engine S3527.
J'ai 2 questions sur cette partie :
- le signal CS qui part vers le clavier ???
- X6 relié au reset ???
Et pour finir La petite note concernant Y10/SK ???


La partie schéma:

la partie clavier :
le signal CS arrive sur un 74LS175 broche CP.

Les 13 pins du connecteur clavier :
1 : KANA (led caractères japonais on/off)
2 : CAP (led majuscule on/off)
3-10 : KD0-7 (données 8 bits)
11 : CS (sélection du sens des données ??? )
12 : +5V
13 : GND
Si j'ai bien compris :
- KD0-7 donnèes
- KD4-7 sélection de la colonne lorsque CS est actif
- CS permet d'activer une colonne
Donc lorsque CS est actif on lit le numéro de la colonne à activé dans KD4-7 et lorsque CS est inactif on renvoi la valeur de la colonne dans KD0-KD7 ???
edit= grâce à la bascule 74ls175 la colonne reste active ce qui permet de pouvoir lire la colonne lorsque CS est inactif
Par contre je n'ai pas trouvé les chronogrammes concernant CS
Si vous avez des idées et des propositions de solutions ?
N'hésitez pas à faire des commentaires et à me rectifier si j'ai commis une erreur d'interprétation, pour moi les schémas sont encore un epu compliqué à comprendre du premier coup
Edité par
6502man
Le 19/08/2017 à 12h38
Je voudrais commencer par comprendre le fonctionnement interne au MSX de la gestion du clavier, ensuite comprendre le protocole d'échange avec le clavier et pour finir proposer une solution moderne (si j'y arrive)

le diagramme extrait du manual service, sur lequel j'ai surligné les liaisons entre le clavier et l'UC plus particulierement le MSX engine S3527.
J'ai 2 questions sur cette partie :
- le signal CS qui part vers le clavier ???
- X6 relié au reset ???
Et pour finir La petite note concernant Y10/SK ???


La partie schéma:

la partie clavier :
le signal CS arrive sur un 74LS175 broche CP.

Les 13 pins du connecteur clavier :
1 : KANA (led caractères japonais on/off)
2 : CAP (led majuscule on/off)
3-10 : KD0-7 (données 8 bits)
11 : CS (sélection du sens des données ??? )
12 : +5V
13 : GND
Si j'ai bien compris :
- KD0-7 donnèes
- KD4-7 sélection de la colonne lorsque CS est actif
- CS permet d'activer une colonne
Donc lorsque CS est actif on lit le numéro de la colonne à activé dans KD4-7 et lorsque CS est inactif on renvoi la valeur de la colonne dans KD0-KD7 ???
edit= grâce à la bascule 74ls175 la colonne reste active ce qui permet de pouvoir lire la colonne lorsque CS est inactif

Par contre je n'ai pas trouvé les chronogrammes concernant CS

Si vous avez des idées et des propositions de solutions ?
N'hésitez pas à faire des commentaires et à me rectifier si j'ai commis une erreur d'interprétation, pour moi les schémas sont encore un epu compliqué à comprendre du premier coup

Ca à un rapport avec la gestion du clavier le SLOT 0 étendu ???
Sinon j'ai vu sur les schéma du HB-F700, HB-F900 et HB-G900 ont la même connectique clavier et la même gestion côté clavier
Donc les claviers sont interchangeable entre ces différents modèles
Il me reste un point à éclaircir sur la gestion du clavier, c'est le délai entre 2 changements de colonnes ??? Edité par 6502man Le 19/08/2017 à 17h27
Sinon j'ai vu sur les schéma du HB-F700, HB-F900 et HB-G900 ont la même connectique clavier et la même gestion côté clavier

Donc les claviers sont interchangeable entre ces différents modèles

Il me reste un point à éclaircir sur la gestion du clavier, c'est le délai entre 2 changements de colonnes ??? Edité par 6502man Le 19/08/2017 à 17h27
non c'est la gestion des slots du MSX qui est prévu dans le S3527 par les diodes sur X6 ou X7
soit le slot 0 étendu , soit le slot 3 étendu
le clavier est multiplexé d'ou la complexité a suivre le schéma
on lit et on écrit par les même fils et c'est le signal /CS qui aiguille lecture ou écriture
il y a 8 bits en lecture 4 direct et 4 multiplexés avec l'écriture qui sont décodés de Y0 a Y9 par IC2 LS145
voir schéma CN110 CN110 KEY pour le HB5000
soit le slot 0 étendu , soit le slot 3 étendu
le clavier est multiplexé d'ou la complexité a suivre le schéma
on lit et on écrit par les même fils et c'est le signal /CS qui aiguille lecture ou écriture
il y a 8 bits en lecture 4 direct et 4 multiplexés avec l'écriture qui sont décodés de Y0 a Y9 par IC2 LS145
voir schéma CN110 CN110 KEY pour le HB5000
Donc c'est bien ce que j'avais compris KD0-7 pour les données et CS pour la direction.
Je pense procéder comme ca avec un Arduino pour un premier test dans la semaine prochaine :
J'attend que CS soit actif et que la colonne corresponde à 1 (c'est arbitraire j'aurais pu prendre 0 ou 2 ..) et dès que CS n'est plus actif j'envoi la valeur de la colonne .
Si ca fonctionne correctement et qu'a tous les coup la lettre affiché correspond bien à cette colonne, je passe à la suite avec un clavier PS/2 ou USB.
J'ai quand même un doute sur la rapidité de l'Arduino à lire et écrire dans un interval assez court ...
Je pense procéder comme ca avec un Arduino pour un premier test dans la semaine prochaine :
J'attend que CS soit actif et que la colonne corresponde à 1 (c'est arbitraire j'aurais pu prendre 0 ou 2 ..) et dès que CS n'est plus actif j'envoi la valeur de la colonne .
Si ca fonctionne correctement et qu'a tous les coup la lettre affiché correspond bien à cette colonne, je passe à la suite avec un clavier PS/2 ou USB.
J'ai quand même un doute sur la rapidité de l'Arduino à lire et écrire dans un interval assez court ...

Normalement, hormis la sérigraphie, qwerty, azerty,...,kanji, ce sont des claviers quasi identique car il y a quand même une différence de touches, donc de matrice . Par exemple entre le clavier HBG900Ap qwerty et le clavier HBG900Ap azerty, y'a une touche accent à côté du shift droit.

De haut en bas HBF700F azerty,HBG900p ou HBG900Ap qwerty, et HBF500p qwerty (mais en réalité c'est celui d'un HBF700p car il a le sigle Hitbit)
Donc les claviers sont interchangeables entre les HBF500, T600, F700, F900, G900 (p et Ap)
Et je pense que les HBF5 et HBF9 doivent avoir un clavier proche Edité par TurboSEB Le 19/08/2017 à 22h15

De haut en bas HBF700F azerty,HBG900p ou HBG900Ap qwerty, et HBF500p qwerty (mais en réalité c'est celui d'un HBF700p car il a le sigle Hitbit)
Donc les claviers sont interchangeables entre les HBF500, T600, F700, F900, G900 (p et Ap)
Et je pense que les HBF5 et HBF9 doivent avoir un clavier proche Edité par TurboSEB Le 19/08/2017 à 22h15

MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)






Bonsoir,
Est-ce que quelqu'un connaitrait ou aurait des infos sur l'emplacement de la partie qui gère le clavier dans une MAINROM ?
Merci.
Est-ce que quelqu'un connaitrait ou aurait des infos sur l'emplacement de la partie qui gère le clavier dans une MAINROM ?
Merci.

Bonjour,
@Jipe : Aurait une idée de la valeur des ports qui sort en Y0 , Y1 , Y6 et Y7
Merci.
@Jipe : Aurait une idée de la valeur des ports qui sort en Y0 , Y1 , Y6 et Y7

Merci.

le probleme n'est pas dans la rom mais dans le composant de base qui gére le clavier
le PPI 8255
le port B A9 sert a la lecture du clavier
le portC AA bit 0 a 4 lecture du clavier
sinon les appels bios sont :
138H
13BH
141H
9FH
voir assembleur et périphériques des MSX pour plus de détail
le PPI 8255
le port B A9 sert a la lecture du clavier
le portC AA bit 0 a 4 lecture du clavier
sinon les appels bios sont :
138H
13BH
141H
9FH
voir assembleur et périphériques des MSX pour plus de détail

Je suis d'accord avec toi que le port B[7..0] et le port C[3..0] sert pour le clavier + la sortie du port C[6] qui sert pour la LED capslock.
Ce que je cherche a comprendre, c'est qui envoi la commande au PPI pour faire reconnaitre les ports du clavier, c'est pas une partie d'un programme dans la MAINROM au boot
EDIT :
J'avais déjà chercher dans le wiki, mais il manque plusieurs doc qui ont disparues :'( Edité par metalgear2 Le 22/08/2017 à 17h32
Ce que je cherche a comprendre, c'est qui envoi la commande au PPI pour faire reconnaitre les ports du clavier, c'est pas une partie d'un programme dans la MAINROM au boot

EDIT :
Citation :
voir assembleur et périphériques des MSX pour plus de détail
J'avais déjà chercher dans le wiki, mais il manque plusieurs doc qui ont disparues :'( Edité par metalgear2 Le 22/08/2017 à 17h32
pour les ports
Y0 80
Y1 88
Y6 B0
Y7 B8
les roms ne sont pas identiques seuls les appels au bios sont fiable
le PPI doit être initialisé au boot
il faut chercher dans un datasheet de 8255 PPI les commandes a envoyer et rechercher les ports dans la rom
Y0 80
Y1 88
Y6 B0
Y7 B8
les roms ne sont pas identiques seuls les appels au bios sont fiable
le PPI doit être initialisé au boot
il faut chercher dans un datasheet de 8255 PPI les commandes a envoyer et rechercher les ports dans la rom
Assembleurs et périphériques du MSX c'est ici 
http://msxvillage.fr/download/?url=/18-livres-msx/180-assembleur-et-peripheriques-des-msx/

http://msxvillage.fr/download/?url=/18-livres-msx/180-assembleur-et-peripheriques-des-msx/

Merci pour les ports 
J'avais aussi remarqué que certaines ROM n'étaient pas pareils, ça c'est un truc que je n’ai jamais compris ... un MSX1 est un MSX1 !!!!!
Citation:
C'est exactement ce que je cherchais

J'avais aussi remarqué que certaines ROM n'étaient pas pareils, ça c'est un truc que je n’ai jamais compris ... un MSX1 est un MSX1 !!!!!
Citation:
le PPI doit être initialisé au boot
C'est exactement ce que je cherchais

Oui il faut initialiser les 3 ports du PPI au boot, mais c'est forcement dictée par la configuration hardware !
Donc tous les MSX aurons la même configue
Si j'ai bien compris le clavier est lu sur le port B du PPI, et les bits 0-3 du port C interroge le numéro de colonne .
Donc tous les MSX aurons la même configue

Si j'ai bien compris le clavier est lu sur le port B du PPI, et les bits 0-3 du port C interroge le numéro de colonne .
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie