DIY diskretes Logik ATX Turbo-AT 286 Mainboard (ohne Chipsatz)

  • Ich hätte da nochmals einen Vorschlag für dein Projekt. Problematisch ist ja offensichtlich der Platzbedarf bei Diskreten Aufbau im ATX Formfaktor. Außerdem hast du ja schon mehrfach dein Interesse an an einem Weiteren Projekt mit 32bit CPU Technik bekundet.

    Jetzt kam mir da so eine Idee: ASUS hatte mal ein Mainboard mit "aktiver Backplane" und "CPU spezifische" Steckkarten. Das ganze war zur Pentium Zeit aber das Konzept hätte auch für dich Potential.


    Mein Vorschlag wäre jetzt, du entwickel eine Platine im ATX Faktor als ISA Backplane mit Zusatzkomponenten wie z.b. Serielle und Parallele Schnittstelle IDE evtl. SCSI und Netzwerk. Das ganze würde dann auch mit einem Handelsüblichen Industrie SBC funktionieren und könnte vor allem getestet werden. Als nächstes dann eine CPU Karte für 16bit CPUs, also 286er 386SX evtl. 486SLC. Und zum Schluss könntest du eine Solche Steckkarte für 32bit entwickeln. Die ATX Platine bleibt dabei unverändert und du könntest die CPU Karten auch auf einer normalen passiven Backplane "gegen testen" und vor allem du fängs nicht immer wieder von vorne an...

    386SX- 20 Mhz "Erster eigener Rechner!2" NoName Komponenten

    486DX -30 "Industrie PC" auf Steckkarte

    Super Sockel 7 Gigabyte GA-5AA 3Dfx Voodoo 3500 TV

    AMD "Geode" ebenfalls Steckkarte für Backplane

    3x IBM Netvista 8364 "ThinRetroSystem" 1-2 von denen würde ich tauschen...


    "und noch so einiges mehr... "

  • Hallo Stefan307,


    Danke für deine Antwort. Tatsächlich habe ich bereits über eine Möglichkeit nachgedacht, die CPU im System einfach austauschen zu können. Und deine Antwort trägt auf jeden Fall dazu bei, dass ich mehr über diese Angelegenheit nachdenken werde.


    Allerdings denke ich eher an eine sehr kleine Karte, um nur die CPU auszutauschen. Und wenn ich eine 32-Bit-CPU mit dem ISA-Bus-Mainboard verwende, denke ich, dass die relevanten Schaltkreise auf der CPU-Steckkarte platziert werden können, wenn an derselben Stelle auch eine etwas größere Karte Platz finden könnte.


    Die Verwendung einer 32-Bit-CPU ist definitiv eine komplexere Angelegenheit und würde meiner Meinung nach eine 4-Lagen-Platine erfordern. Wenn ich ein 32-Bit-Design mache, möchte ich auf jeden Fall eine Art 32-Bit-Systembus haben. Vielleicht könnte ein weniger komplizierter Bus für einen ersten Versuch in Frage kommen, vielleicht ein VESA-Lokalbus, aber ich habe das Thema noch nicht recherchiert, das kommt später.


    Ich habe einige Episoden von „The Computer Chronicles“ gesehen, in denen bestimmte Hersteller ihre Konzepte für ein modulares Mainboard und den Austausch von Teilen davon vorführten. Für eine kommerzielle Fertigung war es damals natürlich viel zu teuer. Für Hobbyzwecke wäre das jedoch kein Problem.


    Ich werde alle Kommentare, Ideen und Antworten hier bei meinen Designentscheidungen sorgfältig berücksichtigen. Beim Zusammenstellen des Schaltplans werde ich die Logik bereits in Abschnitte unterteilen, um die Aufteilung des Designs im weiteren Verlauf einfacher zu machen.


    Im Moment würde ich mich freuen, ein Referenz-Mainboard zu finden, mit dem ich gut und stabil arbeiten kann, und mit dem ich mit dem Design beginnen kann. Ich könnte mich für einen IBM 5170 entscheiden, allerdings sind die extrem teuer.


    Natürlich wird mein 286-Projekt in Zukunft auch auf GitHub veröffentlicht.


    Nochmals vielen Dank, Stefan307, für deinen Beitrag, ich weiß das zu schätzen.


    Mit freundlichen Grüße,


    Rodney.

  • Lassen wir den Rodney erstmal machen – 386SX ist doch bereits super und ermöglicht dieselbe Software laufen zu lassen wie auf einem richtigen 32-Bitter :thumbup: Wenn, sollte das etwas separates sein.


    Übrigens, gibt es Neuigkeiten, rodney ? Hast du irgendwo ein passendes Board finden können, oder bist du beim IBM-Board geblieben? :)

  • Hallo H.EXE,


    Vielen Dank für dein anhaltendes Interesse an meinem Projekt. Ich habe euch viel Neues über das Projekt zu erzählen.

    Wie Matt anmerkte, ist der IBM 5170 auch ein guter Kandidat für mein Projekt als Referenz.


    Ich habe bei einem Verkäufer in Großbritannien ein defektes 5170-Mainboard zu einem angemessenen Preis gefunden, also habe ich es gekauft und einige Reparaturen und Restaurierungsarbeiten daran durchgeführt. Er schickte es mir in einem Umschlag und zu meinem Erstaunen überstand es die Reise zu mir nach Hause völlig unversehrt und unbeschädigt! Was für ein Glück!


    Nachdem ich mir einen NCR PC-8 und zwei ARC-Motherboards angesehen hatte, zeigten sie bei meinen Tests alle verschiedene Probleme und erweckten überhaupt kein Vertrauen. Die Speicherkapazität des IBM ist schlecht, aber ich hatte ohnehin schon vor, das gesamte Speichersubsystem auszutauschen. Aber wenn es um Stabilität geht, ist der 5170 ein großer Gewinner!


    Also habe ich die 5170-Schaltpläne in KiCad vollständig neu erstellt und als nächstes das IBM PAL U87 zurückentwickelt, das die wichtigste Komponente ist, die es zu knacken gilt, um einen funktionierenden Nachbildungsschaltplan des 5170 zu erhalten.


    Um es kurz zu machen: Ich habe es geschafft, die U87-Logik zu knacken, zusammen mit Benutzer Johann (jonny64 in den VCF-Foren) der einige Python-Skripte geschrieben hat, um mich bei der Arbeit zu unterstützen. Das U87 PAL hatte eine solche Programmierung von IBM, dass es für mich wirklich schwierig und ein kompletter Albtraum war, mit vielen schlaflosen Nächten, bis ich endlich die vollständig funktionsfähige, von IBM entworfene Originallogik fand. Johann konnte meine bereits funktionierenden Gleichungen weiter auf eine Version reduzieren, von der wir glauben, dass sie die vollständige Originalprogrammierung des U87 PAL durch IBM darstellt. U87 ist so wichtig, weil es benötigt wird, um eine vollständige 8-Bit-Kompatibilität für das AT-Design zu erreichen.


    Der 286-Prozessor enthält keine Logik und keinen Mechanismus zur Anpassung des CPU-Zyklus, um die Konvertierung von 8-Bit- in 16-Bit-Datenbytes zu unterstützen. Deshalb hat IBM eine eigene Lösung in den 5170 integriert, die für die Gewährleistung einer 100-prozentigen Software- und Hardware-Kompatibilität des 16-Bit-AT-Designs mit der gesamten 8-Bit-PC-Technologie unerlässlich war. Das geniale Herzstück dieser Lösung ist das U87 PAL.


    Übrigens, wenn wir uns die 486 DX2-CPU ansehen, stellen wir fest, dass Intel einige Ideen von IBM in ihren 486 übernommen hat, der selbst in der Lage ist, alle 8-Bit- und 16-Bit-IO- und Speicherzugriffsdatenstrukturen zu übersetzen um volle Kompatibilität mit bisherigen PC-Technologien und dem 16-Bit ISA-Bus zu erreichen. Dies reduziert die Komplexität der externen PC-Logik bei Verwendung einer 486-CPU erheblich. Die Datenübersetzungen extern durchzuführen, würde eine enorme Herausforderung darstellen, die glücklicherweise nicht erforderlich ist, wenn ich mich für ein 486-Projekt entscheiden wurde.


    Nachdem ich das PAL geknackt hatte, habe ich bereits überprüft, ob es mit dem 5170-Mainboard voll funktionsfähig ist. Ich habe festgestellt, dass es nicht vernünftigerweise möglich ist, das 16-Bit-AT-Design im TTL-Friedhofsformat zu erstellen. Dies würde zu einer riesigen Leiterplatte führen, die vollständig mit TTL-ICs belegt wäre und auf die außer reinen Logik-ICs keine anderen Geräte oder gar Speicherchips passen würden. Also wurde mir klar, dass ich eine programmierbare Logik benötigen würde, um die große Anzahl an TTL-ICs zu reduzieren, die sonst benötigt würden. Da ich zu dem Schluss kam, dass ich für mein Projekt CPLD-Logik benötige, beschloss ich auch, viele der anderen notwendigen Schaltkreise in drei CPLDs zu integrieren.


    In meinem neuen Design gibt es einen Systemkontroller CPLD, einen IO-Dekoder CPLD und einen Speicherdekoder CPLD. Bei allen handelt es sich um 84-polige PLCC-ICs, die in PLCC IC-Sockel gesteckt werden können. Meine Hauptgründe für diese CPLD-Methode sind die Reduzierung der Leiterplattengröße und die Möglichkeit, später schnellere CPU-Taktraten testen und experimentieren zu können. Ich werde zum Beispiel ausprobieren, ob das System mit 16 MHz CPU Geschwindigkeit arbeiten kann. Da die externe Taktrate doppelt so hoch ist wie die interne Taktrate, führt dies zu einigen Einschränkungen hinsichtlich der mögliche Taktfrequenzbelastung der externen Logik auf dem Mainboard.


    Die CPU bildet zusammen mit dem IO-Decoder und den Systemcontroller-CPLDs einen großen angrenzenden Bereich meines 4-Lagen-PCB-Designs. Wenn ich also bei meinen nächsten Projekten einen 486SLC oder sogar einen 486 DX implementieren möchte, kann ich einfach die 286-CPU und den Coprozessor entfernen und nur einen Teil der Leiterplattenspuren neu verlegen, um wieder ein vollständiges System zu erhalten. Verglichen mit der Herstellung eines kompletten Boards ist dies ein relativ viel geringerer Arbeitsaufwand.


    Der aktuelle Stand meines Projekts ist, dass ich die Arbeit am Mainboard-Design abgeschlossen habe.

    Ich habe das 5170-Design umfassend modifiziert und erweitert, um es an das Konzept meines Projekts anzupassen.

    Ich bin sehr zufrieden mit dem Ergebnis des Projekts.


    Jeder, der Interesse hat, kann auf meiner GitHub-Seite nachsehen, wie es aussieht. Ich habe auch alle Schaltpläne, PCB-Gerbers und CPLD-Schaltpläne veröffentlicht, damit jeder sie sehen kann.


    Ich habe beschlossen, den gesamten RAM-Speicher, die Decoder und die Speicherbus-Transceiver komplett vom Mainboard zu entfernen und diese auf eine kompakte ISA-Speicherkarte zu verlagern. Dadurch ist es mir gelungen, alle Systemschnittstellen so auf das Mainboard zu bringen, wie ich es mir bei meinem Projekt vorgestellt hatte. Das Design der ISA-Slot-Speicherkarte ist ebenfalls fertiggestellt. Meine gesamte Arbeit an der CPLD-Logik ist ebenfalls abgeschlossen.


    Dieses Mal haben wir auf dem Mainboard zwei IDE-Schnittstellen, die primäre und die sekundäre IDE, 8-Bit-SCSI zum Erstellen von Backups und möglicherweise CD-ROM usw., und wir haben das Realtek LAN im 16-Bit-Modus und dieses Mal eine USB-zu-seriell-adaptierte Maus, die das kann Dank des Projekts von LimeProgramming kann jede moderne kabellose USB-Maus verwendet werden. Ihr könnt es auch auf seiner GitHub-Seite sehen. Ich werde eine kleine Adapterplatine für den RP2040 herstellen, mit dem die USB-Maus serielle TTL-Signale direkt in den integrierten UART übersetzt. Die USB-zu-seriell-Mauskonvertierung ist so effektiv, dass sich die Steuerung der Mausfunktionen genauso anfühlt wie die Steuerung eines modernen PCs mit einer USB Maus. Eine enorme Verbesserung!


    Der Coprozessor benötigt außerdem eine gewisse Logik, um funktionieren zu können. Dies wurde in einem anderen PAL, U130, durchgeführt, was relativ einfacher ist. Ich könnte die wahrscheinliche Logik selbst ableiten, ohne den tatsächlichen PAL zu analysieren. Sollte sich herausstellen, dass der Coprozessor meines Prototyps nicht funktioniert, werde ich mich weiter mit der Analyse von U130 befassen, aber im Moment denke ich nicht, dass es nötig sein wird, weil es eine Menge Dokumentation darüber gibt, wie der 80287 im IBM AT funktionieren soll Ich glaube es wird schon klappen.


    Dieses Wochenende habe ich die Leiterplatten beim chinesischen Leiterplattenhersteller bestellt. Ich hoffe sie in ein paar Wochen zu erhalten und mit der Lötarbeit und dem Testen des Prototyps beginnen zu können.


    Hier ist der Link zu meiner GitHub-Seite, jeder kann es über diesen Link ins Deutsche übersetzt lesen:

    GitHub - rodneyknaap/atx-286at-v1-mainboard: This project features a design for a 80286 ATX mainboard based on the IBM 5170 AT PC
    This project features a design for a 80286 ATX mainboard based on the IBM 5170 AT PC - rodneyknaap/atx-286at-v1-mainboard
    github.com

    (Ich hoffe, es funktioniert so für Euch mit dem Link)


    Hier ist ein Link zu einigen Diskussionen im VCF-Forum, wo ich mit Johann insbesondere an den Problemen des Reverse Engineering des U87 PAL gearbeitet habe. Die Gleichungen und JED-Dateien findet ihr auch im VCF-Thread:

    Project to create an ATX 80286 mainboard based on the IBM 5170
    Rodney, did you check at aisler.net? Not sure how much more expensive they are, but maybe less surprises and no import tax…
    forum.vcfed.org


    Im Moment ist mein Projekt also noch komplett ungetestet. Sobald ich die Leiterplatten aus China erhalte, werde ich mit dem dem Testen des Prototyps beginnen.


    Mit freundlichen Grüße,


    Rodney

    Einmal editiert, zuletzt von H.EXE () aus folgendem Grund: Fixed Hyperlinks

  • Toll! Insbesondere die Speicherkarte könnte außerdem auch für andere Systeme interesannt sein!

    386SX- 20 Mhz "Erster eigener Rechner!2" NoName Komponenten

    486DX -30 "Industrie PC" auf Steckkarte

    Super Sockel 7 Gigabyte GA-5AA 3Dfx Voodoo 3500 TV

    AMD "Geode" ebenfalls Steckkarte für Backplane

    3x IBM Netvista 8364 "ThinRetroSystem" 1-2 von denen würde ich tauschen...


    "und noch so einiges mehr... "

  • Danke Stefan307,


    Ja, ich hatte den gleichen Gedanken. Vielleicht nehme ich mir später die Zeit, die Karte auf dem 5170-Mainboard zu testen.

    Ich möchte den 5170 so modifizieren, dass er mit dieser Karte nur unter Verwendung von SRAM funktioniert, ohne DRAM.


    Auch andere frühe ATs könnten diese SRAM-Karte möglicherweise verwenden, solange die Taktfrequenz nicht zu hoch ist, als dass die SRAMs mithalten könnten, und das System mit einer externen RAM-Karte kompatibel gemacht werden kann.


    Grundsätzlich ist mein Speicherkartendesign aus Sicht der Karte durch die Neuprogrammierung des CPLD völlig flexibel.

    Mehrere Ausgänge des CPLD führen zu einem 10-poligen Anschluss, der sogar eine einfache Interaktion mit allen Mainboard-Signalen ermöglicht, die nicht im ISA-Steckplatz vorhanden sind.


    Die Gerberdateien und der Schaltplan stehen allen zur Verfügung, die sie auf einem PC verwenden möchten.


    Bitte beachtet dann aber: Bei jeder Verwendung gilt immer die übliche Vorsicht. Jeder Hersteller arbeitet ausschließlich auf eigene Verantwortung und Risiko, wenn er irgendetwas an seinen PC anschließt. Um Konflikte auszuschließen, sollte zunächst der Systemaufbau des Mainboards betrachtet werden. Was nicht immer einfach und transparent ist, wenn das Mainboard ein Chipsatz-Design verwendet.


    Bei fehlerhafter Programmierung oder einem Kurzschluss aufgrund einer Lötbrücke usw. kann jeder PC beschädigt und defekt werden.


    Wenn und wann er dies tut, muss der Hersteller also jede Vorsichtsmaßnahme beachten, um sicherzustellen, dass es nicht zu Buskonflikten mit dem Mainboard usw. durch Überlappung dekodierter Speicherbereiche auf dem Mainboard kommt. Daher muss er im Grunde genau wissen, wie das geht und keine Probleme oder Schäden an seiner Maschine verursachen. Neben dem Konflikt als Risiko für Defekte führt ein Buskonflikt sowieso auch zum Absturz des PCs.


    Viele BIOS-Programme gehen davon aus, dass sich der gesamte XMS-RAM auf dem Mainboard befindet, insbesondere bei Chipsatz-PCs. Somit aktiviert der Chipsatz die integrierten Datentransceiver, die die SIMMs oder SIMMs oder DRAM-Arrays verbinden. Dies muss auch erfolgen, um vom Benutzer angeschlossene RAM-Kapazitäten erkennen zu können. Wenn das Mainboard-BIOS den Speicher erkennt und versucht, ihn den integrierten Transceivern zuzuordnen, könnte dies bereits zu Konflikten führen. Am besten wäre es, den gesamten Speicherbereich durch die Karte zu ersetzen und zunächst alle Speicherbus-Transceiver vom Mainboard zu entfernen. Der Betrieb des Mainboards muss also in jedem Fall berücksichtigt werden, der schon einige subtile Designvarianten haben kann.


    Beispielsweise wären die frühesten AT-Computer die besten Kandidaten, um möglicherweise meine ISA-Speicherkarte zu verwenden.Diese Computer sind eingeschränkter, da sie keine SIMMs verwenden, sodass eine benutzerdefinierte Karte möglich eine Lösung sein könnte. Es hängt vom System ab.


    Mit freundlichen Grüße,


    Rodney

  • Bei den frühen 5170 Boards ist ja das Problem das die RAM Chips immer seltener werden. Dann hätte ich noch ein 386er Board mit 256k und es gibt nur sehr wenige Erweiterungen die sich passend einstellen lassen...

    386SX- 20 Mhz "Erster eigener Rechner!2" NoName Komponenten

    486DX -30 "Industrie PC" auf Steckkarte

    Super Sockel 7 Gigabyte GA-5AA 3Dfx Voodoo 3500 TV

    AMD "Geode" ebenfalls Steckkarte für Backplane

    3x IBM Netvista 8364 "ThinRetroSystem" 1-2 von denen würde ich tauschen...


    "und noch so einiges mehr... "

  • Ja die Chips für das 5170 Board REV. 1 werden ziemlich teuer gehantelt und sind leider auch seltener zu finden.

    Mir fällt auch kein anderes Board ein was die Chips als kombination so nutzte.


    Aber man kann auch für einzelne suchen und dann welche aufeinander löten, es gibt Listen welche Chips dafür geeignet sind.


    für 286 sind solche Speicher Karten interessant.

    Ab schnelleren 386 werden die Karten doch vermutlich zur Bremse für das System.

    Das dürfte sich doch so verhalten wie der Speicher in der Isa Grafikkarte.

  • Ab schnelleren 386 werden die Karten doch vermutlich zur Bremse für das System.

    Die Frage ist auch: Wo und wie blendet sich das ins System ein, und sind die dann auch im Protected Mode verfügbar?

    root42 auf YouTube


    80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, GUSar Lite & TNDY & SnarkBarker, PC MIDI Card + SC55 + MT-32, XT CF Lite, OSSC 1.6

  • das ist natürlich auch noch eine Überlegung, weil die typischen Systeme die normale ISA Speicherkarten hatten maximal 286 waren, welche zu99% nur im 8088 Modus liefen.


    386/486 Boards die Speicherkarten hatten, hatten immer spezielle Sockel, die liefen nicht über ISA, das wäre auch zu langsam gewesen.

  • Hallo rodney, das neue Board sieht vielversprechend aus! Die Umstellung auf CPLDs ist sicher eine Herausforderung gewesen, aber es spart am Ende wirklich Platz und Kosten, dennoch sind alle Chipsatz-Chips weiterhin im Original dabei. Finde ich gut. ;)


    Eine Frage, kann man beim Aufbau den integrierten IO-Teil auch weglassen? Meistens hat man ja IO- und SCSI-Controller ohnehin genug zur Hand.

  • Hallo Stephan307,


    ich habe mehr über die Verwendung der ISA-Speicherkarte nachgedacht, mit Beispielen, wie du erwähnst, die gute Gründe dafür wären. Ich denke, es wäre am besten, sich das Mainboard genau anzusehen. Eine Sache, die mir in den Sinn kommt, ist möglicherweise das Entlöten der integrierten Speicherdatenbus-Transceiver oder deren Deaktivierung, indem der /OE-Pin an VCC am High- und Low-Byte-Transceiver für den Speicherdatenbus gebunden wird. Dies würde die Freiheit ermöglichen, die ISA-Karte vollständig zu nutzen und den RAM nach deinen Wünschen zuzuweisen. Wenn es sich um einen Chipsatz handelt, muss möglicherweise weiter geprüft werden, ob der Speicherdatenbus auf dem Mainboard über einen Chipsatz-Steuerpin deaktiviert werden kann. Ich denke, dass die typischen Chipsätze auch Transceiver in einen der Chips integrieren, um die Logik im Vergleich zu TTL-Chips zu beschleunigen.

  • Hallo Markus,


    Ja, jetzt erinnere ich mich auch, dass ich bei eBay einige wirklich teure DRAM-Stack-Chips gesehen habe. Tatsächlich sind diese viel zu teuer. Eine bessere Lösung für den 5170 ist wirklich die Verwendung einer SRAM-Karte wie in meinem Design. Wenn ich später Zeit habe, kann ich mir ansehen, wie ich das mit den geringsten Änderungen am Mainboard zum Laufen bringen kann.


    Ich liebe das 5170-Mainboard, das ich in Großbritannien gekauft habe, aber die Verwendung zum Ausführen von Software wird mit nur 512 KB schnell zum Problem. Daher werde ich mich sicherlich früher oder später mit diesem Thema befassen. Ich werde die Ergebnisse dann auch hier veröffentlichen sobald ich sie habe, da ich weiß, dass hier auch Interesse besteht.

  • Hallo root42,


    Es ist wirklich am besten, den gesamten DRAM im System durch SRAM auf der ISA-Karte zu ersetzen, wenn man dies in Erwägung zieht diese Karte zu benützen. Der geschützte Modus wird von der CPU per Softwareprogrammierung aktiviert und ist lediglich ein Betriebsmodus der CPU, sodass dies überhaupt kein Problem darstellt. Technisch gesehen wird der RAM über der 1-MB-Grenze, der direkt im CPU-Speicherraum dekodiert wird, als „XMS-RAM“ bezeichnet.

  • das ist natürlich auch noch eine Überlegung, weil die typischen Systeme die normale ISA Speicherkarten hatten maximal 286 waren, welche zu99% nur im 8088 Modus liefen.


    386/486 Boards die Speicherkarten hatten, hatten immer spezielle Sockel, die liefen nicht über ISA, das wäre auch zu langsam gewesen.

    Hallo Markus,


    Der Speicher unterhalb der 1-MB-Grenze könnte als Speicher im „8088“-Modus bezeichnet werden. Der ISA-Steckplatz ermöglicht jedoch auch die Anbindung des gesamten Speicheradressraums des 80286 über den ISA-Steckplatz. Dies wäre nur dann langsamer, wenn der betreffende 386 über einen 32-Bit-Datenbus verfügt. In diesem Fall würde ich empfehlen, eine Karte zu erstellen, die direkt an den 32-Bit-Datenbus angeschlossen ist, so wie es der Hersteller im Mainboard-Design vorgesehen hat. Tatsächlich müsste man bei einem 386 die Systemstruktur anhand der Chips und Anschlüsse auf dem Mainboard untersuchen. Diese Fälle sind wirklich komplizierter. Du könntest auch Hinweise finden, wenn es möglicherweise Fotos der Speicherplatinen gibt, auf denen du möglicherweise einen Hinweis darauf siehst, wie es gemacht wurde. Wenn sie PALs verwenden würden, wäre das komplexer und es wäre am besten, eine Beispielexemplar Platine für das jeweilige System zur Untersuchung zu haben. Ich denke, es sollte möglich sein, RAM über den 16-Bit-Datenbus mit einer 32-Bit-CPU zu verbinden. Im Falle eines 386 mit einem 32-Bit-Datenbus hängt dies davon ab, wie dieses System die Datenbyte-Konvertierung bestimmt und ob dies überhaupt möglich wäre. Ich hatte noch keine Zeit, das 386-Datenblatt zu lesen. Es hängt wirklich von jedem System ab, ob diese ISA-Speicherkarte eine Option wäre.

  • Hallo H.EXE,


    Danke, ich freue mich, dass es dir gefällt. Die Verwendung von CPLDs war nicht so schwierig, wie ich es mir vorher vorgestellt hatte, obwohl ich natürlich noch den ersten praktischen Fall testen muss. Vielleicht wird es also schwieriger, als ich dachte. Ich hatte bereits einige Schwierigkeiten mit diesem Projekt, insbesondere mit dem U87 PAL... Eine unsichere Sache ist noch der Tri-State-Modus der Ausgänge oder die Verwendung eines bidirektionalen Pins. Wie dies im CPLD-Design erfolgen sollte. Ich glaube, ich habe es richtig gemacht und es scheint keinen anderen Weg zu geben, also sollte es in Ordnung sein. Quartus verfügt zu diesem Zweck über mehrere Elemente, und bestimmte Elemente sind nur mit bestimmten CPLD-Typen kompatibel. Quartus überprüft dies jedoch und kompiliert das Design nicht, wenn ein Problem auftritt. Ob dies so funktioniert, wie ich angenommen habe, muss schon noch bestätigt werden. Ich habe in den VCF-Foren von niemandem eine Antwort zu diesem Problem erhalten. Auch die Dokumentation von Quartus, die ich bisher gesehen habe, ist in diesem Bereich nicht so detailliert. Deshalb habe ich im Design einige Vorkehrungen getroffen, um zunächst Schutzwiderstände zum Testen zu verwenden bei diese Pins. Wenn sich das CPLD wie vorgesehen verhält, können diese Widerstände von Drahtbrücken ersetzt werden. Quartus scheint über eine sehr intelligente Programmierung und Funktionen zu verfügen und überprüft viele Dinge, daher denke ich, dass es die CPLDs korrekt programmieren sollte. Und ich muss die Ausgabedateien in den Atmel-CPLD-Code konvertieren, um sie in eine Atmel-Version der MAX7000 CPLD-Reihe programmieren zu können.


    Es ist möglich, die Onboard-Schnittstellen wegzulassen, wenn du möchtest. Für die Nutzung dieser Schnittstellen sind jedoch nur ganz wenige Chips erforderlich, da ein Teil dieser Schnittstellen ebenfalls in die CPLD-Funktionen integriert ist. Außerdem gibt es noch die Möglichkeit, eine schönere Position der Flachbandkabel zu haben, indem man sie in das Mainboard einstecken kann statt in Karten, was immer unordentlicher aussieht. Aber technisch ist es schon möglich mit Karten zu arbeiten wenn man möchte. Außerdem würde ich doch auch empfehlen, den USB-zu-Seriell-Mausadapter von LimeProgramming auf dem Mainboard wirklich auszuprobieren. Nachdem du es einmal ausprobiert hast, würdest du wahrscheinlich keine serielle Maus mehr verwenden wollen... :)

  • PS: Im Falle eines SCSI-Adapters: Wenn Du eine 16-Bit-Karte hast, die auf einem 80286-System funktioniert, wäre diese möglicherweise schneller als der integrierte SCSI-Adapter. Allerdings bin ich immer noch ein großer Fan des 53C400-Chips, er funktioniert wirklich gut und super stabil. Ein wirklich tolles Chip-Design von NCR, das außer dem Chip selbst fast nichts braucht.

  • Ich habe noch ein paar Neuigkeiten falls du den Thread im VCF-Forum nicht verfolgt hast.


    Ich habe hart daran gearbeitet, den Prototyp des Mainboards und der Speicherkarte auf zu bauen und zu debuggen.


    Ich konnte das System dazu bringen, die POST-Tests zu bestehen und MS-DOS zu starten.

    Das System ist weitgehend funktionsfähig und ich kann Software ausführen, DMA funktioniert ordnungsgemäß, ich kann beispielsweise Ton abspielen und eine Diskette formatieren.


    Ich arbeite jedoch immer noch daran, einige Probleme zu beheben.


    Ein Problem besteht darin, dass das System mehrmals aus- und wieder eingeschaltet werden muss, bevor es im betriebsbereiten Zustand eingeschaltet wird. Anscheinend stürzt die CPU oft ab und fährt nur manchmal richtig hoch.


    Sobald das System dann funktionsfähig ist, kann ich es resetten und neu starten, und es ist immer wieder funktionsfähig.

    Das System kann stundenlang ohne Probleme oder Abstürze funktionieren, bis es abgeschaltet wird.

    Dann muss es wieder mehrmals aus- und wieder eingeschaltet werden, bis es wieder funktioniert.


    Ein weiteres Problem ist, dass ich einige Schwierigkeiten mit den Bildschirmaktualisierungen habe. Einige Zeichen behalten unter DOS ihre vorherigen Werte und werden nicht aktualisiert.

    Möglicherweise weist die Kommunikation von der CPU zum Videospeicher Zeitprobleme auf, die dazu führen, dass der Schreibvorgang in den Bildschirmspeicher fehlschlägt.

    Der Bildschirm ist schon lesbar, es fehlen jedoch an verschiedenen Stellen Zeichen.


    Die positive Nachricht ist, dass ich zumindest ein System habe, das ich testen kann, was das Debuggen viel einfacher macht als ein System, das komplett nicht funktionsfähig ist.


    Da ich einen großen Teil des originalen 5170 AT-Designs innerhalb der CPLDs nachgebildet habe, glaube ich, dass das Problem mit dem Timing der CPLD-Logik zusammenhängt.

    Ich habe das Design viele Male überprüft und konnte keine Fehler oder Probleme feststellen, sodass das Einzige, was bleibt, ein Timing-Problem sein müsste.

    Die CPLDs sind viel schneller als normale TTL-ICs.


    Deshalb habe ich das Quartus-Programm von Altera studiert, um herauszufinden, wie ich das Timing anpassen kann, um das Timing der TTL-Chips auf dem 5170-Mainboard genauer zu reproduzieren.


    Quartus übersetzt die Blockschaltplandatei in eine Technologieplandarstellung, die den VHDL-Code, der zum Programmieren der CPLDs verwendet wird, genauer widerspiegelt. Um das Timing anzupassen, muss dies auf die Logikelemente im Technologieplandiagramm selbst angewendet werden.


    Normalerweise habe ich meine Prototypen immer debuggt, indem ich TTL-Chips gegen schnellere oder langsamere Teile ausgetauscht habe, um das Timing anzupassen. Da sich die Steuerlogik jedoch jetzt in einem CPLD befindet, muss das Timing im CPLD-Programm geändert werden. Ich habe noch keine Erfahrung mit diesem Prozess und versuche daher herauszufinden, wie dies durchgeführt werden muss.


    In Quartus gibt es ein Timing-Softwaremodul namens "Timequest", das eine SDC-Datei generieren kann, die vom Quartus-Compiler zum Generieren der POF-Ausgabedatei für die Programmierung eines CPLD verwendet wird. Deshalb arbeite ich mit diesem Timing Programm, um zu versuchen, das Timing des 5170 genauer wiederzugeben. Ich habe nur ein billiges chinesisches Oszilloskop und bin mir daher nicht sicher, wie genau ich damit Timing-Messungen durchführen kann.


    Das System ist also funktionsfähig, aber es gibt einige Fehler, die ich beheben muss. Ich arbeite hart daran!


    Falls es hier im Forum jemanden gibt, der Erfahrung mit Quartus im Bereich der Änderung des Timings eines Designs hat, würde ich gerne, wenn möglich, einige Gedanken und Ideen austauschen. Dieses Projekt ist eine Menge Arbeit und ich würde mich über jede Hilfe freuen!


    Mit freundlichen Grüße,


    Rodney

  • guten Morgen...


    zuerst...Respekt für deine Arbeit....


    "Ein Problem besteht darin, dass das System mehrmals aus- und wieder eingeschaltet werden muss, bevor es im betriebsbereiten Zustand eingeschaltet wird. Anscheinend stürzt die CPU oft ab und fährt nur manchmal richtig hoch."


    braucht die CPU zum Initialisieren eine höhere Startspannung im kalten Zustand? wenn du mehrmals einschaltest umgehst du vielleicht das Thema in der CPU? ich bin auf gar keinen Fall ein Fachmann wie du aber mache mir natürlich trotzdem so meine Gedanken und versuche mein dürftiges Wissen zu erweitern.Deswegen...es ist nur ein Gedanke...

  • rodney MR BIOS :thumbup:


    Hast du das Problem mit dem Reset auch bei anderen BIOS Varianten?


    Ansonsten absoluten Respekt vor deiner Arbeit und Danke, dass du es auf GitHub veröffentlicht hast. 640KB arbeitet meines Wissens nach auch an einem BIOS für 286. AFAIK ist er da aber noch nicht ganz so weit und alles ist nur rudimentär in Vorbereitung. Aber für Details mal bitte selbst bei ihm nachfragen. Kontakt habt ihr beide ja bereits. ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!