Forum

Bitte oder Registrieren, um Beiträge und Themen zu erstellen.

Z80Ardu - Ein homebrew Computer mit Z80 und Atmega328

VorherigeSeite 4 von 5Nächste

Und es war doch ein Fehler im Programm. Genau EIN Bit war falsch... Mit verheerenden Auswirkungen
Nunja... Jetzt funktioniert es Big Grin

Die nächsten Schritte werden nun folgende sein:

* Ich hätte gerne ein "Betriebssystem" für den Z80 Ardu (CP/M?? oder Basic??)
* Die serielle Schnittstelle muss vollendet werden - Also Platine gestalten und bestellen
* Ich benötige noch eine Ausgabeeinheit für den Bildschirm (Grafikkarte)
* Eine Tastatur am System wäre hilfreich Big Grin (Hab ich da. Eine alte PC-XT Tastatur mit seriellem Ausgang)
* Irgendwo Daten speichern wäre ja auch nicht schlecht. Eine CF-Karte als "Festplatte" wäre auch nett

Die Systeme der 70er und 80er hatten oft Basic als "Betriebssystem". Es war meist direkt nach dem Einschalten verfügbar. Also könnte ich Basic implementieren. Ein entsprechendes Programmlisting liegt mir vor. Ich muss es "nur mal eben" portieren.

Im Rahmen der Überlegungen bezüglich des Betriebssystems muss natürlich geklärt werden, wo die Ausgaben hin sollen: Serielle Schnittstelle oder doch lieber über eine Grafikeinheit? Ich würde das eigentlich gerne über eine Grafikeinheit erledigen. Ich muss mir allerdings noch überlegen, welchen Baustein ich dazu verwenden möchte. Ich hatte vor Monaten TMS9981-Bausteine in China bestellt, aber die sind leider auf dem Postweg verloren gegangen. Eine Alternative wäre der MC6847 (hab ich da). Mit dem kenne ich mich bereits aus. Allerdings sind dessen Fähigkeiten begrenzt.

Sofern ich mich für die Bildschirmausgabe mit einem Grafikchip entscheide, könnte ich die serielle Schnittstelle mit einer ESP8266 pimpen und den Z80Ardu Wlan-tauglich machen. Die Idee finde ich persönlich recht spannend.

Tja und was die Speicherung (und natürlich das Laden) von Daten angeht, wäre eine CF-Karte geeignet. Alternativ ginge natürlich die SD-Karte, die sowieso am Z80Ardu hängt. Da aktuelle Design der Schaltung macht die Kommunikation allerdings schwieirg, da die eingesetzten Latches ja nur in EINE Richtung funktionieren. Fürs Speichern wäre aber die andere Richtung (Also Z80 zum Atmega) erforderlich.

Mal sehen... Habt Ihr vielleicht Ideen?  Ein wenig Feedback wäre mal interessant.

Gruß
Uni

Ausgabe auf dem Terminalprogramm:

(Auf dem Bild kann man auch erkennen, wo ich zuvor mit der Entwicklungsgeschichte des Z80Ardu aktiv war. Außerdem ist hier der Link zum Programm, welches die Daten zumTerminalprogramm übertragen hat: https://www.dev-tronic.de/?p=444

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

 

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

 

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

 

Ein kleines Funktionsvideo zur Grafikkarte

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

 

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?

Gruß
Uni

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

 

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

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

Tach auch,

Platinen kamen termingerecht. Gestern habe ich angefangen eine neue "Grafikkarte" zu löten. Beim ersten Test ist mir ein Kerko abgeraucht (der war aber wohl beschädigt, siehe dazu auch meine Signatur). So etwas ist dumm für die Schaltung, weil dann Kurzschlüsse entstehen. Nachdem ich den Kerko ersetzt hatte, war auf dem Bildschirm dennoch nix zu erkennen. --> Kein Signal. Takt und Lesezyklus des MC6847 stimmen aber. Ich hatte gestern allerdings keinen Nerv mehr, noch einmal alles durch zu messen und Signale zu prüfen. Dafür brauche ich Geduld und viel Alkohol Wink

Vielleicht dieses Wochenende...

Gruß
Uni

VorherigeSeite 4 von 5Nächste