Dein Board funktioniert ja auch, getestet mit der SuperPLA
Die Originale, welche ich einem anderem Board zum Test entnommen hab ging kurz auf diesem Board, dann kamen lustuge Farben und Zeichenmüll, dann blieb es dunkel. Deshalb hab ich sie auf deine Platine gesetzt. Da ging sie auch kurz, mit den selben Symptomen. Mittlerweile ist sie aber glaube ich ganz im Eimer...
EPROM-PLAs gesucht!
-
Mikson -
22. Juni 2013 um 15:43 -
Erledigt
Es gibt 33 Antworten in diesem Thema, welches 5.156 mal aufgerufen wurde. Der letzte Beitrag (
-
-
Ich hab inzwischen 2 weitere (E)PROM's getestet, also insgesamt folgende:
1. TMS27C512-150
2. ST27C512-90
3. AT27C512-701. läuft in einem 250407 Rev C so halbwegs mit Macken, auf 250407 Rev B gar nicht
2. läuft auf beiden bislang ohne erkennbare Probleme
3. läuft auf Rev C mit großen Macken, auf Rev B gar nichtEine Erklärung hab ich für dieses Verhalten noch nicht, aber scheinbar hängt es nicht nur mit der Zugriffsgeschwindigkeit zusammen.
-
Zitat
scheinbar hängt es nicht nur mit der Zugriffsgeschwindigkeit zusammen.
korrekt. kann man sogar hier im forum nachlesen =P -
Es gibt 2 lange Threads wo das Thema Eprom und PLA so durchgekaut worden ist, das es gar keine Fragen mehr zu der Sinnhaftigkeit geben sollte. Aber es ist ja immer aufregender das Rad immer wieder neu zu erfinden.
Ich finde das gerade nicht.
Lange Rede, kurzer Sinn: Bei einem Eprom sind die Ausgänge bis zur Antwort auf ein Datum undefiniert. Dh in dieser Zeit prügeln sich die Chips um den Bus. Richtig lustig und fies wird das wenn noch CMOS Zeug am Export hängt. -
Nun, glauben tut man in der Kirche. Ich glaube aber nicht, daher muß ich mich immer erst von allem selbst überzeugen
Und das Thema interessiert mich halt gerade.Klar, bei einem EPROM gehen die Ausgänge immer nur zeitgleich auf ihre Pegel, ein Logic Array kann das völlig unabhängig voneinander. Aber trotzdem meine ich, daß bei ~1MHz Taktfrequenz, ein Pegelwechsel alle 100ns doch ausreichen müsste. 1MHz heißt, eine Schwingung dauert 1µs, folglich eine Halbwelle 500ns. Schneller kann doch dann eigentlich nichts reagieren!?
Ich überlege, ob es Sinn machen könnte, den OE-Pin auf den Systemtakt zu legen, statt fest auf Masse, damit die Ausgänge zu einem definierterem Zeitpunkt schalten.
-
Zitat
Klar, bei einem EPROM gehen die Ausgänge immer nur zeitgleich auf ihre Pegel,
wenn das so wäre gäbe es deutlich weniger probleme ein eprom als PLA zu missbrauchen. sheltems letzter satz fasst das problem schon gut zusammen. -
1MHz heißt, eine Schwingung dauert 1µs, folglich eine Halbwelle 500ns. Schneller kann doch dann eigentlich nichts reagieren!?
Du vergisst dabei unter anderem die notwendigen Setup- und Hold-Zeiten und die Tatsache, dass in jedem 1MHz-Taktzyklus zwei Speicherzugriffe stattfinden (VIC und CPU). In den heute üblichen Begriffen hat der C64 einen DDR-Bus, bei 1MHz Taktfrequenz werden 2 Megatransfers pro Sekunde ausgeführt.ZitatIch überlege, ob es Sinn machen könnte, den OE-Pin auf den Systemtakt zu legen, statt fest auf Masse, damit die Ausgänge zu einem definierterem Zeitpunkt schalten.
Dann klemmst du entweder VIC oder CPU vom System ab. -
Drum hab ich ja 500ns geschrieben, aber stimmt, man bräuchte dann einen Takt von 2MHz für OE.
-
Drum hab ich ja 500ns geschrieben
Das reicht nicht um den multiplexten Adressbus der DRAMs zu bedienen. -
hm, du meinst die CASRAM?
Btw. ich hab jetzt noch ein ST27C512-150 gefunden, und betreibe den Rechner jetzt schon die ganze Zeit damit, hab einige Disks ausprobiert, bislang ohne Probleme. ST-EPROM's scheinen also gut zu funktionieren.
-
hm, du meinst die CASRAM?
Hast du dir schonmal angeschaut, wie die DRAMs im C64 adressiert werden? Die erhalten ihre Adresse in zwei Teilen, signalisiert durch die CAS- und RAS-Pins. CAS wird vom CASRAM-Signal der PLA angesteuert, welches aus dem CAS-Signal des VIC und weiteren Eingängen generiert wird; RAS kommt direkt vom VIC. Die Signale kann man keinesfalls in ein starres 500ns-Raster quetschen.Vielleicht möchtest du mal skoes Bitte melde dich an, um diesen Link zu sehen. lesen?
-
Danke! Sehr interessant und umfangreich, das werd ich mir jetzt nicht mehr alles reinziehen

Aber ich dachte, DRAM's werden grundsätzlich immer mit RAS und CAS adressiert?
Ok, dann sind wir also schon bei 250ns. Werd mir die Signale bei Gelegenheit mal auf dem Oszi anschauen und vergleichen, da sollte ja dann ein Unterschied erkennbar sein, wenn es nicht funktioniert.
-
Man braucht auch noch ein Signal, das (zwischen RAS und CAS) die Multiplexer für den DRAM-Adreßbus umschaltet. Das wird zwar nicht in der PLA erzeugt, aber eher unkonventionell auf der Hauptplatine und vor allem mit sehr großen Toleranzen. Deshalb kommt es zu Problemen, wenn das PLA-Derivat zu schnell ist. Dumm nur, daß Eproms zwar eine maximale Reaktionszeit zusichern, aber niemand verbietet daß sie nicht auch wesentlich schneller sein dürfen. Von dabei auftretenden Überschwingern mal ganz abgesehen.
Und das andere Problem: Eproms wollen stabile Adreßeingänge, bevor CS aktiv wird. Was die Datenleitungen machen, wenn im aktiven Zustand eine neue Adresse kommt, weiß niemand- es kann ein glatter Übergang zum neuen Muster sein, es kann aber auch jede Menge Müll auftauchen bis die Leitungen stabil sind, und es kann passieren daß die Datenleitungen wesentlich länger brauchen als bei der 'richtigen' Reihenfolge. Und die kurzfristigen Störungen wiederum können die RAM-Chips derart durcheinanderbringen, daß sie scheinbar planlos Daten im Speicher umherkopieren. (So einen Effekt hatten wir doch gerade erst an anderer Stelle?)
Will sagen:
- es ist erstaunlich, daß Eprom-PLA überhaupt funktionieren
- es hängt vom Hersteller der Eproms, deren Charge, und der genauen Konstitution des Mainboards ab, ob es klappt
- extrem kurze Zugriffszeiten sind nicht von Vorteil.... ich habe sogar den Verdacht, daß manche modernen Typen der 100ns/120ns Klasse einen wesentlich schnelleren Kern und künstlich gebremste Ausgänge haben, was die besagten Probleme quasi wegfiltert...
-
Die Umschaltung der Multiplexer passiert mit _CAS (vom VIC erzeugt), auf einigen Platinen noch mit einem Kondensator von ein paar pF leicht verzögert. Deshalb ist die Laufzeit durch die PLA zur Erzeugung von _CASRAM auch wichtig, nur so ist sichergestellt, daß die Adressleitungen an den DRAMs stabil sind wenn _CASRAM nach LOW wechselt. Selbst das scheint nicht immer zu reichen, auf anderen Platinen ist hier noch ein Kondensator mit ein paar pF zwischen _CASRAM und GND verbaut.
Auch hier kann es zu Problemen mit einer EPROM-PLA kommen weil der erwähnte Kondensator für die Ausgangstreiber der PLA berechnet ist. Ein EPROM hat garantiert einen anderen Treiber und verschiebt schon alleine damit das Timing etwas.
Achja... man sollte den Stromverbrauch des C64 mit echter PLA und EPROM-PLA vergleichen. Ist letzterer höher, dann hast du noch Probleme mit gleichzeitig aktiven Ausgängen die sich um den Bus prügeln. Mit etwas Pech kann das auf Dauer zu Schäden führen.
Nachtrag: Man darf auf keinen Fall _CS und _OE des EPROMs HIGH werden lassen. Dann werden die Datenleitungen eben nicht HIGH sondern inaktiv und die Steuerleitungen bekommen undefinierte Pegel.
-