En quoi consiste le projet ?

Il ne s'agit de tout recréer, Nous allons conserver les couches logicielles du TRS-80 et recréer l'interface d'extension (pour la partie concernée), le contrôleur de disque et le lecteur de disquette.

Le contrôleur de disque, inclus dans l'interface d'expansion du TRS-80, est un FD1771 de western Digital. La documentation de ce dernier est encore disponible et, fort heureusement la documentation détaillée de l'interface d'extension l'est également.

Choix des composants:

En première intention, je me dis qu'un microcontrôleur 8 bits peu couteux et très facile d'accès peut faire le job. Un ATMega328P qui dispose d'une architecture RISC et d'une fréquence de fonctionnement de 20MHz, me parait plutôt bien adapté pour remplacer le contrôleur de disquette. Il possède, d'autre part, une interface SPI qui va me permettre d'utiliser facilement des SD-Card à la place des disquettes, et d'une interface I2C pour m'interfacer avec un petit écran OLED.

Une IDE est disponible, celle d'Arduino, et des librairies existent pour gérer les cartes SD ainsi que les systèmes de fichier FAT16/32 mais aussi les afficheurs OLED. Une rapide compilation me montre qu'il me reste suffisamment de mémoire programme ou RAM pour simuler le contrôleur de disque. Cependant deux points vont faire évoluer mon choix:

  • Afin d'être adressé par le processeur, il va falloir décoder des adresses. Cela va donc nécessiter des circuits logiques supplémentaires
  • Il va falloir être très réactif aux signaux du TRS-80 pour autoriser les données ou passer alternativement les données en "haute impédance", au risques de charger le bus et de dégrader des circuits.

Pour ces deux raisons j'opte pour utiliser une CPLD permettant à la fois de créer une interface réactive aux sollicitations du Z80, ce qui permet de ne pas créer de cycle WAIT et laissant plus de temps au microcontrôleur pour gérer les données. Je viens en plus d'expérimenter avec succès les ATF1508AS, pourquoi s'en priver.

Voici donc ce que je choisi :

  • 1 x ATMega328PA (microcontrôleur)
  • 1 x ATF1508AS10-JU (CPLD)
  • 1 x Oscillateur 20 MHz 5V demi format
  • 1 x module connecteur et alim 3,3V pour SDCard
  • 1 x  afficheur OLED I2C
  • 4 x boutons poussoirs

De la connectique :

  • 1 connecteur « encartable » au pas de 2,54mm 40 broches (Cordon de liaison vers le bus d'extension)
  • 1 connecteur IDC 40 broches femelles à sertir (Cordon de liaison vers le bus d'extension)
  • 2 connecteurs IDC 6 broches males à souder (Programmateur ISP Atmel et Interface SDCard)
  • 2 connecteurs IDC 10 broches males à souder (Programmateur JTAG et Test/Clavier)
  • 1 connecteur IDC 40 broches males à souder (Connecteur vers le bus d'extension du TRS-80)
  • 1 connecteurs IDC 10 broches femelles à sertir (Cordons Clavier)
  • 1 connecteurs IDC 10 broches femelles à sertir (Cordons SDCard)
  • 1 connecteur SIL 4 broches femelles à sertir (Cordon écran OLED)
  • 2 connecteurs SIL 4 broches males à souder (Alimentation et afficheur)
  • 1 support DIL 8 broches (Oscillateur)
  • 1 support DIL 28 broches (Microcontrôleur)
  • 1 supports PLCC 84 broches (CPLD)
  • 1 cavalier (interrupteur M/A)

Des composants passifs et de la filasse.

  • 1 condensateur 10µF
  • 10 condensateurs 100nF
  • 4 résistances 4,7kΩ
  • 1 résistance 10kΩ
  • 1 résistance 220Ω