Le Microprocesseur TMS7020
Le microprocesseur TMS7020, conçu par Texas Instruments en 1981, fait partie de la famille des microcontrôleurs CMOS TMS7000. Fonctionnant à une fréquence de 4.91 Mhz (fréquence qui est ensuite divisée par deux en interne), il traite des mots de 8 bits et permet d'adresser jusqu'à 64Ko de RAM. Sa structure est de type «monochip», c'est à dire qu'il réunit en un seul boîtier un CPU, une RAM de 128 octets, une ROM de 2 Ko contenant le moniteur du système, ainsi que des circuits d'Entrées/Sorties. Notons que cette ROM interne, programmée par masque, est datée de 1984. Les composants «monochip» peuvent fonctionner dans différents modes:
- Mode «Single Chip»: Dans cette configuration, les programmes et les données sont stockés dans la mémoire (RAM et ROM) embarquée. Exit ici le bus d'adressage et de données, toutes les broches du micro-contrôleur sont affectées aux Entrées/Sorties.
- Mode «Peripheral Expansion Mode»: Comme son nom l'indique, ce mode s'ouvre aux périphériques externes. Le bus d'adressage et de données est toutefois limité.
- Mode «Full Expansion Mode»: Il s'agit du mode le plus ouvert: Le micro-contrôleur peut utiliser ses ressources internes (les Entrées/Sorties, la RAM et la ROM) mais également de la RAM et ROM externe. Il dispose d'un bus d'adresses et de données permettant gérer jusqu'à 64Ko. C'est dans ce mode que le TMS7020 fonctionne dans l'EXL 100.
- Mode «Microprocessor»: Reprend la majeure partie des fonctionnalités du mode "Full Expansion", à la différence qu'il ne peut adresser de la ROM interne.
- Mode «Simulator»: Principalement utilisé dans le cadre de développement. La ROM interne, le Timer et le contrôleur d'interruptions sont ici absents ou désactivés.
L'adressage mémoire diffère selon le micro-controlleur et son mode de fonctionnement. Consulter les tableaux de mappage mémoire des TMS70x0 et des TMS70x1
Le contrôleur TMS7041
Piloté exclusivement par le TMS7020, ce composant a notamment la charge de la communication infrarouge et de la synthèse vocale. Utilisant le mode «Single Chip», les quatre ports sont affectés aux Entrées/Sorties. Le TMS7041 gère les périphériques tels que le clavier et le deux manettes de jeux ainsi que que le port d'extension situé à l'arrière de l'ordinateur, il communique avec le TMS7020 par un principe de « boîte à lettres ». La ROM du 7041 contient même la séquence sonore et le papillon d'Exelvision qui se présentent à la mise sous tension de l'appareil quand aucune cartouche est insérée. On pourrait considérer EXL 100 comme un micro-ordinateur familial bi-processeur, certaines publicités commerciales en font d'ailleurs mention, cependant la tâche dédiée au TMS7041, qui celle de contrôler les E/S, change totalement la donne. Le TMS7041 n'est pas directement accessible par l'utilisateur qui doit obligatoirement passer par le TMS7020.
Une boîte à lettres fonctionne selon un principe simple: Si le TMS7020 désire communiquer avec le TMS7041, il place un octet dans la boîte à lettres et demande au TMS7041 de suspendre son activité par le biais d'une Interruption. Le TMS7020 se met en situation d'attente jusqu'à ce que le TMS7041 envoi un accusé de réception. Le TMS7041 s'acquitte de l'interruption, il traite l'octet situé dans la boîte à lettres et envoie au TMS7020 l'accusé de réception attendu. Le TMS7020 et le TMS7041 peuvent ensuite reprendre leur activité, retourner à leur code initial respectif.
Le TMS7041 existe également en version développeur sous la désignation TMS70P161. La ROM interne est ici remplacée par une EPROM qui vient s'enficher sur le support tulip placé sur dos du composant. Voir la photographie ci-contre.
Comprendre la référence d'un micro-contrôleur de la série TMS7000:
Le 1er et le 2ème chiffre précisent la famille de composants: ici «70» .
Si la lettre «P» suit immédiatement le 2ème chiffre: une EPROM de 16Ko montée sur support remplace la ROM interne.
Si la lettre «C» suit immédiatement le 2ème chiffre: la technologie employée est de type CMOS, dans le cas contraire le composant est de type NMOS.
Le 3ème chiffre indique la quantité de ROM embarquée: «0» pour aucune, «2» pour 2Ko, «4» pour 4Ko et «12» pour 12Ko.
Le 4ème chiffre indique la présence d'un port série: «0» pour aucun, «1» si présent.
Le TMS7041 est de fait un microprocesseur NMOS de la série 7000 doté de 4Ko de ROM et d'un contôleur série.
Le récepteur infrarouge
Le clavier et les manettes utilisent la technologie infrarouge pour communiquer avec l'unité centrale. Cette particularité de l'EXL 100 se révèle par la présence des deux LED rouges situées sur sa face avant, derrière une petite fenêtre filtre infrarouge. Les récepteurs sont entièrement blindés afin d'éviter toute interférence avec d'autres appareils radioélectriques. Le clavier et la manette orange sont calés sur la fréquence de 28,437 KHz. La manette blanche, quant à elle, utilise la fréquence de 20 KHz. Détail pratique, les manettes de jeux comportent des touches numériques permettant de sélectionner les options proposées par certains programmes. La technologie infrarouge, novatrice, posera pourtant quelques soucis à l'usage: l'angle de couverture du signal IR de 60° sur une distance de 8 mètres annoncé par le constructeur se révèle particulièrement optimiste. Il sera revu par la suite à 45° sur une distance de 6 mètres. En pratique, pour un fonctionnement optimum, il est souhaitable que le le clavier et les manettes se trouvent parfaitement dirigés vers la fenêtre du récepteur infrarouge et restent à une distance proche de l'unité centrale. Autre contrainte: une seule commande clavier peut être transmise à la fois, ce qui ralentit considérablement la frappe: Pour obtenir le caractère «é», il faut presser successivement les touches «SHIFT» et «2». La raison en est simple: manettes et claviers se comportent comme des télécommandes, à l'égal d'une télécommande de télévieur qui ne peut envoyer qu'un seul ordre par infrarouge à la fois. Les signaux infrarouges envoyés sont d'abord captés par la photodiode TIL100 de l'EXL 100, amplifiés par le circuit intégré TEA 1009 de préamplification, ils sont ensuite envoyés au circuit 567CP pour le décodage. Ce n'est qu'après ces traitements que les ordres provoquent une interruption (IRQ) dans le micro-contrôleur TMS7041.
Quand le clavier ou les joysticks ne sont plus utilisés, un dispositif interne coupe leur alimentation, préservant ainsi les indispensables piles 9 volts nécessaires à leur fonctionnement.
La mémoire RAM
La RAM directement accessible par le TMS7020 est de 2Ko. Elle se compose d'une mémoire statique SRAM 2Ko x 8 TMM 2016AP15. L'ordinateur utilise principalement cette mémoire pour le stockage des variables temporaires du moniteur et du Basic qui se réserve à lui seul la moitié de l'espace disponible.
L'une des grandes particularités d'EXL 100 est de disposer de fonctions de synthèse vocale. En bref, EXL 100 parle! Le composant responsable de cette prouesse n'est autre que le célèbre VSP (Voice Synthesis Processor) TMS5220, une variante du TMS5200 qui équipe le célèbre Speech Synthesizer du TI-99/4A et la Dictée Magique de Texas Instruments, ainsi que la mythique borne cockpit "Star Wars" d'Atari. La voix est compressée en LPC (codage par prédiction linéaire), sa fréquence de sortie est de 4 KHz.
Les commandes vocales peuvent être utilisées sous ExelBasic grâce à la commande CALL SPEECH. Si cette commande est fort simple d'utilisation, l'envoi d'une variable contenant une chaîne de caractères (de 128 octets maxi) suffit presque à elle seule à générer un son, il n'en va pas de même pour la génération de cette même chaîne. En effet, dans le mode d'emploi d'ExelBasic, Exelvision donne quelques exemples pour générer des bruits familiers ( laser, explosion, ...) et des mots ( "bonjour", "bravo", ... ) mais elle n'explique pas comment créer ses propres sons. Pour les personnes désireuses d'obtenir leur propre son digitalisé, Exelvision proposait qu'on leur fournisse le son enregistré sur une simple K7 audio, elle expédiait ensuite ce son à une cellule de Texas Instruments basée à Dallas qui se chargeait de générer la chaîne de caractères correspondant au son traité en digital. Le travail était accompli sur un mini ordinateur VAX puis transmis sur la K7 qui était ensuite retournée à Exelvision qui la réexpédiait à l'utilisateur final. Autant dire que l'opération était peu réaliste.
La programmation du synthétiseur vocal était donc frustrante et, par conséquent, décevante...
Redécouvrez la synthèse vocale sur EXL 100!
Une astuce de programmation permet à l'EXL 100 du générer du son sans faire usage du synthétiseur de parole: Elle consiste à envoyer une suite binaire prédéfinie au bit 3 de l'interface cassette, tout en utilisant le TIMER du TMS 7000 pour génèrer des interruptions sur cette dernière. Les variations de hauteurs de durées des fréquences formeront une musique.
Redécouvrez ces sons!
Le pré-diffusé TAL 004
Le TAL 004, appelé également TL004, est un composant prédiffusé (Gate Array) conçu par Texas Instruments. Le boitier renferme 500 portes logiques concentrées sur deux couches de routage destinées à la programmation. Dans le cas de l'EXL 100, le TAL 004 a été programmé pour gérer la logique de décodage des adresses et pour contrôler le VDP TMS3556. Ce composant a été largement utilisé par les ingénieurs de Texas Instruments pour concevoir le TI-99/4QI, les prototypes du TI-99/5, le Basic Computer 99/2 et le Computer 99/8 quelques années plus tôt.
Certains EXL 100 sont équipés d'un autre prédiffusé: le EFGG011 conçu par la société Thomson. Sa fonction et son brochage sont strictement identiques à ceux du TAL 004.
Le processeur Vidéo TMS3556 et la RAM dédiée
Le VDP TMS3556 est une évolution du TMS3536, un processeur vidéo dont le développement a débuté en 1979 dans les locaux de Texas Instruments basés à Nice et dont sa particularités était d'offrir à moindre coût différents modes d'affichage: texte, graphique et vidéotexte. Le TMS3556 propose différents modes d'affichage:
- Le mode graphique ou bitmap: 320 X 250 pixels dans une palette de 8 couleurs sans aucune contrainte de proximité. Il utilise 30.500 octets de la VDP RAM. La photographie ci-contre, que j'ai traité pour l'occasion, donne un apperçu des capacités d'affichage du VDP.
- Le mode texte: 25 lignes de 40 caractères. Ce mode est aussi appelé «semi graphique» car il permet de redéfinir les 128 caractères prédéfinis disponibles. Il utilise 2000 octets de la VDP RAM. Voir d'autres exemples d'affichages réalisés par Exelvision
- Le mode mixte: Il autorise le mixage de lignes de textes (en fait composées de 10 lignes graphiques) et de groupes de lignes graphiques.
Le TMS3556 est cadencé par deux oscillateurs: Un premier (ODE) a la charge du contrôle DMA. Le second (OBE) , calé à 7.25 Mhz, est destiné à la base de temps. Le potentiomètre situé tout proche du VDP règle la fréquence de fonctionnement, une mesure du point de test (TP5 sur la carte mère) devant donner pour cela la fréquence de 15.625 Mhz.
La mémoire vive dédiée au TMS3556 est de 32Ko, elle se compose de 8 circuits intégrés 4bits TMS4408NLT (ou 8 circuits intégrés 4408NLB). Cette mémoire dynamique n'est pas exclusivement allouée à la gestion de l'affichage, une partie conséquente de celle-ci est réservée à la mémoire utilisateur (BASIC, LOGO, Assembleur). Située dans l'espace d'adressage mémoire du TMS3556, la mémoire utilisateur ne peut être directement adressée par le TMS7020 ce qui à pour conséquence de ralentir les performances du micro-ordinateur. Cette limitation peut s'expliquer par le fait que le TMS3556 est nativement capable de rafraichir la mémoire dynamique alors que le TMS7020 en est incapable. Pour doter son EXL 100 d'une mémoire vive en accès direct, Exelvision aurait été obligée d'équiper l'ordinateur d'un jeu de composants prenant en charge le rafraichissement de mémoires dynamiques ou plus simplement encore d'installer des mémoires statiques. Deux solutions plutôt coûteuses.
Détail intéressant: La carte mère est prévue pour recevoir une mémoire VRAM de 64Ko. Non seulement, Exelvision ne proposera jamais cette option mais elle n'en permettra pas l'accès en soudant les 8 composants VRAM TMS4408. Il s'agit là d'un choix malheureux. Même si on imagine quelques initiés s'être lancés dans le dessoudage et le remplacement des composants mémoire pour vivre le vertige d'une VRAM doublée, la presque totalité des utilisateurs d'EXL100 resteront enfermés dans l'espace mémoire VRAM natif... faisant leur deuil sur les possibilités intéressantes qu'offrait une telle extension dans la réalisation de programmes...
Table de caractères de l'EXL100
L'alimentation électrique
L'alimentation électrique de l'EXL 100 est classique, elle se compose d'un transformateur relié à la carte mère par un connecteur à 6 points. Ce transformateur, par ses enroulements de cuivre, diminue la tension d'entrée alternative sinusoïdale de 220 volts à 8 et 17 volts.
La carte mère d'EXL 100 fonctionne en continu. Pour convertir (redresser) la tension 12 volts alternative en une tension continue, les développeurs ont utilisé un classique pont de diodes. Ce rôle est joué par les 4 diodes IN1005. Deux diodes redresseur 1N5408 (ou BY251) se chargent de la tension en 5 volts. Des condensateurs viennent stabiliser la régulation. Quatre régulateurs de tensions vont donner à la carte mère toutes les tensions nécessaires à son fonctionnement: LM7805 (+5V), LM7812 (+12V), LM7905 (-5V) et LM7912 (-12V). Le LM7805 est protégé par un dissipateur thermique énorme mais indispensable.
+5V -------- 3A
+12V ------- 200mA
-5V ---.
¦--- 200mA
-12V ---'
Plan 4 vues de l'unité EXL100
(1) Coque inférieure. (2) Coque supérieure. (3) Trous de fixation des deux coques. (4) et (5) Tirroir de rangement des manettes de jeu. (6) Trappe cartouches ROM. (7) Cache plastique. (8) Cache plastique. (9) Bouton de mise sous tension. (10) Vis de fixation du transformateur secteur. (11) Interrupteur de mise sous tension. (12) Fenêtre infrarouge. (13) Bouton RESET. (14) Transformateur secteur. (18) Pied. (15) Connecteur vidéo. (19) Etiquette référence. (20) Connecteur CRAM. (22) Dissipateur thermique. (25) Bouton poussoir du RESET. (28) Carte mère EXL 100. (29) Coque inférieure. (30) Câble d'alimentation électrique. (41) Connecteur cartouche ROM. |