Tester für 2114 RAMs auf Arduino Basis

  • Hallo Leute,


    weil ich gerade dabei bin einen PET 2001 zu reparieren, brauchte ich auf die Schnelle einen RAM Tester, um die 16 Stück 2114 Käferchen zu checken. Da ich im Netz nichts finden konnte, was sich auf die Schnelle mit den bei mir vorhandenen Mitteln nachbauen lies, habe ich kurzerhand selbst einen solchen Tester gebaut.


    Damit kann man momentan einzig und allein 2114 RAM Chips testen. Die sind bekannt aus CBM Rechnern, dem VC20, C64 (Farbram) und sicher noch vielen weiteren 8-Bit Rechnern und Konsolen älterer Bauart. Die Unterstützung anderer RAM-Bausteine ist denkbar, ist aber eine momentan ungelöste Software-Frage.


    Der Test nimmt nur wenige Sekunden in Anspruch. Das Ergebnis wird per Blinkcode mitgeteilt. Wer es genauer wissen will kann per USB auch eine serielle Konsole anschließen und bekommt dann die fehlerhaften Speicherzellen angezeigt.


    Das Teil basiert auf einem Arduino Nano 3, welcher als Clon für wenige Euro bei eBay zu haben ist. Die Adapterplatine ist bei mir per Lochraster realisiert. Eine "richtige" Platine ist in der Mache.


    Im Forum 64 findet sich eine genauere Beschreibung und auch ein Interessensbekundungsthread, damit wir heraus finden, wie groß das Interesse für eine Sammelbestellung wäre. Preise liegen wegen fehlender Stückzahlangaben noch nicht vor, aber das wird sicher nicht so teuer.


    Wer Interesse an dem Teil hat, der sollte sich in dem oben verlinkten Thread melden. Bei genug Zuspruch gibt es das Teil dann bald in einer Sammelbestellung. :)

    • Official Post

    Einen Stand-Alone Tester finde ich eine prima Idee.

    Vielleicht macht sich jemand die Arbeit, das Teil noch auf weitere SRAMs zu erweitern?

    6116 (2K x 8 ) und 6264 (8K x 8 ) sind in diversen alten Rechnern anzutreffen, bei etwas neueren auch 62256 (32K x 8 ).


    DRAM wäre natürlich auch was feines, aber das ist eine ganz andere Baustelle.

  • Ich glaube diese Links habe ich bei meiner Suche auch gefunden. Der auf Basis des mega256 hat mich am meisten inspiriert. Aber da ich hier nur einen Nano hatte, war sowieso alles neu zu machen.

    Der zweite Link beinhaltete leider nur warme Luft. Kein Schaltplan, keine Software, nichts.

    Stimmt: Für die großen RAMs geht auch ein tl866. Leider kann der aber die 2114er nicht.

    • Official Post

    Der hinter dem ersten Link unterstützt ja sogar MOS 6550.

    Das finde ich mal richtig gut, da diese Dinger Phi2 benötigen.

    Außer direkt im PET war mir dafür bisher nichts bekannt.


    Bei 'Testing DRAM, One Byte At A Time' hatte ich sofort Zweifel, weil man ein DRAM so nicht sinnvoll testen kann.

    Trotzdem habe ich ein paar Zeilen gelesen, und siehe da, das kommt dort noch schlimmer:

    Die Jungs schreiben und lesen in einem durch und sparen sich so den Refresh.

    Daß man für DRAM auch einen Refresh Test macht, haben die total verpeilt.


    Ein ordentlicher DRAM Test erfordert einigen Aufwand.

    Ob das in diesem Projekt mit unterzubringen ist, ist eine ganz andere Frage.

  • Bezüglich (D)RAM Tester habe ich angefangen, denn auf Seite 33 im Anhang befindlichen Tester nachzubauen. Ob das Sinn macht oder nicht sei mal dahin gestellt. Ich fand/finde das spannend.


    Allerdings stimmt zumindest bei dem einen PAL das Equation Listing nicht. Ich habe zwar versucht den Fehler zu bereinigen, mangels PAL Brenner das aber noch nicht getestet. Vielleicht gibt es ja hier einen PAL/GAL Spezi, der schauen könnte ob meine Anpassungen Sinn ergeben und somit korrekt sind.


    Radio_Electronics_May_1991.pdf

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    ::matrix::

    • Official Post

    Allerdings stimmt zumindest bei dem einen PAL das Equation Listing nicht. Ich habe zwar versucht den Fehler zu bereinigen, mangels PAL Brenner das aber noch nicht getestet. Vielleicht gibt es ja hier einen PAL/GAL Spezi, der schauen könnte ob meine Anpassungen Sinn ergeben und somit korrekt sind.

    Kann ich gerne mal versuchen.

    Aber vielleicht erklaerst du mal genauer, was nicht stimmt.


    Unabhaengig vom dem solltest du GAL16V8 statt den PALs verwenden. Ich weiss nicht, ob du die PALs noch beschaffen kannst.

  • PALs gibt's ziemlich sicher nirgendwo mehr, und wenn doch (z.B. hier), muss man genau den Typen erwischen, der jeweils kombinatorische oder Register-Logik kann. Sollte aber ein GAL16V8 alles können - Ausserdem kann man sich mit dem auch noch ein paar Probeschüssse erlauben.....

    Das Datenblatt vom 16V8 hat viele Beispiele, wie man das GAL dazu bringt, ein bestimmtes PAL zu imitieren. Davon kann man auch gleich 10 Stück kaufen, die kann man immer brauchen.


    Tobias

  • Also PALs habe ich bekommen... aber das ist ein anderes Thema. Zu den Equations schreibe ich funkenzupfer mal direkt per Kommunikation an.

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    ::matrix::

    • Official Post

    Ich habe mich mal mit Helmut zu dem Thema ausgetauscht.

    Fazit: Ein total kaputtes RAM wird man damit zwar finden, um einem RAM zu bescheinigen, daß es in Ordnung ist, ist das ganze nicht geeignet.


    Man kann damit nicht erkennen, ob das RAM gültige Pegel liefert. Hier könnte man mit Pullup-/Pulldownwiderständen evtl. noch was machen.

    Das größere Problem ist aber, daß mit einem Mikrocontroller das Timingverhalten des RAMs nicht geprüft werden kann. Dafür ist der viel zu langsam.

    Mit zusätzlichem Schaltungsaufwand wäre da evtl. was zu machen.

    • Official Post

    Weshalb meinst du, haben damals schon (zu 4164 Zeiten) anstaendige RAM-Tester 4-stellige Betraege gekostet?

  • Man kann damit nicht erkennen, ob das RAM gültige Pegel liefert. Hier könnte man mit Pullup-/Pulldownwiderständen evtl. noch was machen.

    Also, die Pegel der Datenleitungstreiber sind nicht wirklich ein Problem. Beim 2114 sind es eh nur vier Datenleitungen, die mit

    wenigen Bitkombinationen und einem Vierkanaler-Oszi gecheckt werden könnten. Lese-und Chipselect-Leitungen aktiviert lassen,

    was mittels Port-Ansteuerung natürlich einfach möglich ist.

    • Official Post

    Mit einem Oszi geht das natürlich. Aber wenn ich das dazu brauche, macht das ganze Ding für kaum mehr Sinn.

    Denn dann bin ich eh in der 'Werkstatt', und kann den Test im entsprechenden Rechner durchführen.

    So ein Mini-Tester hätte aus meiner Sicht nur den Vorteil, daß er leicht transportabel wäre, und sich somit auch für den Test 'unterwegs' geeignet wäre, am besten noch mit Batteriebetrieb.

  • Dann vielleicht sowas.


    Quick and Dirty:


    Sehr schneller Prozessor z.B WDC 65C02 mit 14MHz mit Adressraum, schnelles Eprom (35-45ns Zugriffszeit), Sockel

    für alle RAM-Typen im Adressbereich unterbringen, aktivieren über Jumper, Prozessor manipuliert

    den eigenen Clock (PLL, sychronisiertes Umschalten) und damit die Zugriffszeiten auf das RAM, Testroutinen im Eprom, Ergebnissausgabe über Latch- Einfache-LED-Anzeige, Batteriebetrieb.


    Kam mir gerade so in den Sinn :idea:.

  • Oder man steckt sie einfach auf eine C64- oder PET-Platine mit Sockel.

    Wenn ich für jeden Chip, der sich hier auf meinen diversen Commodore-Boards findet, so einen Aufwand treiben wöllte, wird's kostspielig.


    Ich nutze solche einfachen Testadapter, um Bausteine vorzutesten, bevor ich sie auf ein Board draufstecke. Damit ich mir nicht das Board mit defekten Chips oder China-Dummys ruiniere. Ob das Timing und andere Parameter passen, sehe ich dann im Betrieb oder mit einem RAM-Test auf dem jeweiligen Board.

    i-Telex 211230 dege d

    http://www.marburger-stammtisch.de


    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Weil hier ja auch gewisses interesse vorhanden war nochmal als Hinweis:


    Der RAM-Tester ist mittlerweile fertig und wird ausgeliefert. Ein zweites Batch wird auch noch aufgelegt. Man kann sich also noch auf die Liste setzen lassen.


    Der Tester kann jetzt neben den urspruenglichen 2114 RAMs (4x1k SRAM z.B. fuer PET oder C64 Farbram) kann er jetzt auch DRAMs der Typen 1x64k, 12x256k, 4x16k und 4x64k durchklingeln. Der DRAM Test ist sicherlich kein vollwertiger RAM-Test, aber gut genug, um zu checken, ob das fragliche Teil noch irgend was macht.


    Da die Sourcen offen verfuegbar sind kann ja jeder, der sich berufen fuehlt, einen besseren Test programmieren. ;)

  • Hallo Andi,


    ich habe mir heute den RAM-Tester mit einem Arduino Uno und der zweien Sketch-Variante (die mit der verkürzten Prüfzeit), aus dem C64 Forum zusammengebaut.

    Ich habe bei einer CPU-Baugruppe aus einem Flipperautomaten verschiedene Probleme... unter anderem auch mit den RAMS.


    Ich habe mehrere RAMs hier (2114, 6514-9, 5514APL-3), davon sollten einige definitiv defekt sein, weil die CPU-Baugruppe damit überhaupt nicht startet.

    Mehrere defekte 2114 und 6514 werden als fehlerfrei erkannt. Neu gekaufte 5514APL-3 werden direkt als defekt markiert.


    Jetzt meine Frage: Erkennt das Programm alle Fehler im RAM zuverlässig?


    Lassen sich ausschließlich 2114 damit prüfen, oder auch die oben genannten NV-Rams, die meines Wissens ja eigentlich Pingleich sein müssten?!


    Kannst du dir erklären, wieso die defekten ICs als OK getestet werden?


    Viele Grüße, Alex

  • Hi Alex,


    der Test ist sehr rudimentär und findet sicher nicht alle Fehler. Aber wenn er fehlschlägt, dann ist definitiv irgendwas mit dem RAM komisch. Oft sind es auch nur die Kontakte (korrdierte PINs etc).

    Ich hab den Tester nur mit 2114 RAMs getestet. Ich kann daher nichts über die anderen RAMs sagen. Sollte eigentlich gehen, aber muss nicht. Ist nicht getestet.


    Den Tester hatte ich selbst mal schnell zusammengeklopft, weil ich dringend irgendwie die RAMs in meinen PET testen musste. Der ist sicher nicht das perfekte Tool.


    Inzwischen weiss ich, dass mein TL868 Eprommer auch RAMs testen kann. ;)


    LG,

    Andi

  • Danke dir für den Hinweis! 👍🏻


    Ich hatte nur 3 oder 4 ICs zu testen... viel mehr werden es in den nächsten Jahren voraussichtlich auch nicht werden, wenn das Board wieder läuft.

    Dazu wäre der Testet etwas „oversized“... 😄