Viele Grüße an alle!
Ich wollte euch von meinem neuen Projekt erzählen. Vielleicht fänden es einige der Benutzer hier interessant, etwas darüber zu erfahren.
Vor einiger Zeit habe ich ein neues Projekt für ein ATX-Mainboard-Design angefangen. Meine Idee ist, ein ATX-PC-Mainboard mit dem 80286 zu entwerfen, was normalerweise relativ einfach sein dürfte, ich habe jedoch vor, dies ohne die Verwendung eines integrierten Chipsatzes zu tun.
Ich möchte ein Mainboard entwerfen, das einen 16-Bit-ISA-Bus verwendet und den frühen AT-Systemen wie dem IBM 5170 ähnelt. Mit normalen Interrupt-, Timer-, RTC- und DMA-ICs. Außerdem habe ich vor, einen Floppy-Controller, LPT, COM-Port und IDE auf dem Mainboard zu integrieren, und wenn noch genügend Platz übrig ist, vielleicht auch LAN und SCSI.
Die Idee besteht darin, ein Mainboard zu entwerfen, bei dem die eigentlichen Steuerlogikfunktionen von normalen Logik-ICs übernommen werden können. Ich bin mir nicht sicher, ob ich es schaffen kann, ohne programmierbare Logik zu verwenden, da dies notwendig werden kann, wenn das Timing nicht schnell genug sein kann.
Bei meinem XT-PC-Design hatte ich bereits einige Schwierigkeiten, das DMA-Handshaking mit ausreichenden Timing-Geschwindigkeiten zu steuern. Ich glaube, dass der AT ähnlich schwierig sein könnte.
Ich dachte über den Designprozess nach und kam zu dem Schluss, dass ich mehr Sicherheit als nur die IBM 5170-Schaltpläne als Ausgangspunkt haben wollte. Ich bevorzuge es, mit einem funktionsfähigen Mainboard als Referenz zu arbeiten, falls es Schwierigkeiten gibt, den Prototypen ordnungsgemäß zum Laufen zu bringen.
Vor einiger Zeit habe ich also bei Ebay ein NCR PC-8 Revision 0 Mainboard gekauft. Es wurde ohne CPU, BIOS-Chips und RTC-IC geliefert. Nach ausgiebigen Tests gelang es mir, das Gerät hochzufahren, es stellte sich jedoch heraus, dass DMA beim Zugriff auf das Diskettenlaufwerk überhaupt nicht funktionierte und sogar zu einem Systemstopp führte. Dasselbe passierte während meiner Tests mit DMA für eine Soundkarte. Ich habe versucht, was ich konnte, aber es gelang mir nicht, das Mainboard zuverlässig zum Laufen zu bringen. Ich glaube, dass dieses Mainboard einige Leiterbahnbrüche aufwies, da es beim werkseitigen Löten extrem verzogen wurde und sich die Fehlfunktionen immer verschlimmerten, während alle von mir getesteten Komponenten nicht defekt waren.
Am Ende funktionierte das Mainboard sogar nicht mehr normal, so dass ich schließlich leider gezwungen war, die Reparatur dieses NCR-Mainboards aufzugeben.
Ich konnte auch keinen Schaltplan finden, um eine Durchgangsprüfung durchzuführen, was natürlich bestenfalls schwierig ist, wenn es um Leiterbahnunterbrechungen geht.
Vor kurzem hatte ich das Glück, ein weiteres Mainboard von einem österreichischen Ebay-Verkäufer zu finden. Es handelt sich um das relativ unbekannte ARC (American Research Corporation) X286 Model 12. Ich sah Ähnlichkeiten mit dem IBM 5170, aber auch gewisse Unterschiede. Der Turbo-Takt liegt offenbar bei 12,5 Mhz.
Nachdem ich das ARC Mainboard per Post erhalten hatte, stellte ich fest, dass es sogar beschädigt war während des Transports und das PCB-Material an einer Ecke teilweise eingerissen war. Ich habe die Platine vorsichtig mit Hitze ausgerichtet. Der aufgerissene Bereich weist offenbar keine nennenswerten Leiterplattenspuren auf. Ein kleines Wunder!
Ich fuhr fort, die Platine vollständig zu waschen und zu reinigen. Anschließend habe ich das Mainboard noch einmal getestet. Es kann Disketten formatieren und Spiele mit Ton spielen, es funktioniert zuverlässig unter Windows 3.0 und besteht RAM-Tests. Ich hatte auch das Glück, einen funktionierenden Coprozessor auf diesem Mainboard zu haben. Bei der CPU handelt es sich um einen Keramikprozessor der AMD-Version mit goldenen Anschlüssen an der Unterseite. Ich werde es später mit einer moderneren PLCC-Kunststoff-CPU testen. Da meine chinesische Entlötstation defekt ist, benötige ich zunächst Ersatz, bevor ich ICs oder Sockel von diesem Mainboard entlöten kann.
Was ich jetzt tun werde, ist, einen Schaltplan zu entwerfen, der teilweise aus den IBM-Quellen stammt, teilweise aus der Messung der Verbindungen auf dem ARC-Mainboard und teilweise aus meinem eigenen Design. Ich werde versuchen, diesen Prozess in einem einzigen Schritt durchzuführen. Ich werde bestimmte Dinge aus meinem XT-Design kopieren, um etwas Zeit zu sparen, wie z. B. die Abmessungen der Platine, die Positionen der ISA-Stecker, die ATX-Steuerkreise usw.
Auf diesem Mainboard gibt es eine programmierbare Logik, die ich ersetzen muss. Einige dieser ICs dienen der DRAM-Steuerung, die ich nicht benötige, da ich versuchen werde, SRAM-ICs zu verwenden. Ich bin mir nicht sicher, ob diese die volle Geschwindigkeit bei 12,5 MHz erreichen können, was ich testen muss. Ich habe einige 4-Mbit-SMD-SRAM-ICs, die ich für das PCB-Layout verwenden werde. Ich werde wahrscheinlich 8 oder 16 dieser ICs verwenden, was 4 oder 8 MB RAM entspricht.
Ich muss wahrscheinlich etwas recherchieren, um eine detaillierte Speicherzuordnung zu erstellen, möglicherweise mit einigen Jumper-Auswahlmöglichkeiten, zum Beispiel für die UMB-RAM-Segmente D0000 und E0000. Dadurch können 128 KB DOS-TSR-Treiber in den UMB-Bereich des RAM geladen werden.
Wenn jemand hier Ideen oder Informationen zum Speicherlayout eines 286-PCs hat, wäre ich dankbar.
Ich werde auch versuchen, bestimmte seltene TTL-ICs wie den 74ALS646 und den 74LS612 nach Möglichkeit durch normale Logik zu ersetzen. Auch deshalb ist ein Referenz-Mainboard für Testzwecke durchaus sinnvoll.
Ich habe das Quadtel IBM 5170-kompatible BIOS getestet, das zwar gepostet werden konnte, aber nicht mit dem Intel Tastaturcontroller auf dem ARC-Mainboard kompatibel war, also habe ich es durch das VIA VT82C42 ersetzt. Danach konnte ich im CMOS-Setup die Uhrzeit, das Datum und die Tastaturoptionen erfolgreich einstellen.
Ich bin mir unter anderem nicht sicher, ob es möglich sein wird, mehr als 1 MB RAM zu verwenden. Ich frage mich, ob das BIOS einfach testet, wie viel RAM auf der CPU verfügbar ist. Ich bin mir noch nicht sicher, ob ich die gesamte RAM-Größe irgendwie im BIOS einstellen muss oder ob es einfach ausreicht, den RAM im Speicherlayout richtig zu dekodieren.
Wenn jemand nützliche Tipps oder Informationen zum BIOS und zum Tastaturcontroller hat, wäre ich dankbar. Ich denke, dass bestimmte Tastaturcontroller programmierbar sind? Wäre es möglich, den ROM-Code des Tastatur-Controllers herunterzuladen?
Ich plane, meine Mainboard-Designs in Zukunft auf Github zu veröffentlichen. Allerdings muss ich zunächst einige Bedingungen formulieren und sicherstellen, dass alle Danksagungen enthalten sind und alle Personen erwähnt werden, die mich inspiriert haben. Dies erfordert zunächst einige Vorbereitungen.
Wenn hier Interesse besteht, werde ich diesen Beitrag wahrscheinlich von Zeit zu Zeit mit meinen Fortschritten aktualisieren.
Ich habe einige Fotos dieses seltenen ARC-Mainboards beigefügt.
Danke fürs Lesen,
Mit freundlichen Grüße,
Rodney.