Ein Atmega328 steuert einen Z80-Computer

Themabewertung:
  • 2 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#41
03.04.2018, 19:56

Tach!

Mal schnell die serielle Schnittstelle vom Breadboard auf eine Platine übertragen, damit kein Kabelgewirr entsteht, wenn ich den nächsten Schritt in Angriff nehme. Das Ganze kann problemlos um einen MAX232-Baustein erweitert werden, um echte RS232-Signale zu erhalten. Auf dem Prototypen werde ich das aber nicht umsetzen, denn für Tests reicht mir das so vollkommen. Auf der fertigen Platine wird der MAX232 auf jeden Fall vorhanden sein. Außerdem werde ich eine Steckleiste für eine ESP8266 vorsehen (WLAN!!!)

Gruß
Uni


[Bild: 173666c72d1356a963d542966742e91e.jpg]
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
(Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2018, 16:54 von Unilein.)
Zitieren
Titanes
Member
***

Beiträge: 69
Registriert seit: Aug 2015
Bewertung: 0
#42
06.04.2018, 21:08

(03.04.2018, 19:56)Unilein schrieb: Tach!

Mal schnell die serielle Schnittstelle vom Breadboard auf eine Platine übertragen, damit kein Kabelgewirr entsteht, wenn ich den nächsten Schritt in Angriff nehme. Das Ganze kann problemlos um einen MAX232-Baustein erweitert werden, um echte RS232-Signale zu erhalten. Auf dem Prototypen werde ich das aber nicht umsetzen, denn für Tests reicht mir da so vollkommen. Auf der fertigen Platine wird der MAX232 auf jeden Fall vorhanden sein. Außerdem werde ich eine Steckleiste für eine ESP8266 vorsehen (WLAN!!!)

Gruß
Uni


[Bild: 173666c72d1356a963d542966742e91e.jpg]
Hi Unilein,

Respekt, cooles Projekt! Unilein baut mal "eben" einen Computer. Viel kann ich dazu leider nicht beitragen. Bin halt nur Hobbyelekrtoniker. Ich nehme mal an, daß du beruflich was in Richtung Elektronik und Computer machst. Bin schon gespannt wie es weiter geht.

Gruß

Titanes

Gesendet von meinem SM-T800 mit Tapatalk
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#43
06.04.2018, 21:33

Zitat:Hi Unilein,

Respekt, cooles Projekt! Unilein baut mal "eben" einen Computer. Viel kann ich dazu leider nicht beitragen. Bin halt nur Hobbyelekrtoniker. Ich nehme mal an, daß du beruflich was in Richtung Elektronik und Computer machst. Bin schon gespannt wie es weiter geht.

Gruß

Titanes

Hallo Titanes,

