[Minitel] dé-programmation d'obsolescence et reprogrammation

Si vous n'avez pas trouvé de catégorie correspondante ci-dessus, regroupe les discussions plus générales et à l'occasion peut aussi abriter un fil sur les vieilles consoles de jeux.

Modérateurs : Papy.G, fneck, Carl

Avatar du membre
irios
Messages : 3213
Enregistré le : 04 nov. 2007 19:47
Localisation : Rochefort du Gard (30)
Contact :

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par irios » 27 oct. 2014 20:25

La TripleX peut être adaptée au Minitel. Il faut connaitre le cahier des charges exact afin de pouvoir faire l'interopérabilité des systèmes. :mrgreen:
http://irioslabs.over-blog.com/

La connaissance ne vaut que si elle est partagée par tout le monde.
I2C

Avatar du membre
Papy.G
Modérateur
Messages : 1965
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par Papy.G » 01 nov. 2014 14:38

Bienvenue, il me semble que le tutoiement est de rigueur sur ce forum, ne bousculons donc pas les conventions. ;)

Ton minitel a déjà des broches soudées sur le port d'extension? Ce n'est pas le cas de mon 8052.

Je pense que le connecteur SD a plus sa place directement sur des lignes dédiées, à moins de faire un système qui lit la SD en 4bits, et renvoie vers le microcontrôleur en 8bits, voire même prend en charge tout ou partie du protocole FAT pour en tirer la meilleure performance.

Pour le modem, il se pourrait que les composants ne fassent réellement que de la modulation/démodulation/séparation sur les lignes série du microcontrôleur, et que tout le reste ne soit que du soft. Nous le saurons assez vite en analysant la rom du minitel, j'ai envoyé l'eprom de mon 8032 à un membre de ce forum pour qu'en soit fait le dump. Ce serait une bonne nouvelle, car ainsi, on ne serait peut-être pas limité au 75-1200 bauds.

Pour l'aiguillage des lignes A8-A15 vers le clavier, nullement besoin de réinventer la roue, il existe sur la carte-fille rom. Mais comme il n'y a pas de ram, il n'y a pas conflit avec les lectures sur périphérique, c'est pourquoi j'avais pensé à un dispositif permettant de masquer ou non certaines adresses ram avec les accès périphériques. Si cela t'intéresse, je ne sais plus si je l'ai déjà dit, mais sur la carte-fille rom, il y a ces composants: réseau de résistances, LS00, LS244, LS373, puis la ROM 27C64, ça te donne une idée de l'organisation du truc. La Rom en DIP28 peut faire jusqu'à 16Ko, ce qui m'empêche de mettre mon eeprom 2K DIP24 directement dans le support, et le CE du 9345 est en direct avec la ligne A15.
Ceci dit, je suis curieux de voir exactement comment est utilisé le clavier, comment fonctionne exactement le décodage de la matrice, alors, nous pourrons avancer dans le choix de nos solutions matérielles.

En fait, il va falloir savoir précisément comment est câblé chacun des périphériques présent sur la carte-mère, ses bus adresse et données, comment il est sélectionné, s'il peut générer une interruption, et laquelle, le cas échéant.

Le partage des documents est fortement conseillé, via le forum serait l'idéal, mais je ne sais s'il y a de l'espace dédié disponible.

Pour la TripleX, je me demande si c'est intéressant, comme l'on va devoir faire déjà une carte, autant directement implémenter les fonctions dessus, comme au moins la RTC, le son et peut-être les ports multi-usages, ce sera peut-être plus simple. De plus, mon modèle mémoire permet d'être directement compatible avec des projets prévus pour tourner en direct sur un minitel 8032 non modifié, ou avec un 8052 substitué.
J'avais pensé implémenter du réseau, existe-t'il des composants 10bt accessibles en parallèle, avec tampons, et gestion du protocole, simples à implémenter?
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

fff
Messages : 8
Enregistré le : 27 oct. 2014 17:26

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par fff » 01 nov. 2014 20:33

Papy.G a écrit :Ton minitel a déjà des broches soudées sur le port d'extension? Ce n'est pas le cas de mon 8052.
Oui, des broches sont déjà soudées, comme sur cette photo : http://www.tomshardware.fr/articles/min ... 78-16.html
Par ailleurs, j'ai été très étonné quand j'ai trouvé ce topic d'apprendre que tu as un Minitel avec 8032 et ROM externe sur carte fille.
S'agit-il d'un prototype, ou de tels modèles ont-ils été distribués aux particuliers ?
Papy.G a écrit :Je pense que le connecteur SD a plus sa place directement sur des lignes dédiées, à moins de faire un système qui lit la SD en 4bits, et renvoie vers le microcontrôleur en 8bits, voire même prend en charge tout ou partie du protocole FAT pour en tirer la meilleure performance.
C'est ce que je pense aussi.
Seulement, il n'y a guère de lignes dédiées non déjà utilisées sur le microcontrôleur. Il y a la broche P3.2 du 8052, et éventuellement les trois broches qui servent à la sélection des lignes de la matrice clavier, que l'on pourrait peut-être simultanément utiliser pour la carte SD. (Ces quatre broches sont reliées aux quatre trous juste en dessous de l'emplacement pour le CI de 8 pattes.)
Or, comme je souhaitais implémenter quelques autres fonctionnalités, j'avais besoin de plus de lignes d'entrée/sortie libres. C'est pourquoi j'ai, sur le schéma de la carte que j'ai commencé, que je joins à ce message, ajouté un port de 8 entrées et 8 sorties directement adressable par le microcontrôleur.
Après, bien sûr, s'il y a moyen de relier la carte SD et autres périphériques additionnels d'une autre manière et se passer du port d'E/S supplémentaire sur la carte d'extension, je suis preneur.
Papy.G a écrit :j'ai envoyé l'eprom de mon 8032 à un membre de ce forum pour qu'en soit fait le dump.
Ah, superbe ! :D

J'avais prévu un jumper sur la carte fille, entre la broche EA du 8052 et la masse. Je me disais que si le 8052 supportait les changement d'état de la ligne EA pendant qu'il est sous tension, on pouvait réaliser un dump de la ROM interne de la manière suivante :
[*] on met, au début de la ROM externe, après les diverses instructions d'initialisation, un saut à l'adresse 0x1000 (ou plus) ;
[*] à cette adresse on place un programme qui attend que l'utilisateur appuie sur une touche, et puis qui dump la ROM interne (accessible de 0x000 à 0xFFF, lorsque la broche EA est à l'état électrique haut).
Et on fait les manipulations suivantes :
[*] sur la carte fille on place le jumper qui met EA à la masse afin de permettre au 8052 de démarrer sur la ROM externe ;
[*] on allume le Minitel, qui va donc démarrer sur la ROM externe ;
[*] pendant que le programme attend l'appui sur une touche, on déconnecte le jumper ; EA passe ainsi à l'état haut, et on a les adresses 0x000 à 0xFFF (de l'espace programme) qui correspondent à la ROM interne et les adresses 0x1000 à 0xFFFF qui correspondent à la ROM externe ;
[*] après avoir déconnecté le jumper, on appuie sur une touche ; le programme (externe) va alors faire un dump de 0x000 à 0xFFF (il faut utiliser l'instruction MOVC je crois... à vérifier, je ne sais plus...).

En résumé, on utilise le fait que, si EA# = 0, tout l'espace programme de 0x0000 à 0xFFFF pointe vers la ROM externe, et que si EA# = 1, on a la ROM interne de 0x0000 à 0x0FFF et la ROM externe de 0x1000 à 0xFFFF. Après, reste à savoir si le 8052 "latch" (quel est le terme technique en français ?) l'état de la ligne EA lors de sa mise sous tension, ou si l'on peut faire varier l'état de EA n'importe quand pendant le fonctionnement de l'appareil. La datasheet ne précise rien à ce sujet.

Mais bon, tu as la chance d'avoir le programme du Minitel sur une ROM externe, c'est bien plus pratique ! :)
Quoiqu'il pourrait quand même être intéressant de comparer d'éventuelles différences entre les deux programmes. Mais chaque chose en son temps...
Papy.G a écrit :Pour l'aiguillage des lignes A8-A15 vers le clavier, nullement besoin de réinventer la roue, il existe sur la carte-fille rom.
Veux-tu dire que les connexions entre les lignes A8-A15 et le clavier sont faites par la carte fille, et pas sur la carte mère du Minitel avec 8032 ? Sur mon Minitel, elles sont faites sur la carte mère par les shunts S03 à S10. C'est pour ça que je disais qu'il fallait les dessouder si l'on branchait une carte fille.
Papy.G a écrit :je suis curieux de voir exactement comment est utilisé le clavier, comment fonctionne exactement le décodage de la matrice, alors, nous pourrons avancer dans le choix de nos solutions matérielles.
Je joins le schéma de la carte mère.
Comme tu peux le voir (fichier 3), les lignes P1.1, P1.0 et P1.2 du microcontrôleur sont reliées à un 74LS156, ici utilisé comme décodeur 3 bits (sélection d'une ligne parmi huit). Les sorties du 74LS156 sont actives bas et à collecteur ouvert, donc la ligne sélectionnée est mise à la masse tandis que les sept autres sont flottantes. Les huit sorties partent vers la nappe clavier. Huit autre connexions de la nappe clavier vont, via les shunts, au port 2 du 8052 (A8-A15). Les touches du clavier créent directement des connexions entre les huit sorties du décodeur et les huit lignes du port 2. On remarque que ces dernières n'ont, pour la plupart, pas de résistance de tirage au +5V, donc je suppose que le 8052 possède déjà des résistances de tirage internes, pour le port 2 au moins. À vérifier dans la datasheet.
Papy.G a écrit :En fait, il va falloir savoir précisément comment est câblé chacun des périphériques présent sur la carte-mère, ses bus adresse et données, comment il est sélectionné, s'il peut générer une interruption, et laquelle, le cas échéant.
Le seul périphérique câblé sur les bus d'adresse et de données est l'EF9345. Les autres périphériques qui sont reliés au microcontrôleur (modem, prise péri-informatique, ...) le sont via des lignes dédiées.

L'EF9345 possède un bus d'adresse de 8 bits, qui est relié aux lignes A0-A7 du 8032/8052.
Sur mon Minitel, sa broche de sélection est activée en permanence, grâce à un shunt entre celle-ci et la masse. Elle est aussi reliée au connecteur d'extension.
La sélection de l'EF9345 est intéressante. Celui-ci est sélectionné quand ces deux conditions sont réunies (cf. la datasheet) : la broche de sélection est mise à la masse, et les lignes A7,A6,A5,A4 sont égales, respectivement, à 0,0,1,0.
C'est très pratique : cela permet de simplifier un peu le circuit de décodage d'adresse sur la carte fille.

En ce qui concerne les interruptions, le 8052 possède deux possibilités d'interruptions externes, via les pattes P3.2 et P3.3 (repectivement INT0# et INT1#).
La patte P3.3 est reliée à la patte 11 du TIC FCC, donc peut-être que celui-ci génère une interruption. Mais elle est aussi reliée à un trou nommé RXDN sur le circuit imprimé, donc je penche plutôt pour une simple entrée ou sortie (RX vis-à-vis du FCC ou du 8052 ? Je dirais par rapport au 8052, mais je n'en ai pas la certitude.).
Quant à la patte P3.2, elle est reliée à l'emplacement non occupé du CI à 8 pattes et à un trou nommé P32. Puisqu'elle est totalement libre, on pourrait éventuellement l'utiliser sur la carte fille, si besoin il y avait de générer des interruptions.
Papy.G a écrit :Le partage des documents est fortement conseillé, via le forum serait l'idéal, mais je ne sais s'il y a de l'espace dédié disponible.
Comme dit plus haut, je joins le schéma de la carte mère et le schéma de mon projet de carte fille.
Quelques points à propos de celui de la carte mère :
[*] je ne garantis pas que le schéma que j'ai réalisé soit exempt d'erreur :P ;
[*] les feuilles 2 et 3 doivent être visualisées côte à côte ; il y a des connexions qui vont d'une feuille sur l'autre ;
[*] les composants dont le numéro commence par un # (exemples : R#3, Z#1) n'ont pas d'emplacement, de trous prévus, sur le circuit imprimé, ils ont été rajoutés sur la face sans composants, soudés sur des connexions déjà existantes, et n'ont donc pas de référence écrite sur le circuit imprimé ;
[*] les composants à côté desquels j'ai écrit "NP" (non-populated) en vert, ont un emplacement sur le circuit imprimé, mais sont absents ;
[*] un petit cercle symbolise un trou (avec connexion) sur le circuit imprimé, la dénomination qui figure à côté est celle inscrite sur le circuit imprimé sauf si elle est entre parenthèses, auquel cas il n'y a pas d'inscription sur le circuit imprimé et j'ai alors choisi la dénomination ;
[*] les dénominations en rouge écrites près d'une connexion sont des liaisons globales : elles sont reliées à toutes les autres dénominations du même nom sur la même feuille ou sur d'autres feuilles.
Je crois que c'est tout ce qu'il y a dire pour le schéma. Si une partie de celui-ci n'est pas claire, pas lisible, si quelqu'un a une question, n'hésitez pas à me demander.
Papy.G a écrit :De plus, mon modèle mémoire permet d'être directement compatible avec des projets prévus pour tourner en direct sur un minitel 8032 non modifié, ou avec un 8052 substitué.
Pourrais-tu être un peu plus précis ? Je ne suis pas sûr de bien comprendre ce que tu veux dire.
Papy.G a écrit :J'avais pensé implémenter du réseau, existe-t'il des composants 10bt accessibles en parallèle, avec tampons, et gestion du protocole, simples à implémenter?
En effet, ce serait très intéressant.
J'ai fait une petite recherche de contrôleurs ethernet sur Mouser : http://www.mouser.fr/Semiconductors/Com ... ricing%7c0
(J'ai retiré les composants en boitier du genre BGA ou QFN des résultats de la recherche...)
Je n'ai pas encore eu le temps de regarder les composants qui sont sorti de cette recherche, mais j'ai vu qu'il y en avait en interface parallèle : l'ENC424J600 et l'ENC624J600 de Microchip.
Sinon, il y a aussi des contrôleurs qui s'interfacent avec un bus SPI. Puisque l'on compte interfacer la carte SD avec du SPI, pourquoi pas aussi le contrôleur Ethernet ? Mais bon, l'interface parallèle est beaucoup plus rapide je suppose, alors pourquoi s'en priver...

Les deux ENC que j'ai mentionné peuvent être configurés en bus de données 8 bits ou 16 bits, multiplexé ou non suivant le modèle. Voir les différentes configurations au chapitre 5.1 de la datasheet (http://www.mouser.com/ds/2/268/39935b-29829.pdf).
Il faut que je lise la datasheet en détail, mais il me semble que le mode multiplexé doit être compatible avec celui du 8032/8052.
Sans aller dans les détails, on a donc, si l'on utilise ce contrôleur, deux possibilités :
[*] utiliser l'ENC424J600 ou l'ENC624J600 en mode 8 bits multiplexé, en le reliant directement aux bus du microcontrôleur ;
[*] utiliser l'ENC624J600 en mode 8 bits non-multiplexé, en le reliant au bus démultiplexé de la carte fille (si je ne me trompe pas, sur la carte fille de ton 8032 c'est le LS373 qui fait le démultiplexage ; sur mon projet de carte fille j'ai mis un 573 mais c'est quasiment pareil).
L'ENC424 a 44 pattes, le 624 en a 64. Les deux coûtent presque le même prix, à 30 centimes près.



P.S. : en fait le fichier du schéma de la carte mère est trop gros pour le forum. Voici donc un lien : http://demo.ovh.eu/fr/de597070a679f73f9a08b80025fb8f7c/
Fichiers joints
Carte d'extension.pdf.zip
(71.17 Kio) Téléchargé 74 fois
Modifié en dernier par fff le 07 déc. 2014 13:52, modifié 6 fois.

Marcopolo

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par Marcopolo » 01 nov. 2014 21:03

Bonsoir,

Pour la connexion ethernet, il vaudrait mieux prendre un circuit de chez Wiznet avec la stack TCP/IP intégrée.
Il me parait impossible d'implémenter TCP/IP de façon utilisable sur un 8032.

Marc.

fff
Messages : 8
Enregistré le : 27 oct. 2014 17:26

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par fff » 01 nov. 2014 22:08

Ah, d'accord ! Merci beaucoup pour ces renseignements. :)
Je n'y connais absolument rien en Ethernet, TCP/IP et compagnie. Tout conseil en la matière est donc le bienvenu.

Avatar du membre
6502man
Messages : 9547
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par 6502man » 04 nov. 2014 11:04

Très intéressant ces détails techniques :D

Merci pour les schémas même si je n'ai pas pu encore les récupérer cause de mail :?

La programmation des 8032/8052 m’intéressent par contre comment mettre en oeuvre les programmes sur un Minitel ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

Avatar du membre
Papy.G
Modérateur
Messages : 1965
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par Papy.G » 04 nov. 2014 18:09

Mon 8032 semble tout à fait normal, délivré à une entreprise normale qui n'avait aucune raison apparente d'obtenir un prototype, la carte porte le numéro OS0826740102-1 et sous le connecteur clavier "CadreX 1-86/22"

J'avais occulté l'utilisation de ces lignes aussi pour le clavier, il n'y a pas une ligne en plus qui sert de Select et qui ne serait pas utilisée par une connexion SD?

Par ailleurs, pour l'utilisation de flash parallèle comme prévu dans ton schéma, si tu veux y écrire, les vieux 8032 n'ont pas de timing réglable, il est donc impossible d'écrire directement dans une flash si elle n'a pas de maintient interne ou de timing adéquat. Je m'explique, le microcontrôleur va poser les données sur les lignes de la flash, mais juste après (quelques cycles d'horloge, à déterminer avec le datasheet), va accéder à la rom sur ces mêmes lignes pour le fetch de l'instruction suivante. C'est pour ceci que je préfère l'utilisation de Sram, éventuellement avec une pile, si des valeurs doivent être conservées.
fff a écrit :J'avais prévu un jumper sur la carte fille, entre la broche EA du 8052 et la masse. Je me disais que si le 8052 supportait les changement d'état de la ligne EA pendant qu'il est sous tension, on pouvait réaliser un dump de la ROM interne de la manière suivante ...
J'y ai pensé aussi, mais j'ai peur que le Microcontrôleur ne supporte pas les changement d'état de cette broche sous tension, cela pourrait, au mieux, le planter, au pire, le cramer. Il est possible aussi de lire la rom en mode vérification, il faut pour cela, dessouder le 8052. Ayant une Rom externe sous la main, nous somme à l'abri de cette nécessité ultime.
fff a écrit :Veux-tu dire que les connexions entre les lignes A8-A15 et le clavier sont faites par la carte fille, et pas sur la carte mère du Minitel avec 8032 ? Sur mon Minitel, elles sont faites sur la carte mère par les shunts S03 à S10. C'est pour ça que je disais qu'il fallait les dessouder si l'on branchait une carte fille.
Exactement, les shunts 03 à 10 sont absents sur ma carte-mère, je pense que tous les ponts marqués Sxx (au lieu de Ax où x est la longueur dudit pont, au passage) servent la modularité des configurations possibles.

Je n'arrive pas à me mettre concrètement le fonctionnement du 156 dans le crâne, mais j'ai bien une idée vague. Je me pencherais dessus pour le rapprocher du schéma de matrice clavier que j'ai mis en lien plus haut, et ainsi faire un tableau de décodage complet.
Ceci dit, cela confirme que le clavier est adressé en dehors de l'espace/accès mémoire.
Il me semble avoir lu dans la Datasheet que le 8052 a des résistances interne de tirage faibles qui permettent de forcer en externe selon que l'on veut haut ou bas par défaut sans tout cramer, il est aussi fait mention d'une charge totale à ne pas dépasser par groupe de huit lignes (port).
fff a écrit :Le seul périphérique câblé sur les bus d'adresse et de données est l'EF9345. Les autres périphériques qui sont reliés au microcontrôleur (modem, prise péri-informatique, ...) le sont via des lignes dédiées.
C'est presque une bonne nouvelle, il est un peu dommage de devoir faire un masquage mémoire juste pour un périphérique.
Sur ta carte, il faudra couper un des bouts du fil qui relie le CS à la la masse, car il sert aussi à relier les masses d'une face à l'autre.
Sur la carte-fille d'origine du 8032, c'est la broche A15 qui active le CS, solution à éviter aussi, à mon avis.

Pour l'utilisation de la broche P3.3, on saura assez rapidement si elle sert comme interruption en désassemblant la Rom.
Comme le format de transmission du minitel intègre des bits de start et stop, elle peut servir à la fois comme interruption en début de transmission, et comme ligne de données en cours de transmission, la fonction de la broche pouvant être modifiée à la volée.
Simplement, interruption sur cette broche, on lance un timer générant une autre interruption répétée, qui vient donc tester l'état de cette broche régulièrement puis stocke dans un registre en shiftant, jusqu'au bit de stop ou l'on réactive l'interruption externe et on verse l'octet contenu dans le registre que l'on vient de remplir là où il doit aller. C'est un peu plus lourd à gérer que le port série interne, mais à 1200 bauds maxi, le microcontrôleur a le temps de faire foule de choses dans les intervalles.
C'est d'ailleurs curieux, la broche P1.6 est nommée TDN... :wink:
La patte 3.2, comme l'autre, peut aussi servir avec un générateur d'horloge interne, je me demandais comment l'appliquer à une utilisation pour port SD, sachant qu'elle peut servir pour la détection soft d'insertion de carte.
fff a écrit :[*] les composants dont le numéro commence par un # (exemples : R#3, Z#1) n'ont pas d'emplacement, de trous prévus, sur le circuit imprimé, ils ont été rajoutés sur la face sans composants, soudés sur des connexions déjà existantes, et n'ont donc pas de référence écrite sur le circuit imprimé
J'ai des composants "volants" sur la carte-mère de mon 8032, dont certains ont été intégrés au tracé sur celle du 8052, qui est plus récente.
fff a écrit :Pourrais-tu être un peu plus précis ? Je ne suis pas sûr de bien comprendre ce que tu veux dire.
Le but de mon modèle mémoire est de pouvoir charger des rom binaires directement et de les exécuter sans modifs, des roms qui pourraient être utilisées en fixe, avec une carte-fille rom plus simple que ce que nous envisageons, ou même d'exécuter la rom d'origine du minitel, sans modifs, là encore (ou si peu, selon le câblage du /CS du 9345).
fff a écrit :Sinon, il y a aussi des contrôleurs qui s'interfacent avec un bus SPI. Puisque l'on compte interfacer la carte SD avec du SPI, pourquoi pas aussi le contrôleur Ethernet ? Mais bon, l'interface parallèle est beaucoup plus rapide je suppose, alors pourquoi s'en priver...
Oui, le SPI n'est pas pris en charge nativement par les vieux 8052, il est donc très demandeur de ressources, sans même compter que la vitesse du processeur ne permettrait pas de récupérer les données sans tampon.


6502man> Ses travaux sont plus avancés que les miens, mais il semble avoir une connaissance des circuits logiques de base qui me fait cruellement défaut.

La mise en œuvre des programmes est le principal problème, surtout lorsque l'on n'a qu'un modèle à base de 8052 sous la main, sinon, c'est eprom ou simulateur dans le support de rom. Mais l'autre problème est de pouvoir changer le programme sans manipulations matérielles, il faut donc faire en sorte de pouvoir charger un programme dans une mémoire inscriptible, mais comme il faut aussi faire booter le système, prévoir un dispositif activant l'accès soit à la Ram, soit à la Rom pour piocher le code.
Pour le 8052, le début de programme c'est un saut par-dessus les vecteurs d'interruptions (si tu utilises des interruptions) ou vers une adresse où tu veux dans les 64k adressables (trois octets dédiés en tête), ensuite, les vecteurs, après, tu change le début de pile, si tu veux utiliser les banks de registres.
Ou alors, je n'ai pas compris ta question.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

fff
Messages : 8
Enregistré le : 27 oct. 2014 17:26

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par fff » 04 nov. 2014 20:07

Papy.G a écrit :J'avais occulté l'utilisation de ces lignes aussi pour le clavier, il n'y a pas une ligne en plus qui sert de Select et qui ne serait pas utilisée par une connexion SD?
Tu veux dire une ligne pour sélectionner le clavier ? Si oui, alors non il n'y en a pas. Il y a toujours une des huit lignes de la matrice clavier qui est activée, et donc toujours des données potentiellement présentes sur P2.0-P2.7 (enfin, sur mon modèle, avec les shunts).
Papy.G a écrit :Par ailleurs, pour l'utilisation de flash parallèle comme prévu dans ton schéma, si tu veux y écrire, les vieux 8032 n'ont pas de timing réglable, il est donc impossible d'écrire directement dans une flash si elle n'a pas de maintient interne ou de timing adéquat. Je m'explique, le microcontrôleur va poser les données sur les lignes de la flash, mais juste après (quelques cycles d'horloge, à déterminer avec le datasheet), va accéder à la rom sur ces mêmes lignes pour le fetch de l'instruction suivante. C'est pour ceci que je préfère l'utilisation de Sram, éventuellement avec une pile, si des valeurs doivent être conservées.
Juste une petite rectification, il s'agit d'une EEPROM. Enfin, de toute façon, je crois que les flash s'interfacent de la même manière ?

Effectivement tu as raison, les flash/EEPROM ont un temps d'écriture bien trop élevé. Mais j'ai pensé à un moyen pour pouvoir quand même écrire dessus :
[*] on copie la routine d'écriture sur l'EEPROM dans la RAM ;
[*] on fait un saut à cette routine, dans la RAM (le câblage des mémoires sur la carte fille permettant au 8032/8052 d'exécuter du code aussi bien depuis l'EEPROM que depuis la RAM) ;
[*] lorsque le µC arrive à une instruction qui demande une écriture dans l'EEPROM, il va poser les données sur les lignes de cette dernière, mais juste après il va passer à l'instruction suivante, qui elle se trouvera dans la RAM ; donc tout va bien pour le flot d'exécution, et l'EEPROM peut effectuer l'écriture des données sans être perturbée par une demande de lecture qui arrive trop vite ;
[*] dans la routine d'écriture (toujours dans la RAM donc), on attend que l'EEPROM ait terminé l'écriture en cours avant d'en solliciter une nouvelle.
Pour ce dernier point, on peut faire des lectures répétées (polling) de l'EEPROM. En effet, on peut faire des lectures sur celle-ci pendant un cycle d'écriture, et elle signale selon que l'écriture est terminée ou non en renvoyant certaines données. En tout cas, c'est le cas sur l'AT28C256 d'Atmel (cf. sections 4.4 et 4.5 de la datasheet : http://www.atmel.com/Images/doc0006.pdf). Il me semble, mais peut-être que je me trompe, que ce comportement est universel à toutes les EEPROM. Si ce n'est pas le cas, on peut toujours remplacer le polling par une simple attente, suffisamment longue.

Je pense que ça devrait marcher (?).
Papy.G a écrit :J'y ai pensé aussi, mais j'ai peur que le Microcontrôleur ne supporte pas les changement d'état de cette broche sous tension, cela pourrait, au mieux, le planter, au pire, le cramer. Il est possible aussi de lire la rom en mode vérification, il faut pour cela, dessouder le 8052. Ayant une Rom externe sous la main, nous somme à l'abri de cette nécessité ultime.
Ah oui, c'est vrai qu'il y a le mode vérification. Mais bon, j'ai pas trop envie de le dessouder juste pour ça, surtout si tu as une ROM externe. :P
Cramer ? Que ça puisse le planter, je le comprends. Mais le détruire, juste en changeant l'état d'une ligne, c'est possible ça ?
Papy.G a écrit :Je n'arrive pas à me mettre concrètement le fonctionnement du 156 dans le crâne, mais j'ai bien une idée vague. Je me pencherais dessus pour le rapprocher du schéma de matrice clavier que j'ai mis en lien plus haut, et ainsi faire un tableau de décodage complet.
C'est super que tu aies pu dénicher le schéma de la matrice. Merci beaucoup :)
Papy.G a écrit :Sur ta carte, il faudra couper un des bouts du fil qui relie le CS à la la masse, car il sert aussi à relier les masses d'une face à l'autre.
Sur la carte-fille d'origine du 8032, c'est la broche A15 qui active le CS, solution à éviter aussi, à mon avis.
Ah, c'est vrai, j'avais oublié ça. Tu fais bien de me le rappeler. :wink:
Et activer le CS avec A15 est en effet à éviter. Perdre la moitié de l'espace d'adressage juste pour l'EF9345, c'est pas terrible. :P
Papy.G a écrit :Comme le format de transmission du minitel intègre des bits de start et stop, elle peut servir à la fois comme interruption en début de transmission, et comme ligne de données en cours de transmission, la fonction de la broche pouvant être modifiée à la volée.
C'est très astucieux. Je n'y avais pas pensé.
Papy.G a écrit :C'est d'ailleurs curieux, la broche P1.6 est nommée TDN...
En effet...
Papy.G a écrit :La patte 3.2, comme l'autre, peut aussi servir avec un générateur d'horloge interne, je me demandais comment l'appliquer à une utilisation pour port SD, sachant qu'elle peut servir pour la détection soft d'insertion de carte.
Les connecteurs pour carte SD ont (peut-être pas tous) un petit interrupteur qui se ferme quand la carte est insérée.
Si la seule interruption que l'on souhaite générer sur le patte 3.2 est pour l'insertion d'une carte SD, alors c'est facile : il suffit de mettre une résistance de tirage sur la patte 3.2, et de relier l'interrupteur de détection à la masse d'un côté et à P3.2 de l'autre. Enfin, ça, c'est en théorie. Le problème c'est qu'on risque d'avoir des problèmes de rebond (bouncing) au niveau de l'interrupteur, et ça c'est pas bon du tout pour une patte d'interruption. Il faut alors prévoir un circuit RC pour le "deboucing" et un buffer à trigger de Schmitt pour générer un signal propre. C'est pas amusant de rajouter tous ces composants pour un simple interrupteur, mais c'est plus prudent. Je ne détaille pas plus parce que ce serait beaucoup trop long, mais il y a un excellent document (en anglais) qui traite du rebond des interrupteurs : http://www.eng.utah.edu/~cs5780/debouncing.pdf. Pour notre cas, le circuit à utiliser est celui de la page 12, mais en remplaçant la porte inverseuse par une porte non-inverseuse (à trigger de Schmitt).

En revanche, si l'on veut pouvoir détecter aussi bien les insertions de carte que les éjections, c'est plus compliqué. Il faut concevoir un circuit qui transforme les changements d'état 0-->1 et 1-->0, correspondant à l'ouverture et à la fermeture de l'interrupteur, en de brefs pics 1-->0-->1 à appliquer sur la patte 3.2.

fff
Messages : 8
Enregistré le : 27 oct. 2014 17:26

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par fff » 04 nov. 2014 21:27

6502man a écrit :Merci pour les schémas même si je n'ai pas pu encore les récupérer cause de mail
J'ai modifié le lien. Plus besoin de donner d'adresse mail maintenant. :wink:

Avatar du membre
6502man
Messages : 9547
Enregistré le : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par 6502man » 04 nov. 2014 22:01

Impossible de récupérer le fichier (plein de fenêtres d'alerte antivirus), le navigateur n'ouvre plus la page il considère la page malveillante :twisted:


Tu peux utiliser plutôt le service d'OVH c'est sûr et pratique : OVH PARTAGE DE FICHIERS
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.

fff
Messages : 8
Enregistré le : 27 oct. 2014 17:26

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par fff » 05 nov. 2014 12:08

Ah, décidément...
J'ai remis à jour le lien, en utilisant le service d'OVH. C'est bon à connaitre.
Mille excuses pour le site malveillant, il m'avait l'air tout à fait légitime et il marchait très bien la veille. Mais effectivement, quand aujourd'hui j'y retourne il me fait télécharger des programmes malveillants à la place du fichier d'origine ! Les fourbes !

Jeff_HxC2001
Messages : 296
Enregistré le : 20 mars 2011 14:24

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par Jeff_HxC2001 » 14 nov. 2014 08:53

J'avais aussi imaginé une carte de ce genre pour le Minitel 2 en 2008 pour le transformer en véritable petit micro :

Le "Minitel 2 Power Pack" :
http://hxc2001.free.fr/minitel/MinitelPowerPack_sch.gif

64Ko de RAM + 64Ko d'EPROM + un CPLD pour le memory banking.
L'ensemble se place juste dans le socket de l'EPROM du Minitel 2.

La SD était prévue d'être connecté sur le port externe.

fff
Messages : 8
Enregistré le : 27 oct. 2014 17:26

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par fff » 14 nov. 2014 11:57

Jolie idée que de placer la carte sur le socket de l'EPROM :wink:
Jeff_HxC2001 a écrit :La SD était prévue d'être connecté sur le port externe.
Quel est ce port externe ? J'ai lu ta page web "Étude technique du Minitel" mais je n'en vois mention nulle part. Excuse-moi si je l'ai juste bêtement raté.

Je profite de ta présence sur le forum pour te poser une question à propos de l'époustouflante démo que tu as réalisée pour le Minitel 2. À la fin de la vidéo, dans le passage avec les cercles qui grossisent, je suppose que pour afficher ces cercles tu as définis tes propres caractères pour le TS9347. On peut voir que l'animation est bien continue, donc avec toutes les différentes tailles de cercles, cela doit faire énormément de caractères à définir, non ? As-tu défini tous les caractères au préalable (je ne sais même pas s'il y assez de place pour cela dans la RAM du TS9347...), ou est-ce que le Minitel génère, à chaque frame de l'animation, les caractères nécessaires à cette frame ? Ou est-ce que je suis complètement à côté de la plaque ? :P

Avatar du membre
Papy.G
Modérateur
Messages : 1965
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par Papy.G » 20 nov. 2014 10:33

Jeff> Tu m'avais fait parvenir ce draft par minitel, je n'avais pas relevé que le support d'eprom avait tant de broches, ni qu'il était si complet. Il me semble avoir vu des Minitels 2 sur le net, avec une carte à plat comme serait la tienne.

Tu prévoyais le banking en blocs complets de 32K en tête d'adressage, avec possibilité d'écrire en rom?

Le CPLD peut gérer une partie du protocole de la SD, pour décharger un peu le Microcontrôleur?

fff> Le socket de l'Eprom semble être un connecteur de bus complet, il dispose de huit broches de plus que celui des minitels alcatel.

Le port externe sur le schéma, broches TMS/TDI/TDO/TCK, je pense, à moins que ce ne soit le port série du minitel.

Dans la Démo, on voit bien à plusieurs moments que les motifs sont un dallage de 4x2,5 zones de 10x10 caractères, ce sont les caractères qui sont redéfinis entre chaque image, le 9347 n'a que 8Ko de ram dans ce minitel aussi, il n'y a donc pas assez de jeux pour prédéfinir toute l'animation, mais suffisamment pour faire du multi-buffering et n'afficher un jeu de caractère que lorsqu'il a pu être totalement chargé, si le temps entre deux balayages n'est pas suffisant.
Par contre, une question intéressante serait: les animations 3D et les cercles sont-ils calculés à la volée, ou mémorisés dans la Rom?
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Avatar du membre
Papy.G
Modérateur
Messages : 1965
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Minitel dé-programmation d'obsolescence et reprogrammation

Message par Papy.G » 05 déc. 2014 11:44

Me voilà pour quelques news:
J'ai enfin reçu le Dump de la Rom, il semble que du code soit présent dans tous les emplacements de Vecteurs d'interruptions, à savoir s'il servent réellement tous, ou si ce serait du déchet de programme ou reste de débug.
Elle est téléchargeable ici (Fneck, si tu peux rapatrier le fichier sur un serveur pérenne pour homogénéiser les sources avec le forum, STP, pas que je ne veuille pas le faire, mais si je le fait par le formulaire, je ne voudrais pas qu'il soit placé à un endroit pas évident d'accès. Merci.)
J'utilise Hexfiend sur Mac, et je décode à la main. Quelqu'un a un ide qui désassemble du 8051 en interface graphique, j'ai cherché chez Atmel, il semble que ce soit en mode terminal, au pire, j'essaierais.

Je ne me suis pas encore penché sur le câblage du clavier. :oops:

Pour mes fichiers PDF, j'ai rassemblé tous les liens, pour ceux qui veulent se faire une doc papier, ça supporte l'impression sur A5. Perso, je me suis fait des petits livrets sympas en recto-verso, assez compacts:

"le Microcontrôleur 8051/8052", excellente introduction et référence, et en français, d'Abdelmajid Oumnad.
Le jeu d'instructions seul.
La datasheet complète Atmel pour les 8051.
Celle du 9345.
Modifié en dernier par Papy.G le 05 déc. 2014 13:49, modifié 1 fois.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Répondre