Hallo Besucher, der Thread wurde 10k mal aufgerufen und enthält 123 Antworten

letzter Beitrag von manfred.moser am

First Run ZX81+38 Replika läuft nicht

  • Dass sich nun rausstellt, dass das Board grundsätzlich nicht lauffähig war, …

    Das stimmt so ja auch nicht ganz. Ich will das Board ja ansonsten nicht verteidigen, aber bei mir läuft es sehr wohl ohne die Modifikation. Das scheint „nur“ eine Frage der richtigen Kombination von Bauteilen zu sein.

  • Das stimmt so ja auch nicht ganz. Ich will das Board ja ansonsten nicht verteidigen, aber bei mir läuft es sehr wohl ohne die Modifikation.

    Klang bei dem, was manfred.moser hier geschrieben hatte aber genau so.


    Ich war irgendwie auch Anfangs der Meinung gewesen, Du (bigby) hättest Manfred Dein Board "abgetreten", da Du es NICHT zu laufen gebracht hattest, oder war das Jemand Anderes?


    Wenn ich das was verwechselt hab: mea culpa!


    Meine Aussage war: mischt keine Logikfamilien, die dafür nicht vorgesehen sind!


    Da war ich -hinsichtlich der Relevanz im konkreten Fall- aber davon ausgegangen, dass zumindest die CPU in NMOS bestückt ist, also klassischer Z80(A).

    Wobei sowohl die CMOS CPU als auch die (meisten) RAM und xPROM in CMOS meist als 100% TTL kompatibel bezeichnet werden, was de fakto HCT bedeutet.


    Bei der Umstellung bestehender Designs muss man dann aber immer noch auf die Einhaltung der FAN-OUTs achten, insbesondere, wenn eben auch noch LS oder gar diskrete Logik mit im Spiel ist, dazu zählen auch und gerade natürlich Pullup-Widerstände (Pulldowns sind eher selten, aber wenn vorhanden IMMER noch gründlicher zu prüfen!)


    Das das mit der NMOS-CPU ne Fehlannahme meinerseits war, erwähnte ich ja bereits. Wenn da also sowieso schon fast Alles in CMOS drauf ist, dann "schaden" weitere HCs sicher nicht per se, HC und HCT mischen geht, wenn man weiß, was man tut...


    Bleiben eben die "Tricks" von Sinclair, um Latches und Bustreiber oder gar I/O-Bausteine einzusparen, siehe Tastaturabfrage und eben Video-Generierung. Das ist per se eigentlich ein "MisUse" und somit kann man sich an der Stelle nicht mehr drauf verlassen, dass das Timing dort konform zu den Z80-Vorgaben ist.


    Vom Timing her sind in absoluten Zahlen die HC/HCT den LS deutlich ähnlicher als z.b. so eine 20 MHz Z80 in CMOS einer alten 4MHz in NMOS, von den Speicherbausteinen ganz zu schweigen, die originalen 2114 gabs (zu der Zeit als der ZX80 rauskam) in 450ns bis 250ns, das sind Welten zu den "modernen" CMOS SRAMs mit 70-100ns.


    Ditto bei den ROMs im Vergleich zu den CMOS-EPROMs, die -wie wir vom C64 PLA-Ersatz wissen- oft sogar noch schneller sind, als offiziell spezifiziert, wobei aber natürlich auch Niemand hier seine Rechner sowohl tiefgekühlt als auch im Backofen betreiben wird, d.h. die Grenzen der Spezifikation kaum je mal ausgelotet werden.



    Was ich konstatieren wollte war:


    - solange man es nicht mit REIN LS und NMOS bestückt, wie damals seitens Sinclair eindesignt, bleibt es vom Timing (z.b. auch Flankensteilheiten an Pullups) her immer vage, d.h. den Root-cause zu finden oder auch nur die Stabilität über kurzfristige "Erfolge" hinaus dauerhaft zu sichern wird extrem schwer.


    Also 2114 als Speicher und NMOS-EPROM als ROM und natürlich Z80A CPU und dann nochmals testen, dann sollte sich zeigen, was wirklich los ist und ob das Board an sich stabil laufen würde. Man kann auch schon bei 4MHz im Layout einiges falsch machen ;-/


    Was sich dann natürlich besonders bemerkbar macht, wenn man deutlich schnellere Bausteine verwendet, d.h. die Signalflanken auch deutlich steiler und somit kürzer = hochfrequenter sind. Und CMOS bekanntlich beide Logikpegel aktiv ansteuert, d.h. üblicherweise Push-Pull-Endstufen verwendet. (wenn nicht explizit als Open-Drain deklariert).

  • Frage an manfred.moser : Ne NMOS-CPU hast Du jetzt nicht wirklich mal verbaut gehabt, oder?

    Nein, leider habe ich gar keine NMOS-CPU, sonst hätte ich das sicher auch mal getestet.

    Hab 4 Stück hier und dann noch eine hier eingekauft. Damit kann ich die 5 vorhanden Platinen bestücken.

    Sind aber alles C-MOS-Versionen (zumindest lt. Aufdruck... man weis ja bei den Chinesen nie so genau, ob das stimmt was draufgedruckt ist).


    Mir ist schon klar, dass man NMOS und CMOS nicht mischen sollte, aber ich hab mich bei den Bestellungen halt weitestgehend an die BOM und die Verfügbarkeit gehalten.

    Da die meisten ICs (incl. CPU) bei meinem Board vom Typ CMOS sind ist es ja auch gar nicht so falsch. Pegelunterschiede bei HCT und HC jetzt mal außen vor gelassen.

    Inzwischen läufts ja auch und daran lags ja eigentlich auch gar nicht. Es war eher eine grundsätzliche Designschwäche.


    Hätte ich von Anfang an gewusst, dass selbst der Entwickler noch kein V1.6er-Board aufgebaut hat, wäre ich vlt. etwas vorsichtiger gewesen.

    Aber da die Teile nun schon mal da sind, werden sie auch verbaut.

  • Ich war irgendwie auch Anfangs der Meinung gewesen, Du (bigby) hättest Manfred Dein Board "abgetreten", da Du es NICHT zu laufen gebracht hattest, oder war das Jemand Anderes?

    Nein, daran stimmt quasi gar nichts. Ich habe mein Board behalten, selbst aufgebaut und zum Laufen gebracht, wie im oben schon verlinkten Thread und im Blog-Post dokumentiert. Und Manfred hat seine Boards selbst fertigen lassen, wenn ich mich nicht irre.

  • Und Manfred hat seine Boards selbst fertigen lassen, wenn ich mich nicht irre.

    So ist es.


    Bestellt bei JLCPCB


    Ich hab mich aber von bigby 's Blog im Hackup.net inspirieren lassen. Da kam in mir der Wunsch auf, auch so ein ZX81 zu bauen. Hatte noch keinen, wollte ich aber schon immer mal haben.

  • Weil ich ja je 5 Platinen (Mindestmenge) erhalten habe, wollte ich die #3 bis #5 auch noch aufbauen. Die Bauteile dafür hatte ich ohnehin auch schon da, weil man ja beim Chinesen seines Vertrauens meist 10 Stück (Mindestmenge) von den 74er-Logikbausteine nehmen muss.

    Das hab ich im Laufe der Woche auch geschafft.... aber der Reihe nach...


    Hier wird zunächst der CPU-clk-Fix beschrieben. Die CPU-Pin6 erhält aus Timinggründen dabei einen invertierten Takt:

    Zuerst hab ich an allen 3 Platinen den Fix-CPU-clk vorbereitet. Man muss dazu 3 Leitungen auf der Platinenoberseite trennen und eine weitere auf der Platinenunterseite.

    An die Trennstellen auf der Platinenoberseite kommt man nicht mehr dran, wenn die Bauteile/Sockel bestückt sind, deshalb wird das vorher erledigt.

    Die Verbindungen können dann nach der Bestückung von der Platinenunterseite duchgeführt werden.

    Man braucht so keine Pins vom Sockel wegbiegen, wie ich das bei Platinen #1 und #2 gemacht hatte.


    Die 3.25MHz-Taktleitung von U24 zur CPU wird aufgetrennt.


    Da die Taktleitung von der CPU Pin 6 auch noch zum Expansionsport durchgeschleift ist, wird an einer gut zugänglichen Stelle auch diese Leitung aufgetrennt.

    Oberhalb zwischen CPU und ROM ist eine Durchkontaktierung auf der Platinenoberseite, die durchgetrennt werden kann.


    Jetzt wird das bisher ungenutzte FlipFlop von U18 (74HC74) vorbereitet um den CPU-Takt zu invertieren.


    Zuerst wird Pin 1 von U18 auf der Platinenoberseite befreit (der lag vorher auf +5V, soll aber nun mit der Taktleitung verbunden werden)

    Die beiden Pins14 von U19 und U18 müssen später wieder überbrückt werden, sonst erhält U18 keine 5V-Versorgungsspannung.


    Dann noch Pin4 von U18 auf der Platinenunterseite befreien (lag voher auf +5V, muss aber mit Masse verbunden werden).

    Pin 4 wird anschließend mit Pin 3 durchverbunden (Masse).


    Damit ist die Vorbereitung der Platinen für den CPU-clk-Fix abgeschlossen und die Platinen können bestückt werden.

    Weil es hier aber grade reinpasst, hab ich auch noch ein Bild von den Durchkontaktierungen auf der Platinenunterseite nach der Bestückung eingefügt.


    Hier sind neben dem CPU-clk-Fix auch noch die Tapeanschlüsse gefixt.

    Dadurch wird erst der vorderste Ring vom 3,5mm-Klinkenstecker mit dem Signal durchverbunden. Wichtig, für Load- und Save-Befehle fürs Tape.

  • Weiter geht's mit der Bestückung der Platinen #3 bis #5.


    Wenn man mehrere Platinen auf einmal bestückt, spart man Zeit, weil die Bauteilsuche nur einmal stattfinden muss.

    Zuerst habe ich - wie üblich - mit den niedrigen Bauteilen begonnen. Widerstände die flach montiert werden, Dioden und Kondensatoren.



    Anschließend wurden die IC-Sockel eingelötet. 17 Stück 14er, 2 Stück 16er, 3 Stück 20er, 2 Stück 28er für RAM und ROM und natürlich der 40polige für die Z80-CPU.

    Leider gingen mir die 14er-IC-Sockel aus, weshalb ich es riskiert habe in Platine #5 die Logic-ICs direkt einzulöten, also ohne Sockel.


    Dann kamen die vielen senkrecht einzulötenden Widerstände. Die machen auch nochmal einiges an Arbeit. Zuletzt die Buchsen und der Quarz, den ich steckbar gemacht habe.


    Es waren jede Menge Lötstellen (pro Board so ca. 700 -800), aber an einem verregneten Nachmittag bekommt man das hin :loet Na ja, ein paar Kaffeepausen zwischendurch waren dann doch nötig um den geschundenen Rücken und die Augen zu entlasten.


    Als nächstes waren die Tastaturplatinen an der Reihe... je 40 Taster à 4 Lötstellen, macht 160 Lötstellen je Tastaturplatine, Pinheader und LEDs kommen noch hinzu... reine Fleißarbeit :saint:

    Schließlich sah das Ergebnis so aus... Links die beiden schon aufgebauten Platinen #1 und #2, Rechts die neu bestückten Platinen #3, #4 und #5



    Die Platinen #3 und #4 liefen auf Anhieb. Der Cursor und das "K" erschien auf dem Bildschirm.


    Für Platine #5 hatte ich ja keine Sockel. Nur CPU, ROM und RAM habe ich gesockelt.

    Für die 74er-Logikbausteine hab ich es dann so gemacht, dass ich alle ICs aus den Sockeln von Platine #4 verwendet habe.

    Nachdem ich wusste, dass Platine #4 läuft, mussten die ICs ja alle in Ordnung sein. Diese lötete ich also dann ungesockelt direkt in Platine #5 ein.

    Platine #4 erhielt einen neuen Satz 74er-ICs, mit denen die Platine auf Anhieb wieder lief.


    Platine #5 wollte zunächst nicht laufen. Ein schwarzes Bild mit Sync erschien. =O

    Ich dachte Schei*benkleister, ausgerechnet die Platine ohne Sockel...:cry:

    Dann wurden nacheinander RAM, ROM und CPU getauscht... und siehe da... eine CPU von den fünfen war defekt... die war zum Glück gesockelt.

    Mit der CPU von Platine #4 lief das Board. :puhh: Glück gehabt. Eine weitere Z80-CPU ist bestellt, die sind ja nicht teuer.


    Alle 5 ZX81+38 - Boards laufen nun :thumbsup:

  • Gehäuse- und Labelarbeiten:


    Während der ganzen Bestückungsorgie, lief mein 3D-Drucker auf Hochtouren. Die Boards wollen natürlich alle in ein standesgemäßes Gehäuse eingebaut werden :)

    Ein Gehäuse hatte ich ja von Anfang an schon gedruckt. In dieses wurde Board #2 eingebaut (sieht man auch schon weiter oben beim Kurztest).


    Für die Board #1 und #3 bis #5 waren bis Ende Woche vier Gehäuse gedruckt... ähm, fast, ... das Bodenteil vom letzten Gehäuse fehlt noch und die Filamentrolle ist schon verdächtig leer. Hoffe das reicht noch. Neues schwarzes PLA ist aber bestellt.


    Das Gehäuse besteht aus 4 Teilen. Boden, Deckel und für die Tastatur noch 2 Teile.



    Zusammengesetzt sieht das dann so aus.


    Die Platinen #3 bis #5 mussten noch mit einem Stecksockel für den Tastaturanschluß versehen werden, dann konnten die Gehäuse montiert werden.

    Der Schönheit wegen, hab ich die Gehäuse noch mit Labeln versehen und die zwei Tape-Buchsen beschriftet.

    Sieht jetzt so aus:




    #1 wartet noch auf sein Gehäuseunterteil


    Hurra! :juhu: Bin jetzt stolzer Besitzer von 5 funktionierenden ZX81+38 (na ja eigentlich erst nach Lieferung der Ersatz-CPU für #5) :thumbsup:

    Mein Dank geht an dieser Stelle auch nochmal an bigby , der die Tastatur und das Gehäuse erstellt hat. :thnks:

    Sein Blog auf Hackup.net hat mich zum Bau dieses legendären Retro-Computers animiert.


    Nächste Woche will ich mal die Tapeanschlüsse testen. Hab schon mal ein paar Spiele runtergeladen, die werden in WAV-Dateien konvertiert und auf Tape (oden Handy) gespielt.

    Mal sehen, ob ich einige der legendären ZX81-Spiele zum laufen bekomme. Ah ja, ein Joystickanschluß ist ja auch schon eingebaut, den muss ich dann auch noch testen...


    Viele Grüße

    Manfred

  • Hurra! :juhu: Bin jetzt stolzer Besitzer von 5 funktionierenden ZX81+38 (na ja eigentlich erst nach Lieferung der Ersatz-CPU für #5) :thumbsup:

    Man kann nie genug Z80 Rechner zuhause haben. :prof: :ChPeace

  • Der Vollständigkeit halber...


    Das Bodenteil fürs Gehäuse von Board #1 ist jetzt auch fertig geworden.

    Nach 10Std 21Min war der 3D-Drucker fertig und hatte grade mal noch ca. 10cm Restfilament. :roll:

    Glück gehabt, denn sonst wäre es vergeblich gewesen... :puhh:


    Also #1 auch fertiggestellt und getestet:


    Hier jetzt die Galerie der glorreichen 5, mal draußen fotografiert :applaus:


    Bin Megastolz auf meine 5 Schönheiten :ChPeace

    Viele Grüße

    Manfred

  • Verdammt. Jetzt muss ich meinen gebrickten ZX81plus38 doch noch einmal hervorkramen ... :D

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Aber was hast Du denn mit 5 Stück von denen vor? Besser haben als brauchen?

    Ja, erst mal besser haben als brauchen. :saint:


    Evt. kommen 3 davon später mal in den Marktplatz... halt nur 2, hab ja schon einen Interessenten...

    2 Stück davon will ich aber auf jeden Fall selbst behalten. <3

  • 2 Stück davon will ich aber auf jeden Fall selbst behalten. <3

    Absolut sinnvoll, die kannst du dann gegeneinander Schach spielen lassen!

    Oder wie wäre es mit einem ZX81-Cluster? :D

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • manfred.moser : auch von mir Kompliment zum erfolgreichen Nachbau! :thumbup: Mich würden die Materialkosten für so eine ZX81-Replika interessieren, vielleicht kannst du die irgendwann mal ausrechnen. Bei meinem Galaksija Plus-Nachbau waren es ungefähr 80 Euro, allerdings ist dessen PS/2-Adapter deutlich günstiger als eine echte Tastatur.

  • Wie nachbausicher ist das Projekt eigentlich im allgemeinen? Ist da "zusammenlöten, einschalten, geht" eher die Regel oder die Ausnahme?

    Gibt es eine "known to work" BOM mit zur Zeit gut verfügbaren Bauteilen?


    Reizen würde mich sowas ja auch mal, Löterfahrung ist auch vorhanden, aber die Timings von verschiedenen 74x-Varianten auszuknobeln liegt dann doch jenseits meines Erfahrungs- und Zeithorizontes ;(

  • Nach 10Std 21Min war der 3D-Drucker fertig und hatte grade mal noch ca. 10cm Restfilament. :roll:

    Glück gehabt, denn sonst wäre es vergeblich gewesen... :puhh:

    Muss nicht sein. Es gibt Hilfsmittel mit denen man zwei Filamentenden verschweißen kann.

  • Wie nachbausicher ist das Projekt eigentlich im allgemeinen? Ist da "zusammenlöten, einschalten, geht" eher die Regel oder die Ausnahme?

    Gibt es eine "known to work" BOM mit zur Zeit gut verfügbaren Bauteilen?


    Reizen würde mich sowas ja auch mal, Löterfahrung ist auch vorhanden, aber die Timings von verschiedenen 74x-Varianten auszuknobeln liegt dann doch jenseits meines Erfahrungs- und Zeithorizontes ;(

    Also mit dem CPU-clk-Fix hat es bei mir dann ohne Probleme sofort funktioniert. Die Boards #3 bis #5 liefen damit auf Anhieb (außer dass CPU #5 defekt war natürlich).

    Und mit den Boards #1 und #2 hab ich - nachdem der Fix einbaut war - verschiedene 74x-Varianten durchprobiert. Die sind alle gelaufen, siehe Beitrag #59 weiter vorne im Threadverlauf.


    Wer jetzt in den Nachbau einsteigen will sollte auch mal überlegen, ob er nicht die Platinen in der Variante von Sascha Ittner bestellt.

    Dort ist der CPU-clk-Fix schon eingebaut und noch einige andere Änderungen/Verbesserungen.


    • fixed pinout of tape connectors CO2/CO3
    • fixed rotation/position of keyboard connector J3
    • fixed CPU clock phase
    • fixed position of connectors and mounting holes
    • replaced USB power connector with 2.1/2.5 mm power plug
    • simplified memory address decoder to allow full usage of RAM/ROM memory
    • fixed video output sync latch to avoid ghost lines


    Allerdings kann es sein, dass die von mir verwendeten STL-Dateien für das Gehäuse von bigby nicht mehr passen, da er die Positionen von Anschlüssen und Montagelöchern verändert hat. Dafür ist es näher am Originalgehäuse vom ZX81 aus den 80ern. Mag sein, dass es dafür auch STL-Dateien im Netz gibt. Hab ich jetzt nicht weiterverfolgt.

    Auch der Keyboard Connector hat ein anderes Pinout. Wenn man das Keyboard von bigby verwenden will, muss man das Kabel zu J3 drehen.


    Edit:

    Achso ja die BOM von mahjongg's Github funktioniert grundsätzlich.

    Hier die BOM nochmal als PDF, weil nicht jeder mit den ODS-Dateien klarkommt.

    ZX81BOM.pdf