danke für die Blumen. "Mal eben" zu sagen, wäre jetzt wirklich geprahlt. Meinen ersten Versuch, einen kleinen Computer zu bauen, startete ich bereits 2014 (https://micro-dev.de/showthread.php?tid=110). Damals wollte ich das mit einem Atmega162 und einem MC6847 verwirklichen. Es hat dann am Ende zwar irgendwie geklappt, jedoch bin ich damals am Timing zwischen Atmega und MC6847 gescheitert. Außerdem hatte ich zu der Zeit auch noch nicht das passende Equipment um Signale zu prüfen.

Und auch dieses Projekt dauert schon eine ganze Weile. Gut, ich habe nicht immer Zeit zum basteln und natürlich auch nicht immer Lust. Trotzdem, auch dieses Projekt ist eine Herausforderung. Ich weiß schon gar nicht mehr, wie viele Entwürfe ich gemacht habe, bis ich soweit war, dass zumindest die "Zentraleinheit", also der eigentliche Z80Ardu überhaupt funktioniert hat. Jetzt baue ich ja sozusagen bereits Peripheriegeräte. Also die Grafikkarte, den seriellen Port, den Tastaturtreiber und (das ist mir heute mal so eingefallen) eine Soundkarte mit original Soundblaster-Chip.

Und dann fehlt natürlich noch das "Betriebssystem". Aktuell schreibe ich ja nur kleine Testprogramme, um grundsätzliche Funktionalitäten zu testen. Da muss ich mich dann noch einmal tief in meine (uralten) Z80 Assemblerkenntnissen vergraben.

Übrigens habe ich zwar 25 Jahre in der IT gearbeitet, jedoch keine Hardware entwickelt. Ich habe lange Zeit in der Softwareentwicklung gearbeitet, dann eine IT-Abteilung geleitet und meinen Schwerpunkt auf SAP verlagert. Und heute leite ich den Vertriebsinnendienst der Caramba Chemie Gruppe und habe mit IT nichts mehr zu tun. Im Alter von 12 oder 13 Jahren habe ich mal Elektronik als Hobby gehabt. Damals aber eher mit Transistoren, Widerständen und LED's. Damals ging es um blinkende LED's und um Tongeneratoren. Als ich meinen ersten Heimcomputer bekam (ein VZ200 von Video Technologies), legte ich die Elektronik beiseite.

Erst 2014 fand ich im Keller meine alten Bauteile von damals und dann war mein Interesse wieder geweckt. Und jetzt bin ich wieder mitten drin! Big Grin

Gruß
Uni
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#44
06.04.2018, 21:34

Hallo zusammen,

ich konnte es nicht abwarten und habe gestern Abend (mit mäßigem Erfolg), die "Grafikkarte" auf dem Breadboard aufgesteckt. Ich habe den MC6847 als zentralen "Grafikchip" verwendet. Mit dem kenne ich mich bereits recht gut aus. Erste Versuche scheiterten dennoch.

Erst heute Nachmittag konnte ich den Fehler (ein vertauschtes Kabel [d'Oh]) finden und beheben. Und jetzt steht das Grundgerüst der Grafikeinheit für den Z80Ardu. Da fehlt jetzt noch mindestens ein Latch, mit dem die Grafikmodi eingestellt werden können. Aktuell ist alles fest verdrahtet. Evtl. kann ich schon morgen weitermachen.

Wichtig ist erstmal, dass die Grafikeinheit funktioniert und auch ordentlich angesteuert werden kann.

Später hat das Teil dann eine maximale Auflösung von unglaublichen 256 x 192 Punkten!

Gruß
Uni


[Bild: 986992707010b395f30ae5718e273ae3.jpg]

[Bild: 383a61476f4331e216ef42cc5273baee.jpg]
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
(Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2018, 14:10 von Unilein.)
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#45
30.04.2018, 19:11

Hallo zusammen,

wieder ein kurzes Update zu meinem Projekt, ist ja auch schon wieder eine Weile her.
Also... Die "Grafikkarte" funktioniert soweit. Der MC6847 beherrscht 8 verschiedene Grafikmodi. Diese lassen sich nun über ein Latch einstellen. Außerdem sind zwei Farbpaletten möglich. Diese lassen sich ebenfalls über das Latch auswählen. im Textmodus kann der Chip 8 Farben darstellen. Allerdings nur für die sogenannte Semigrafik (sogenannte Blockgrafik). In den Grafikmodi sind zwei bis vier Farben gleichzeitig möglich. Nicht wirklich viel, ich weiß :-)

An meinem Latch waren danach noch drei Anschlüsse frei. Ich habe daher noch einen kleinen Umbau gewagt. Statt des bereits genutzten 8 KB-Video-RAMs habe ich einen 32 KB-Chip eingebaut. Die Adressleitungen 13 + 14 kann man über das Latch ansteuern. Es ist so möglich, vier eigenständige Screens zu verwalten. So kann sehr schnell zwischen zwei bis vier Screen hin und her geschaltet werden, ohne das diese erneut aufgebaut werden müssen. Sehr praktisch, wie ich finde.

Der MC6847 kann außerdem auch noch mit einem externen Zeichen-ROM verbunden werden. So werden, neben dem eingebauten, eigene Zeichensätze möglich. Ich habe auch schon versucht, diesen Zusatz mit einzubauen, jedoch ist es mir bislang nicht gelungen. Meine Idee dazu war, statt eines ROM's ein RAM zu benutzen und so in der Lage zu sein, jederzeit einen beliebigen Zeichensatz zu entwerfen. Nunja... hat nicht geklappt, muss ich wohl noch einmal überdenken.

Der MC6847 erzeugt passende Signale um ein Farbbild zu erzeugen. Dazu ist allerdings ein zusätzlicher Baustein erforderlich. Der MC1372 ist perfekt geeignet, um die Signale des MC6847 in ein TV-Signal oder ein Composite-Signal umzuwandeln. Ein Composite-Signal konnte ich bereits erfolgreich erzeugen. Jedoch fehlt da noch die Bildschärfe. Bevor ich die Schaltung mit auf die Platine packe, muss ich noch ein wenig an der Schaltung arbeiten (Widerstände und Kondensatoren probieren). Der MC1372 kann außerdem das Taktsignal für den MC6847 erzeugen. Dazu wird über Pin 1 und Pin 2 mit einem Quarz und ein paar Kerkos, sowie ein paar Widerständen der passende Takt erzeugt. Das klapt leider noch nicht optimal. Der Quarz schwingt nicht sauber an. Das muss aber passen, bevor ich das als PCB bestelle. Also muss ich da noch ein wenig messen und probieren.

So, das war's erstmal wieder... Als Anhang mal wieder ein Schaltplan. Außerdem ein kurzes Video (von schlechter Qualität), welches ein paar Funktionen zeigt und außerdem einen Blick auf das Breadboard erlaubt.

Gruß
Uni

 

   



-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
(Dieser Beitrag wurde zuletzt bearbeitet: 30.04.2018, 19:32 von Unilein.)
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#46
01.05.2018, 21:43

Zitat:Der MC6847 erzeugt passende Signale um ein Farbbild zu erzeugen. Dazu ist allerdings ein zusätzlicher Baustein erforderlich. Der MC1372 ist perfekt geeignet, um die Signale des MC6847 in ein TV-Signal oder ein Composite-Signal umzuwandeln. Ein Composite-Signal konnte ich bereits erfolgreich erzeugen. Jedoch fehlt da noch die Bildschärfe. Bevor ich die Schaltung mit auf die Platine packe, muss ich noch ein wenig an der Schaltung arbeiten (Widerstände und Kondensatoren probieren). Der MC1372 kann außerdem das Taktsignal für den MC6847 erzeugen. Dazu wird über Pin 1 und Pin 2 mit einem Quarz und ein paar Kerkos, sowie ein paar Widerständen der passende Takt erzeugt. Das klapt leider noch nicht optimal. Der Quarz schwingt nicht sauber an. Das muss aber passen, bevor ich das als PCB bestelle. Also muss ich da noch ein wenig messen und probieren.

Inzwischen habe ich gemessen und jede Menge probiert. Es ist nicht ganz einfach, eine Schaltung zum laufen zu bringen, wenn man nur wenige Daten hat. Aber OK. Jetzt funktioniert es. Ich habe sogleich passende PCB's bestellt, damit ich das Ganze mal fixieren kann. Statt der in der Originalschaltung verwendeten Widerstände habe ich Poti's eingesetzt, damit ich das Signal entsprechend justieren kann. Außerdem habe bin ich mir noch nicht ganz sicher, wie ich die Transistoren dimensioniere. Ist aber auch alles nur schmückendes Beiwerk. Wir werden sehen. :-)

Wichtig ist jetzt mal eine fertige Version, da mein Breadboard natürlich wie eine Antenne wirkt und das nicht gerade zu stabilen Bildsignalen führt. Da sind ja immerhin 3,57 MHz Takt unterwegs. Sollte die Version nicht zufriedenstellend arbeiten, werde ich sie entsprechend verbessern und neue Platinen bestellen.

Wenn sie aber funktioniert, ist das nächste Level entweder die Soundkarte oder die serielle Schnittstelle mit der WLAN-Erweiterung. Und weil beide Schaltungen nicht sehr umfangreich sind, kann ich mir auch gut vorstellen, beides auf eine Platine zu packen.  Big Grin

Beigefügt die Basisschaltung für den MC1372 und die aktuelle Version des Schaltplans der "Grafikkarte".

Gruß
Uni



   

   
(Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2018, 16:01 von Unilein.)
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#47
06.05.2018, 16:08

Die Platinen sind unterwegs. Wenn alles glatt geht, bekomme ich sie am 09.05. Big Grin

Wenn sie ordentlich funktionieren, werde ich erst einmal keine Verbesserungen vornehmen. Das kann ich später immer noch tun. Stattdessen werde ich das Thema "Tastatur" und "Speichermedium" angehen.

Tastatur sollte kein Problem sein. Ich habe ja den Atmega328 auf der Z80Ardu-Platine. Der hat einen 8-Bit breiten Bus zum Z80. Das wird genügen, um die Scancodes zu übertragen. Ich habe außerdem ja noch freie Pins am Atmega. Die werde ich dann für den Anschluß der Tastatur verwenden. Üblicherweise werden für Tastaturen 4 Leitungen benötigt: Vcc, Gnd, Clk und Dta (Bei USB sieht es anders aus, aber ich werde eine AT-Tastatur anschließen).

Beim Speichermedium muss ich noch überlegen. Es gibt eine Menge Vorschläge für Schnittstellen im Netz. Eine wäre eine SD-Karte, eine andere eine IDE/AT-Festplatte. Ich finde beides Spannend, wobei die SD-Karte natürlich den Charme hätte, auch im PC gelesen und beschrieben werden könnte (Sofern ich auf der Z80-Seite FAT16 oder FAT32 implementiere. Eine Festplatte wäre aber auch irgendwie cool.... Vielleicht sogar beides?

Was meint Ihr?

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#48
07.05.2018, 23:26

Hallo zusammen,

heute kamen, früher als erwartet, die Platinen der Grafikkarte. Natürlich habe ich mein Werk sofort zusammen gelötet. Das hat länger gedauert als gedacht, da halt viele Widerstände auf der Platine sind.

Nunja... nach 1,5 Stunden war's dennoch vollbracht. Natürlich musste sogleich getestet werden. Und siehe da: geht nicht... mööp!!

Wie das halt manchmal so ist. Also geht die Sucherei los. Überall an den Chips messen. Ich glaube das Problem jedoch schon gefunden zu haben: es wird zwar ein Takt vom MC1372 erzeugt, dieser kommt aber nicht beim MC6847 an. Ein kurzer Blick auf den Schaltplan zeigt, dass die Verbindungen zum Inverter (74hct04) fehlen.

Heute ist's aber schon spät, da mein Tag früh beginnt und ich heute geschäftlich etliche 100 Kilometer fahren musste. Kurzum: das wird dann eben morgen korrigiert.

Sobald das klappt, also der Takt beim 6847 ankommt, kann der Test weiter gehen.

Ein Bildchen von der Karte gibt's aber jetzt schon.

Gruß
Uni
[Bild: d51d4b229bb0cb78d3cf3584f9a5aa77.jpg]

Gesendet von meinem SM-G930F mit Tapatalk
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#49
09.05.2018, 21:25

Ja Kruziwuzi!!

So schlecht war ich noch nie! Ich hatte ja schon geschrieben, dass der erste Versuch, die Platine zu testen nicht erfolgreich war. Letzte Nacht ist mir der ganze Kram dann noch einmal durch den Kopf gegangen und dabei ist mir ein Verdacht in den Sinn gekommen. Heute nach der Arbeit dann direkt mal ein paar Messungen durchgeführt, zunächst an der fertigen Platine, dann an einer unbestückten Platine. Und siehe da: Verbindungen wo sie nicht hingehören, keine Verbindungen, wo welche sein müssen.

Kurze Blick auf den Schaltplan: Yep... Das ODER-Gatter (74HCT32) und das NOT-Gatter (Inverter, 74HCT04) falsch in den Schaltplan eingebaut. Ist sogar relativ offensichtlich und ich bin sehr enttäuscht, dass Ihr mich nicht darauf aufmerksam gemacht habt ( Wink ).

Ich habe versucht, das Desaster mit kleinen Kabelbrücken zu reparieren und danach noch einmal einen test gemacht. Geht immer noch nicht. Also noch einmal den Schaltplan geprüft -- Es fehlt ein Widerstand!! F*ck! Den kann man nicht einfach so nachträglich einbauen.

Was schließen wir daraus? Yep! Die Platinen sind Schrott.

Ich werde den Schaltplan noch einmal auf Fehler prüfen und dann neue Platinen bestellen. Die Grafikkarte und nachfolgende Projekte müssen demnach noch ein wenig warten.

Gruß
Uni
-----

Klopapier beidseitig verwenden und der Erfolg liegt auf der Hand!
(Dieser Beitrag wurde zuletzt bearbeitet: 10.05.2018, 10:49 von Unilein.)
Zitieren
Unilein
Fachgebiet Rauchentwicklung
*******

Beiträge: 734
Registriert seit: Apr 2014
Bewertung: 5
#50
19.05.2018, 20:49

Hallo zusammen,

Platinen habe ich vorgestern bestellt. Und sie kommen kommenden Mittwoch an (die Versandkosten dafür sind höher als die Kosten für die Platinen Dodgy ). Aber egal, das musste sein.

Die Fehler, die ich auf der vorigen Version der Platine gefunden habe, sind natürlich behoben. Außerdem habe ich die vielen Potis eliminiert. Ich habe jetzt Hoffnung, dass das Teil funktioniert.

Auf meinem Breadboard bekomme ich es jedenfalls nicht mehr zum Laufen. Irgendwie ist der Wurm drin. Aber das ist auch nicht wirklich ungewöhnlich. Bei 6 MHz auf dem Prozessorboard und 3,57 MHz auf dem Grafikteil entstehen wunderbare Antennen, die gerne mal Signale durcheinander bringen. Zwar werde ich das Breadboard morgen evtl. noch einmal zerlegen und neu aufbauen, aber ob's dann klappt, wird sich zeigen.

Erst wenn meine "Grafikkarte" endlich funkioniert, kann ich das Thema "Keyboard" und "Festplatte" angehen. Denn ohne Bild ist das Testen einer solchen Schaltung nicht so wirklich einfach.

Gruß
Uni
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste