Intel Inboard 386/PC <Bastel-Thread> Ram-Expansion

  • Nachdem ich jetzt an den Aufbau einer Erweiterungskarte für die Inboard 386-Karte gehen werde, dachte ich es ist Zeit dafür auch einen eigenen Thread zu öffnen ;-)
    Hier das Vorhaben:

    • Inboard 386 auf TI486DLC aufrüsten
    • 486DLC2 Testen
    • 486DLC2 auf 25mhz übertakten und Taktverdopplung aktivieren
    • 2Mb Erweiterungskarte besorgen
    • Erweiterungskarte durchmessen
    • Erweiterungskarte klonen
    • Ergebnisse und Layout einer mind. 4mb-Karte veröffentlichen


    Bisher habe ich die Punkte bis 5 fertig. In Folge der Sucherei nach einer Ramerweiterung habe ich nun auch ein 2. Inboard 386, welches ich verkaufen werde, sobald ich mit allem durch bin. Dieses Board wird dann 2mb, 4mb oder besser 8mb XMS haben und mit einem 486DLC33 mit 20mhz oder 25mhz ausgestattet sein. Als erstes Ergebnis hier noch einmal meine PDF mit den Pinouts zur 2mb-Erweiterung, welche ich son einmal in einem anderen Thread gepostet habe.

  • Hast Du das Timing eingestellt, um zu zeigen, was Du gerade treibst oder erhoffst Du Dir Hilfe bei der Fehlersuche?
    Falls zweites der Fall ist, würde ich vorschlagen, Aufnahmen zu machen, die nur einzelne Zugriffe zeigen, die dann aber eben wesentlich besser aufgelöst.
    Dann wäre zu klären, ob wir hier zum Teile (RAS, CAS,WE) tatsächlich aktiv high Signale sehen, wie es die Beschrifftung auf dem Bild und Deinem PDF nahelegen, oder nicht doch, wie ich vermute, aktiv low Signele, wie vom DRAM benötigt?
    Welches DRAM (Typ) setzt Du ein, damit man sich das passende Datenblatt herunterladen kann?
    Wird zu anderen Zeitpunkte während des Bootens auch RAS1 aktiv (auf dem Bild sieht man nur Aktivitäten während des Refreshs)?
    Die Zugriffe scheinen mittels static column fast page mode Zugriffen zu erfolgen - gibt es auch mal Zeitpunkte, bei denen CAS zwischen de Refresh-Zugriffen inaktiv wird?
    Kannst Du schon mit dem Board DOS laden und selbst geschriebene Programme compilieren und ausführen, so das gezielt bestimmte Zugriffe (Lesezugriff, Schreibzugriff) auf das Board ausgeführt werden können?
    Wenn nicht, würde ich zunächst mal detailierte Aufnahmen vom Refresh machen (auf RAS triggern, wenn kein sonstiger Zugriff erfolgt), danach von einem Schreibzugriff (auf WE triggern).

  • , wie ich vermute, aktiv low Signele, wie vom DRAM benötigt?
    Welches DRAM (Typ) setzt Du ein, damit man


    Ich fange derzeit wieder ganz von vorne an, da die 72pin Sims-module nicht funktioniert haben...


    Es sind active low Signale... und die Tests laufen mit der Intel 2mb Erweiterung.


    Es geht eher darum den pin p2.15 zu identifizieren (welcher auf der 2mb Erweiterung nicht genutzt wird) und eventuell die Schaltung, die bei dem 2MB-Modul benutzt wird zu vereinfachen, da ich die 2MB-Karte mit 2 Ram-ICs und ein wenig Support-Logic ersetzen kann. Nur will ich eher 4mb, 8mb oder sogar 12mb auf einer Erweiterung realisieren. Derzeit versuche ich heraus zu finden, wie ich die Paritätsprüfung auf der Karte deaktivieren kann...


    Pins/Signale, die auf dem cbm Modul nicht genutzt werden: A9, p2.15


    Mit einem anderen Bastler in Schweden, der eine 4mb Erweiterung von Intel besitzt bin ich im Kontakt um die Schalung dieses Moduls heraus zu bekommen.


    Die von mir nun vorgesehenen DRAM Bausteine sind GM71C18163CJ6 (1mbx16). Ich benötige 2 Bausteine für die 32bit und kann damit 4mb ansteuern. Da ich aber 2 RAS- und 4 CAS-Siganle habe, kann ich theoretisch 8mb ansteuern und wenn p2.15 zusammen mit p2.11 ebenfalls als RAS-Signal genutzt werden kann (was ich vermute), sogar 12mb.


    Der RAM auf dem Inboard (1mb) wird mit dem 0. RAS-Signal angesteuert... (es wären also theoretisch 16mb RAM möglich)


    -Jonas

  • Die Zugriffe scheinen mittels static column fast page mode Zugriffen zu erfolgen


    Dachte, wenn ich aktiv low Signale und static column fast page mode Zugriffe annehme, dem Bild eine sinnvolle Interpretation abringen zu können, da hab' ich die Rechnung aber ohne RAS2 gemacht - dessen Aktivitäten zeigt ja an, dass neue RAS-Adressen geladen werden, so dass kein static column vorliegen kann - andererseits darf dann aber CAS nicht ständig aktiv sein, was eigentlich nur zu dem Schluss führen muss, dass da etwas "oberfaul" ist!?

  • Es geht eher darum den pin p2.15 zu identifizieren


    Für eine DRAM-Ansteuerung vermisse ich eigentlich noch das /OE-Signal - p2.15 scheint allerdings eher mit /RAS2 synchron zu laufen.
    Ich kann dem Timing eigentlich nur noch was Sinvolles abgewinnen, wenn die CAS-Signale doch aktiv high sind (könnten ja auf dem Expansion Board bis zum DRAM noch invertiert werden -
    dann würden wir einige RASbeforeCAS-Refreshs sehen, ansonsten keine Zugriffe, die auf das Expansion Board gehen!?

  • Das Bild zeigt einen Ausschnitt aus dem Rammtest, den das Inboard beim starten der zugehörigen DOS-Erweiterung macht. Es ist also ein Blockweises abscannen der Rambänke.


    Anbei ein Signalverlauf bei idle im DOS (Kein weitere Aktivität) ...


    update: und System Boot


  • Mein Tipp - p2.15 und p2.19 sind /RAS-Signale, p2.18 zeigt nur einen Refresh Zyklus an, also ein /Refresh-Signal!?


    Nein. P2.19 und P2.18 werden jeweils mit einem OR mit P2.14 zu einem RAS-Signal verknüpft, welches auch an den RAM-ICs anliegt.
    Da beide Signale LOW aktiv sind, bekommen wir ein "negatives" AND.


    ^A OR ^B = ^C entspricht A AND B = C


    Ich habe die Nummerierung der Pins verändert um dem Standard zu entsprechen.
    Das bedeutet, dass die Nummern in der PDF nicht mehr korrekt sind.


    1 2
    3 4
    5 6
    7 8


    statt


    1 40
    2 39
    3 38
    4 37

  • P2.11 wird mit den p2.24-p2.27 jeweils OR verknüpft um die 4 CAS-Signale zu generieren, die an den RAM-Bänken anliegen.


    Alle Adress-Leitungen werden invertiert.


    Da auf dem 2mb Board 72 ICs verbaut sind, wurden 74AS1032 (OR Driver) und 74AS1004 (Inverter Driver) ICs verwendet.

  • Also da die Signale, die wir dem RAS zu ordnen, nur während des Refeshs aktiv sind, sollte die Aufzeichnung keine Zugriff auf das Expansion Board zeigen.
    Auf der anderen Seite sehen die CAS zugeordneten Signale wieder eher wie aktiv low Signale aus, was das fast ständige aktiv sein aller vier dieser Signale auf der ersten Aufnahme wieder irritierend erscheinen läßt.
    Vielleicht eine Erklärung - die erste Aufnahme zeigt doch static column fast page mode Zugriffe auf das Expansion Board und die CAS Signale übernehmen zusätzlich die Funktion des Byte Enable.


  • Vielleicht eine Erklärung - die erste Aufnahme zeigt doch static column fast page mode Zugriffe auf das Expansion Board und die CAS Signale übernehmen zusätzlich die Funktion des Byte Enable.


    Die gleiche Überlegung hatte ich auch. Dadurch haben sich die Entwickler des Inboard wohl einige Pins auf dem Erweiterungs-Bus gespart.
    Die auf dem 2mb Board verwendeten Ram ICs sind klassische 256kx1 in 8 Bänken zu je 9 chips. Davon werden immer 4 Bänke als 32bit breites Modul (4x CAS, 1x RAS) angesprochen.


    Eigentlich sollte damit direkt ein 72pin Modul funktionieren, da der Aufbau der 72pin Module dieser Logik entspricht.


    -Jonas


  • Wenn es das nicht tut, heißt das ja nicht, dass das prinzipiell nicht geht! Veilleicht hackt es ja nur ein einer Kleinigkeit (braucht ja z.B. nur eine Datenleitung nicht sauber kontaktiert zu sein)!?


    ... das sehe ich genau so. Möglicherweise habe ich bei meinen Versuchen einfach nur einen Fehler mit der Beschallung gemacht oder das Modul hat zu viel Strom gezogen (ich hatte normale 74AS04 und 32 verwendet)


    Letztlich ist mir die Bastelei mit den ganzen versetzten Pins zu viel Arbeit und ich werde ein kleines PCB mit den oben genannten 16bit ICs bauen. Die Grundsätzliche Verschalung ist ja nicht wirklich kompliziert. einzig die RAS und CAS- Signale bereiten mir Kopfzerbrechen. Ich denke, dass die Daten und Adressleitungen direkt verkabelt werden können und ich einen kleinen Prototyp-Bereich vorsehen werde, mit dem ich dann die RAS und CAS-Signale basteln kann.


    ... mal sehen. Leider bleibt mir neben der Arbeit so wenig Zeit mal richtig was zu entwickeln. Selbst das Wochenende ist so schnell vorbei.


    -Jonas

  • Welchen Typ an 72pin Modulen wolltest Du einsetzen? Erfüllen die gemessenen Signale des Intel Boards die von dem Modul vorgegebenen Timings?


    Eine andere Frage, die ich mir stelle, seit ich einen Blick auf das Pinout der 72pin Module geworfen habe - kannst Du Dir einen Reim auf die seltsame Namensgebung der /RAS-Signale (/RAS0 und /RAS2) dieser Module machen? Warum nicht /RAS0 und /RAS1 alternativ /RAS1 und /RAS2? ?(

  • P2.19 und P2.18 werden jeweils mit einem OR mit P2.14 zu einem RAS-Signal verknüpft


    P2.11 wird mit den p2.24-p2.27 jeweils OR verknüpft


    Hab' ich bei meinen Überlegungen immer wieder aus den Augen verloren, also kein static column fast page mode Zugriff, sondern ganz normaler /RAS-/CAS-Zugriff.


    Das nun ausgesucht DRAM ist sogar ein Extended Data Out DRAM - frag' mich gerade, ob das mit einem Board zusammen passt, das offenbar noch nicht einmal den Fast Page Mode unterstützt und auch kein /OR-Sigal zur Verfügung stellt ?( U.U. muss in die Generierung des /OE-Signal etwas mehr Aufwand gesteckt werden!?


  • Hab' ich bei meinen Überlegungen immer wieder aus den Augen verloren, also kein static column fast page mode Zugriff, sondern ganz normaler /RAS-/CAS-Zugriff.


    Das nun ausgesucht DRAM ist sogar ein Extended Data Out DRAM - frag' mich gerade, ob das mit einem Board zusammen passt, das offenbar noch nicht einmal den Fast Page Mode unterstützt und auch kein /OR-Sigal zur Verfügung stellt ?( U.U. muss in die Generierung des /OE-Signal etwas mehr Aufwand gesteckt werden!?


    Mist, daran hatte ich gar nicht gedacht... Grundsätzlich sollte (laut Datenblatt) ja ein SIMM (ob FP, EDO oder was auch immer) im direkten Modus lauffähig sein... immerhin kann man ja auch 4 30pin Simms zu einem 72pin PS2 kompatiblen Modul verschalten. Ich werde zunächst den direkten Weg über DRAM ICs wählen und später erst weiteres versuchen.
    Zudem habe ich das Problem, dass ich Parity in und Parity out (jeweils 4bit) habe. Bei Test habe ich parity einfach weg gelassen (was auch beim memtest angehäkelt wurde). Beim PS2 (72pin) Modul gibt es nur parity I/O... das wird viel komplizierter als es den Anschein hat. Ich muss mal versuchen die Paritätsprüfung auf dem Inboard ab zu schalten. Wenn ich parity nicht deaktiviert bekomme, dann muss ich eben ein 74F480 nutzen um 4bit parity zu erzeugen... aber wie bekomme ich ein CS Signal für den chip?


    Ich glaube das Gespräch hat mich schon um einiges weiter gebracht.


    DANKE!


    -Jonas

  • Bin gerade bei den 72pin Modulen auf einen unerwarteten Umstand (zumindest für mich) gestossen - mit /RAS0 und /RAS2 werden nicht unterschiedliche Bänke, sondern unteres und oberes Halbword angesprochen - hattest Du das registriert und berücksichtigt?


    http://www.pjrc.com/mp3/simm/blk_diag_16.gif


    Ein weiteres Bild klär dann auch die seltsame Nummerierung: http://www.pjrc.com/mp3/simm/blk_diag_32.gif

  • Hab' mir auf http://www.pjrc.com/mp3/simm/datasheet.html mal noch etwas genauer den EDO-Mode angeschaut - vermutlich macht das wegen den länger anliegenden Daten doch kein Problem, da dieses längere Anliegen nur aktiv ist, solange /RAS low ist - wenn /RAS und /CAS nahezu synchron weggenommen werden (was bei einem normale /RAS-/CAS-Zugriff typischerweise passiert), verhalten sich FPM-, EDO- und "Stinknormal"-DRAM identisch.


  • welches CS? für welchen Chip? den 74F480 (davon hab' ich noch kein Datenblatt gefunden - nur 74F280, der hat keinen CS)?


    ich meine auch das /OE vom GM71C18163CJ6


    [imgwidth]http://forum.classic-computing…07252d5d98522cf84d94c452e[/imgwidth]


    EDIT: huch, schon ein bisschen spät ;-) ich bin grad selbst drauf gekommen :-P


    -Jonas

  • ich meine auch das /OE vom GM71C18163CJ6


    müstest Du einfach auf GND klemmen können.
    Chip1 ==> _1, Chip2 ==> _2, Chip3 ==> _3, Chip4 ==> _4
    /LCAS_1 = /CAS1 || p2.11;
    /UCAS_1 = /CAS2 || p2.11;
    /LCAS_2 = /CAS3 || p2.11;
    /UCAS_2 = /CAS4 || p2.11;
    /RAS_1 = /RAS1 || p2.14;
    /RAS_2 = /RAS1 || p2.14;
    /LCAS_3 = /CAS1 || p2.11;
    /UCAS_3 = /CAS2 || p2.11;
    /LCAS_4 = /CAS3 || p2.11;
    /UCAS_4 = /CAS4 || p2.11;
    /RAS_3 = /RAS2 || p2.14;
    /RAS_4 = /RAS2 || p2.14;
    Zu klären wäre noch /WE - falls das Intelboard zwei identische /WE-Signale liefert, würde ich machen:
    /WE_1 = /WE1;
    /WE_2 = /WE1;
    /WE_3 = /WE2;
    /WE_4 = /WE2;

  • Ich hatte meine Daten ja einem anderen Entwickler zukommen lassen, der dann auch einen Prototyp für die 2Mb Erweiterung gelayoutet hat. Diese Version konnte ich dann erfolgreich auf 4Mb tweaken. Harrison Frasier wird dann (hoffentlich) in absehbarer Zeit eine 4Mb Karte anbieten. Das Layout wird sich sicherlich noch massiv verändern, da Simm-Module ja mittlerweile auch nicht mehr ganz leicht zu besorgen sind :-)


    -Jonas