menu home
 
  Derniers projets :

•   Serveur mail Postfix/Dovecot sur Raspberry Pi sous Raspbian

•   Circuit vidéo anti-Macrovision / Macrovision remover

•   Indicateur de niveau d'humidité de la terre pour plante

•   Récupération consommation EDF via Raspberry Pi

•   Station Météo avec Raspberry Pi

•   ...

[ Voir la suite ... ]    

 
  Derniers projets :

•   Manipuler les GPIO d'un RaspberryPi sous Raspbian en Java

•   Programme pour le convertisseur impulsions téléphoniques en signal DTMF pour téléphone à cadran

•   ...

[ Voir la suite ... ]    

 
  •   Cathode Corner
 
•   Kosbo
 
•   Semageek
 
 
a propos
 
contact
 
  categorie
  Ordinateur "JLR's Computer 1"
  > Vintage, Circuits numérique / informatiques
img avancement
Commencé le 12/07/2010  
Mis à jour le 24/12/2011 à 20:02  


Projet de construction d'un ordinateur avec un processeur Zilog Z80 lancé !

A l'origine, l'idée était de me construire un ordinateur comme ceux des années 70, du genre "Altair 8800" ou "IMSAI 8080", pour faire comme à l'époque, rentrer des programmes directement en binaire avec des interrupteurs ! ;D

Altair 8800 :


IMSAI 8080:
img


Pour ceux qui ne savent pas ce qu'était ce genre d'ordinateur, c'était un petit ordinateur (en kit ou en version monté) qui avait à l'époque un processeur Intel 8080 cadencé à 2 Mhz et 256 octets de RAM (extensible à 64 Ko !). On entrait les programmes à l'aide d'interrupteurs.
Il n'y avait pas d'écran à l'origine, on se contentait seulement de LEDs pour visualiser ce que faisaient les programmes.
Mais bon, on se débrouillait déjà bien dans les années 70 ! Certains créaient des programmes pour faire faire de la musique à l'ordinateur.
Plus tard, on a pu branche un terminal, qui faisait office d'écran et clavier, via une connexion série.
C'est sur un "Altair 8800" que Microsoft débuta en créant l' "Altair BASIC", vendu sur cassette.


Mon projet consiste à me faire un ordinateur du même genre, avec les LEDs et les interrupteurs.

J'ai utilisé un processeur Zilog Z80 que je fais fonctionner à 2 vitesses possibles, 4 Mhz ou 64 Hz (pour le débogage et voir les traitements que fait le processeur), ainsi qu'une RAM 6264 de 8 Ko. Pas de ROM.




Les LEDs vertes servent pour affichage les actions du processeur (Lecteur, écriture, accès mémoire, accès périphérique, etc ...)
Les rouges correspondent au bus d'adressage.
Les jaunes correspondent au bus de données et celles du bas au Port 0.
La première rangée d'interrupteurs serviront pour entrer l'adresse et les données pendant la programmation.
La rangée du bas serviront pour les contrôle de l'appareil (On/Off, Reset, Run/Stop, Vitesse ...)

L'alimentation fournit 8 volts non régulés sous 8 Ampères et +20/-20 Volts non régulés sous 150 mA.
La régulation en 5V et +15V/-15V se fait sur chaque carte de circuit.


L'alimentation :



Prototype du circuit de programmation et de visualisation du contenu de la mémoire


Photo de l'arrière de l'ordi avec son transformateur torique permettant d'avoir jusqu'à 8 A ! Et l'entrée de l'air pour le refroidissement interne.




Rajout des noms sur chaque LED et sur chaque bouton :


1er circuit du panneau d'affichage qui permet de savoir ce qui se passe dans l'ordi (écriture/lecture mémoire, accès port d'entrée/sortie, ...), de déactiver le processeur et de prendre contrôle sur la RAM et d'y lire ou d'y enregistrer des données (pour charger un programme en mémoire par exemple).




Circuit de test pour le circuit d'adressage des données qui permettra de faire DEPOSIT NEXT, EXAM. (EXAMINE) et EXAM. NEXT (EXAMINE NEXT) :


2e circuit du panneau d'affichage qui permet de faire l'adressage des données et d'effectuer les fonctions DEPOSIT NEXT (incrémente le compteur d'adresse 16 bits et commande l'enregistrement de la donnée sur 8 bits), EXAMINE NEXT (incrémente le compteur d'adressage 16 bits) et EXAMINE (permet de se placer directement n'importe où dans la mémoire avec les interrupteurs sans à avoir au lieu d'appuyer sur EXAMINE NEXT plein de fois jusqu'à ce qu'on y arrive).


Le panneau de contrôle en place :


Test du panneau de contrôle avec l'alimentation de l'ordinateur :
Sur la photo, le microprocesseur serait en mode STOP, donc c'est le panneau qui prend le contrôle de la mémoire RAM. Il affiche qu'on se trouve sur l'emplacement 1111111111111111 en binaire, FFFF en héxadécimal ou encore 65535 en décimal. Bien évidement, il n'y a rien d'affiché sur les LEDs jaunes (données) car il n'y pas encore de mémoire ni de processeur dans l'ordinateur.


La carte principale avec le processeur Z80 et les 2 oscillateurs de 64 Hz et 4 Mhz.
Avec l'interrupteur se trouvant sur le panneau de contrôle, on peux sélectionner la vitesse de traitement voulu.


