CAPRI-Z180 V2.0 Spezifikation

  • Z80 based system (Z180 Zilog)
  • 16 kB ROM
  • 16 kB Banking RAM Memory of 976 kB RAM
  • 32 kB fixed RAM
  • 20 MHz clock frequency
  • Operating system: KOBA-OS (does not exist yet ... someday ...)
 

Youtube

Platinen Layout

Hier ein paar Fotos von zwei Anläufen ein Layout zu bauen. Das erste Layout war fertig und mit fertigstellung stellte ich fest, dass meine Footprints nicht stimmen. Also baute ich das ganze nochmal und es entstand eine zweite Version. 
Die Bilder hier zeigen hier ein bisschen die Schritte… 
 
Ein guter Trick ist es das Layout auf Papier auszudrucken um zu prüfen ob die Bauteile physisch auch drauf passen würden. Es stellte sich heraus, dass die "Footprints" (das sind die Abbildungen der Anschlusspunkte auf der Platine, bereitgestellt vom CAD system) von zwei verschiedenen IC Typen nicht richtig waren. Also quasi ein Misserfolg der Zeitverlust einbrachte. Es war mir zu frickelig das nachzubessern, da ich an anderer Stelle mit dem ursprünglichen Layout nicht zufrieden war. So entschied ich mich das Layout mit korrekten Footprints nochmals zu bauen.

und hier zweite Version

Diese Version ging dann tatsächlich auch raus zu einem Platinenhersteller. Das sind Firmen die "Produktionsdaten" von einem Entwickler erhalten und daraus professionell eine Platine herstellen. Ich liess die Platine in China fertigen. Nach gut 1.5 Wochen lagen die Platinen bei mir auf dem Tisch. 75 Euro (inkl. Einfuhrsteuer) für fünf Platinen. Eigentlich ned schlecht. Leider ist es hier zu Lande deutlich teurer. Böse Zungen schimpfen über eine schlechtere Qualität aus CHina, aber das ist "leider" nicht so. Die bringens genauso gut fertig wie nationale Firmen.

Bestücken der Platine

Die erhaltenen "leeren" unbestückten Platinen sind mit nem Pieper durchgeprüft worden ob alle Verbindungen auch durch die recht kleinen VIAs (Durchkontaktierungen - Leitungen durch die Platine hindurch von der Vorderseite auf die Rückseite bringende Verbindungen ) vorhanden sind.
Da die Platine nur aus Vorder- und Rückseite besteht, und keine Multi-Layer Platine ist, bietet es sich an, die Platine von hinten mit einer Lichtquelle zu durchleuchten. Von oben mit einer Lupe kann die Qualität der Lötverbindungen geprüft werden. Beim Prozessor sind die PINs 0.8mm voneinander entfernt, was etwas geschick erfordert - aber möglich ist. Rechts auf dem Bild die fast fertig bestückte Platine. Zwei Bauteile fehlen, bzw. der IC Sockel für den GAL chip. Der GAL wird nicht direkt eingelötet, da dieser ab und (hoffentlich nicht zu oft) re-programmiert werden muss. Daher muss dieser, und das EEPROM (ein weiterer zu programmierender Chip) gesockelt sein.
Bei der Inbetriebnahme stellte ich mit Tränen quittierend fest, dass ich die Anschlüsse des EEPROMs komplett falsch habe. Z.B. wurden bestimmte Datenleitungen vom Prozessor gar nicht an die entsprechenden Anschlüsse des EEPROM angeschlossen. Ich habe leider nicht geprüft wie die Zuordnung der PINs vom CAD Programm vorgegeben waren. Bei der Auswahl hab ich mich wohl im Typ geirrrt. Daher kann ich den Socket auf der Platine für das EEPROM gar nicht nutzen. 
Sämtliche Leitungen habe ich jedoch auch an einen PIN Header herausgeführt. Das ist die längliche Leiste mit den vielen Löchern. An diesen PINs stehen mir alle Leitungen parallel separat herausgeführt zur Verfügung. An diese Leiste konnte ich also eine Lochrasterplatine anlöten, und die falschen Verbindungen an einen zweiten Sockel anbringen. So dass nun die Leitungen richtig sind und die Logik Pulse richtig sind.

Software - Test

es ist die Zeit gekommen zu prüfen ob der Prozessor tatsächlich anläuft und etwas sinnvolles macht. Diese Tests wurden schon während der Inbetriebnahme teilweise vollzogen mit dem Resultat dass nachgebessert werden mußte. Hier im folgenden wird ein höchst-kompliziertes Softwareprogramm genutzt um zu prüfen, ob der Prozessor die entsprechenden Programmanweisungen einliesst und ausführt. Es ist nur eine Endlosschleife. 
Der Zweck der einfachen endlosschleife ist es wiederkehrende Signalverläufe zu messen. Damit ist es möglich die einzelnen Bits zu analysieren und daraus zu schliessen ob es nun tatsächlich funktioniert. Getestet wird hier also nur der Prozessor und das EEPROM.
Das Testprogramm ist das folgende, samt Assemblierung. Das erzeugte t1.bin ist die Datei die mit dem Programmer ähnlich der GAL Programmierung in das EEPROM chip geschrieben wird. Diese wird in den - jetzt extern gelagerten IC Sockel - eingesteckt und los gehts….
Der Quellcode ist nur 
ORG $0000 
JP $0000 
 
Hier die Abfolge 
a) Programm in die "Chip"-Programmiersoftware laden 
b) Chip in das Programmiergerät stecken und programmieren (quasi auf dem Chip speichern) 
c) den Chip in die Schaltung einstecken. (hier auf die Lochraster; eigentlich bisschen weiter rechts in den Sockel wenn der richtig angeschlossen gewesen wäre \\
Prüfen mit dem Logik Analyzer 
 

Uns interessieren nur die ersten drei Bytes. C3 entspricht 1100 0011 und die zwei weiteren Bytes sind 0000 0000 und 0000 0000 
Betrachtet man die Spalte wo der Mauszeiger drin ist liesst man von oben nach unten 1 1 0 0 0 0 1 1 . Das ist der Maschinenbefehl tatsächlich elektrisch den wir als "JUMP" Befehl kennen. Rechtes davon die beiden Spalten mit von oben nach unten mit 0 0 0 0 0 0 0 0 und 0 0 0 0 0 0 0 0 . UNd dann gehts wieder los mit 1 1 0 0 0 0 1 1 –> das ist die endlos schleife. Wow. Also Prozessor liest vom EEPROM und führt aus. Rock'n Roll !