#Carte d’extension pour Minitel 1B
Cette page est composée d’extraits d’un mémoire beaucoup plus détaillé que j’ai rédigé en 2016. Vous pouvez le télécharger en cliquant ici (.pdf 18 Mo).
Mots-clés
FPGA, CPLD, Verilog, JTAG, SVF, Boundary-Scan Testing, microcontrôleur, assembleur, EEPROM, SRAM, mémoire, programmation in situ, voltage level shifting, SPI, bus, contrôleur, périphériques, interruptions, décodeur d’adresse, registres, carte SD, crayon optique, synchronisation vidéo, audio, DAC
Résumé
Le Minitel est un standard de terminal-modem informatique mis à disposition des particuliers en France par l’État entre 1980 et 2012. L’architecture de certains modèles constitue la base d’un micro-ordinateur et a été conçue de façon à permettre une évolution technique par l’ajout d’une carte fille. À ma connaissance, aucun produit tirant parti de cette possibilité n’a jamais été commercialisé à l’époque.
Ce projet consiste en la conception et la fabrication d’une telle carte fille, avec comme principales fonctions l’extension de la mémoire et la connexion de divers périphériques dont un crayon optique (dispositif de pointage).
À cette fin, j’ai reconstitué le schéma électrique d’un Minitel 1B Télic-Alcatel à partir du circuit imprimé puis conçu une carte fille compatible répondant à un ensemble de critères.
Introduction
L’idée de ce projet prend sa source vers la fin de l’année 2014 lorsque, par curiosité, je démontais un Minitel 1B Télic-Alcatel pour en étudier le fonctionnement. Je remarquai que les concepteurs de l’appareil avaient doté celui-ci d’un connecteur d’extension, dont la finalité était de toute évidence l’ajout d’une carte fille et l’augmentation des fonctionnalités de l’appareil. Il me vint donc naturellement l’idée de construire une telle carte fille dans le but de transformer le Minitel d’origine, dont les fonctions sont figées et qui n’offre aucune possibilité de programmation, en un véritable micro-ordinateur programmable dans le jus des années 70-80.
Quelques recherches sur internet permettent très vite de voir qu’un certain nombre de personnes ont effectué la transformation du même appareil en ordinateur, mais par une méthode toute autre : la carte alim-vidéo du Minitel est conservée, la carte mère d’origine retirée et remplacée par un ordinateur miniature moderne comme le bien connu Raspberry Pi, et un circuit d’interfaçage est intercalé entre la carte vidéo et l’ordinateur. Si cela est sans aucun doute la façon la plus rapide, la plus simple et de loin la moins chère d’effectuer cette transformation, cela m’a paru peu intéressant d’un point de vue électronique, d’un point de vue fonctionnel également (pourquoi brider un ordinateur moderne par un écran cathodique noir et blanc et un clavier si peu ergonomique ?), mais surtout cela ne respectait pas mon souhait de conserver la totalité de l’électronique d’origine de l’appareil. Je me suis donc orienté vers la fabrication d’une carte fille augmentant les capacités de la carte mère, sans la remplacer.
Résumé du travail accompli
Circuits électroniques
- Reconstitution du schéma électrique complet de la carte UT modem d’un Minitel 1B Télic-Alcatel à partir du circuit imprimé
- Compréhension du fonctionnement d’un crayon optique et réalisation d’un montage permettant la visualisation du signal émis par celui-ci sur un téléviseur
- Conception d’une carte d’extension pour ledit Minitel
- Fonctions principales de la carte d’extension : mémoire morte et mémoire vive permettant le stockage et l’exécution de programmes, lecteur de carte SD, contrôleur de bancs mémoire, contrôleur de périphériques dont crayon optique, contrôleur d’interruptions, sortie audio sur haut-parleur ou écouteurs et sur ligne téléphonique
- Choix des composants et réalisation du schéma électrique
- Conception des circuits imprimés sur logiciel de CAO et mise en panneau de ceux-ci
- Fabrication du panneau confiée à une usine
- Soudage des composants et assemblage des circuits imprimés
Modules implémentés en logique programmable, codés en Verilog
- Diviseur d’horloge
- Générateur de signal power-on reset
- Registres adressables en mémoire permettant l’accès aux périphériques
- Décodeur d’adresse et contrôleur de bancs mémoire
- Bus maître SPI
- Séparateur de synchronisation par machine de Moore à quatre états
- Contrôleur de crayon optique, dont la fonction est de calculer et enregistrer les coordonnées du crayon optique sur l’écran
- Double port PS/2 en bit-banging
- Contrôleur d’interruptions signalant, entre autres, le commencement d’une trame vidéo (synchronisation verticale), la fin de la transmission d’un octet sur le bus SPI, l’appui sur le bouton du crayon optique…
- Possibilité de faire fonctionner le Minitel tel qu’à l’origine, par pression d’un bouton au moment de la mise sous tension
Programmes pour le Minitel modifié
- Chargeur de programmes depuis une carte SD, avec gestion minimale du système de fichiers FAT32
- Programme de ROM dump : lit le contenu de la ROM interne du microcontrôleur, qui renferme le programme d’origine du Minitel
- Dessin sommaire sur l’écran à l’aide du crayon optique
- Synthétiseur basique permettant de jouer de la musique à l’aide du clavier et du crayon optique
- Terminal SPI permettant d’envoyer manuellement des données sur le bus SPI et de voir les données reçues
Programme utilitaire pour PC
- Générateur de fichier SVF pour la programmation in situ de l’EEPROM de la carte d’extension
Architecture du Minitel
Le Minitel est un ensemble terminal-modem. En somme, il affiche à l’écran les données envoyées par le serveur, et envoie à ce dernier les frappes clavier de l’utilisateur. Quelques fonctions typiques des terminaux informatiques sont prises en charge, telles que le soulignement des caractères ou le déplacement du curseur.
Une rapide analyse de l’architecture matérielle du Minitel montre que la totalité de la fonction terminal est réalisée par logiciel, sur un microcontrôleur. De plus, on remarque rapidement la présence d’une rangée de 32 broches donnant essentiellement accès aux bus d’adresse et de données du microcontrôleur. Il est donc relativement aisé de relier une mémoire sur ce connecteur et de faire exécuter par le microcontrôleur un autre programme que celui d’origine.
Je vais brièvement décrire l’architecture générale du Minitel 1B Télic-Alcatel et ses composants principaux.
Avant de commencer, je signale qu’il existe plusieurs variantes matérielles mineures parmi les Minitel 1B Télic-Alcatel. Par exemple, le mien est muni d’un microcontrôleur 8052 avec ROM interne, tandis que certains sont munis d’un 8032 (compatible avec le 8052 mais sans ROM interne) et d’une carte fille enfichée sur la rangée de broches et comprenant une ROM externe. Aussi, tout ce qui suit se rapporte à l’exemplaire que je possède et certains éléments peuvent ne pas correspondre à d’autres modèles.
L’appareil se décompose en six parties matérielles principales : le boîtier, le clavier, le tube cathodique (noir et blanc), une petite carte portant la mention FILTRE SECTEUR
, une grande carte portant la mention CARTE ALIM VIDEO
, et une grande carte portant la mention CARTE UT MODEM
. Par commodité, je désignerai simplement cette dernière par carte UT ou carte mère.
Je parlerai par la suite exclusivement de la carte UT, car c’est elle seule qui présente un intérêt pour ce projet, et c’est avec elle uniquement que les circuits à réaliser doivent s’interfacer.
La figure ci-dessous illustre de manière simplifiée l’architecture matérielle de l’appareil.
Les deux composants essentiels dans la mise en œuvre de la carte UT et les plus intéressants pour ce projet sont le microcontrôleur et le processeur graphique.
- 8052
- Célèbre microcontrôleur Intel de la famille MCS-51, encore utilisée de nos jours dans l’industrie. Il comporte 8 kilo-octets de ROM et 256 octets de RAM. Il a la particularité de rendre ses bus d’adresse et de données et leurs lignes de contrôle accessibles sur ses broches, comme un microprocesseur, ce qui rend possible l’exécution de programmes à partir d’une mémoire externe.
- EF9345
- Processeur d’affichage de Thomson, utilisé dans certains micro-ordinateurs français comme le VG5000µ de Philips ou l’Alice 32 de Matra. Il nécessite une RAM externe dédiée. Il génère un signal vidéo numérique TTL à 3 ou 4 bits de couleur, de standard (nombre de lignes, impulsions de synchronisation…) compatible télévision. Il permet l’affichage de caractères alphanumériques et semi-graphiques. Par commodité, je l’appellerai par la suite VGP (Video Graphics Processor), qui est l’appellation utilisée officiellement par les PTT dans les Spécifications Techniques d’Utilisation du Minitel 1B.
Caractéristiques techniques de la carte d’extension
Logique programmable | CPLD/FPGA Altera MAX V EPM240ZT100 |
Mémoire | EEPROM 64 Ko RAM 128 Ko |
Stockage | carte SD |
Audio-Vidéo | sortie 8 bits mono sur haut-parleur intégré ou écouteurs sortie 8 bits mono sur ligne téléphonique sortie audio et vidéo RGB sur prise Péritel |
Périphériques | 2 ports PS/2 crayon optique |
Extension | connecteur pour bus SPI avec quatre lignes de sélection, ligne de reset et ligne d’interruption connecteur d’entrée pour incrustation vidéo et audio |
Boutons | bouton de réinitialisation bouton d’interruption |
Modifications sur la carte mère
Des modifications sur la carte UT sont nécessaires : quelques cavaliers à retirer, des broches de contact à rajouter pour avoir accès aux signaux qui ne sont pas disponibles sur le connecteur d’extension (par exemple les signaux RESET et INT0 du microcontrôleur), et quelques autres modifications mineures.
Schéma de la carte mère
Cliquez ici (.pdf 13 Mo) pour télécharger le schéma électrique de la carte UT. Je ne peux pas en toute honnêteté exclure la possibilité que celui-ci comporte quelques erreurs, notamment aux pages 6 et 7. Vous voudrez bien m’excuser pour la mauvaise qualité du schéma, fait à la main sur papier. Le temps me manquait et refaire le schéma au propre sur ordinateur n’était pas une priorité.
Schéma de la carte d’extension
Cliquez ici (.pdf 600 Ko) pour télécharger le schéma électrique de la carte d’extension.
Photos
Vidéo de démonstration du crayon optique
Projet connexe
Je ne peux pas clore cet article sans mentionner le fabuleux travail que Jean-François Del Nero, alias HxC2001, a fait sur le Minitel 2 ainsi que son impressionnante démo 2D et 3D. Allez voir, ça vaut vraiment le coup d’œil !