La carte principale en place dans le boitier de l'ordi.
Les câbles non connectés servent pour relier la RAM et le PORT 0.


La carte du dessus avec la RAM de 8 ko et les puces du puces du PORT de sortie n°0 qui est affiché sur le panneau de contrôle en dessus des interrupteurs.




Avec tout cela, on peut déjà entrer quelques codes de programmes et commencer à faire des tests.



Rajout de connecteurs, sur la carte principale, pour l'ajout de cartes d'extension :


Les connecteurs de cartes d'extension en place :



Schémas :

L'alimentation :


Système de base :
img


    6 commentaires
Commencé le 12/07/2010  
Mis à jour le 24/12/2011 à 20:02  

Nom:  
E-Mail:  
Site Web:  

 
Vérification:  
 
Recopiez les lettres/chiffres et donnez le résultat du calcul :
captcha



   hamdi369   |   13/05/2011 - 17:34   

trop fort! un ordinosaure fait maison comme à la préhistoire en 2011!

félicitation!

continuez!


   Iztok Pusnar   [ www ]   |   11/06/2011 - 16:31   

Bravo
It is posible I ask for schematic for this projects


   JLR's Blog   |   13/06/2011 - 20:16   

Thank you ! :)
The schematics aren't finished yet ... Sorry !


   guillaume   |   30/11/2012 - 19:02   

Salut jlr, jespere que tu vas bien, dans un post précédent je t'avais demandé ou tes flèches de ton schéma de cpu menaient(computer 1), et maintenant que mon "système de base" est fait, je ne sais pas trop comment avancer; jai vu sur tes photos que tu as une floppée de composants qui servent à la gestion de tes switchese; je me doute bien que tu es passé à autre chose, mais aurait tu une ébauche de plan ou bien une idée pour la suite, car j'ai démarré plutot fort, ma cpu fonctionne, mais le z80 fait nimporte quoi car forcément il lui manque des éléments lol en tout cas si jamais tu pouvais m'aider au hasard je suis preneur... merci d'avance, bonne continuation en tout cas et bravo!

guillaume


   JLR's Blog   |   04/12/2012 - 21:56   

Salut Guillaume,

Ton CPU fait n'importe quoi ?! Ah bon ? Pourtant, dans le schéma que j'ai posté, il y a tout ce qu'il faut pour une configuration ordinaire de base (CPU+Mémoire(RAM ou ROM)+sortie) et pour que ça marche ... Pour le panneau de contrôle avec tous les switchs et les LEDs, dit toi qu'il est juste optionnel.

Les circuits du panneau me permettent de prendre contrôle sur le bus d'adressage et le bus de données en désactivant les entrées-sorties du CPU, afin de pouvoir rentrer lire ou écrire des données dans n'importe quel emplacement mémoire.

Je n'ai pas de schéma ni d'ébauche désolé ... C'est vrai qu'il faudrait que je m'y mette à replonger dans le circuit, surtout que j'ai conservé les circuits tests sur plaque de connexion depuis 2 ans rien que pour ça ! ^^
Mais je vais essayer de t'expliquer le principe de fonctionnement, après à toi d'essayer de faire ce que tu peux.

Pour les LEDs du panneau, rien de compliqué, elles sont branchés directement sur le bus de données et d'adresses. Pour les LEDs du bus de contrôle, certaines passent par des inverseurs type 74ls04 car certaines sorties ont leur valeur 1 à 0V et inversement 0 à 5V, mais c'est juste pour de l'affichage sur le panneau.

Pour prendre le contrôle des bus avec les switchs, je désactive le CPU (passage de ses entrées-sorties à l'état haute impédance), en passant une entrée de controle du CPU (BUSREQ ou NMI, désolé, de tête je ne m'en souvient plus ^^) à 1 (0V). En même temps, j'active des buffers (74LS244) qui vont me permettre le controle avec les switchs. Quand le CPU est en marche, ces buffers sont à l'état haute impédance et n'ont aucune influence sur les bus. Quand les 74LS244 sont actives, quand j'envoi un 1 avec un switch sur une entrée d'un 74LS244, on a un 1 à sa sortie. Et il faut faire ça pour tous les fils du bus d\'adressage, de données et de certains pour le contrôle (RD et WR) ! ^^ Mon bouton EXAM fait envoi un simple READ sur le bus d'adressage, EXAM NEXT fait passage à la position suivante et fait un READ, DEPOSIT fait un WRITE, DEPOSIT NEXT fait un passage à la position suivante et fait un WRITE, CLR (CLEAR) fait un WRITE sans envoyer d'infos sur le bus de données, ce qui a pour but d'effacer l'emplacement mémoire.

Voila ! J'espère que j'ai pu d'aider ! Si t'as d'autres questions, n'hésite pas ! ;)


   John O'Brien   |   22/08/2015 - 02:29   

hello JLR,

i know this blog is ancient but i just wanted to say \"great job\" the machine looks good!

if Giullaume still has questions, there's a great book from back in the day \"Build Your Own Z80 Computer\" by Steve Ciarcia
http://www.modmypi.com/blog/build-your-own-z80-computer-by-steve-ciarcia-1981

it's also available as a PDF online (that's where i found my copy)

 


JLR's Blog   |   Programmation et design: JLR   |   Version 2.0   |   Généré en 0.013 seconde(s)