RAM testen

Gast #25052
Lesenswert?

Hallo,
ich suche eine Möglichkeit, ein Ram zu testen.
Es sollen alle Bits mit 1 und auch mal mit 0 beschrieben werden. 
Desweiteren sollen alle Adressen sicher getestet werden.
Also alles mit 0x5A beschreiben und zurücklesen und dann das ganze noch 
einmal mit 0xA5 ist dann doch etwas zu einfach.
Wenn möglich, eine Funktion in C.
Aber auch für einen einfachen Ansatz wäre ich schon dankbar.

Dieter
Gast #25057
Lesenswert?

Schon mal vielen Dank,
sehr schöner einfacher Ansatz, der schon mal die meissten Tücken finden 
sollte.

Gibt es noch andere Ansätze, die das RAM evtl. mit "zufälligen" Adressen 
beschreiben. Also das RAM mit allen möglichen Daten in wild springende 
Adressen beschreiben und dann genauso wild überprüfen.

Dieter
Gast #25058
Lesenswert?

Hi,

warum wild und Chaos?
Zuerst würde ich die einzelnen Aressleitungen testen:
kompletten Ram auf 0 setzten
A0=0 Zelle auf 1, lesen, invertieren, schreiben, lesen, ok? >
A0=1 Zelle auf 0? ok> zelle auf 1,... s.o.
A1=...so
und geht man halt die einzelnen Adressleitungen durch.
Sind die Adressleitungen alle ok, dann folgt der Zellentest:
Zelle lesen, invertieren, schreiben, lesen ok > nächste.

Was für ein Bitmuster zum prüfen verwendet wird spielt keine Rolle, die 
Invertierung stellt sicher das sich jedes Bit setzten und löschen lässt. 
Eine Prüfung der Adressleitungen bei RAMS in Software ist eher 
ungewöhnlich.

Noch Fragen?

cu tb
Gast #25059
Lesenswert?

Wie Dieter schon sagte, will er nicht nur das RAM, sondern auch die 
Verdrahtung testen. Verdrahtungsfehler erkennt man mit der beschriebenen 
Methode nicht.

Noch ein Vorschlag: man löscht das gesamte RAM und schiebt ein Bit durch 
das gesamte RAM. Dabei überprüft man die letzte Adresse, ob hier das Bit 
zu früh, oder gar nicht ankommt.

Siegfried
Gast #25060
Lesenswert?

@siegfried: vertauschte Adressleitungen sind per Software nicht zu 
erkennen (gar nicht!!!) und für die Funktion ist es auch egal (solange 
nicht noch mehr am Adressbus hängt). Wichtig(und prüfbar) ist nur die 
Anzahl und Ansprechbarkeit der einzelnen Zellen(Adressleitungstest) und 
die Funktion der einzelnen Zellen(Ramtest) alles was darüber hinausgeht 
ist nur Mehraufwand ohne Mehrnutzen.

Ein BIT durch den Ram zu schieben ist Quark.
Selbst ein BYTE zu "schieben" (ist je nach Hardware nicht mal möglich) 
ist albern, da nach jedem Schritt der gesamte RAM geprüft werden müsste. 
Um Verdrahtungsprobleme zu ermitteln genügt jeweils die Zellen 
abzuchecken, bei den sich eine ADRESSLEITUNG ändert(z.b. 
0,1,2,4,8,16...). Die Funktion des RAMs wird getestet in dem jedes BIT 
getestet wird, ob es sich auf H und L setzten lässt. Ob das nun Bit-, 
Byte- oder Blockweise geschieht und mit welchem Muster ist egal.
Gast #25061
Lesenswert?

@thomas b
Vertauschte Adressleitungen, bzw. Datenleitungen spielen keine Geige in 
Sachen Funktion.

Mit dem Vorschlag ein BIT durch den Speicher zu schieben meinte ich 
natürlich den softwaremäßigen Ansatz. Ist wohl klar, dass min. ein Byte 
adressiert werden muss. So aufwändig ist der Test nun auch nicht, er 
deckt aber zumindest fast alle Verdrahtungsfehler, Unterbrechnungen, 
Kurzschlüsse und RAM-Fehler auf.

Allerdings sind einige Fehlerfälle denkbar, wo der vorgeschlagene 
"Adressleitungseinzeltest" versagt. Beispiel: A2 hängt auf GND. 
Schreiben und Lesen von Zelle 0x0000 ist OK. Schreiben und lesen von 
Zelle 0x0004 geht jeweils auf die Zelle 0x0000.

Bei den Datenleitungen verhält es sich ähnlich. Daher sollte das 
Bitmuster was über die Datenleitungen geht, ebenfalls variiert werden.

Im Grunde kommt es auf die Anforderung an. Für einen Lego-Roboter wird 
wohl kaum jemand so einen Aufwand treiben. Es gibt jedoch genügend Fälle 
wo es auf einwandfreie Funktion ankommt.

Siegfried
Gast #25062
Lesenswert?

Hi!
Ich habe letztes Jahr mal sowas gebaut um Speicherfehler älterer 
CNC-Masch. zu testen.Dabei habe ich abwechselnd $AA und $55 ins Ram 
geschrieben.Das darauffolgende Lesen wurde mit dem ADW gemacht um 
saubere Pegel und TST feststellen zu können. Bei falschem Lesewert hat 
das Prog.einfach über RS232 eine Fehlermeldung gebracht und den 
momentanen Leitungszustand zum nachmessen per Hand erhalten.Mit der 
Tastatur konnte man dann entscheiden ob Abbruch oder Weitertesten. Das 
mit den gebrückten / losen Adressleitungen fällt auch auf, da ja das 
Bitmuster wechseln muss. Habe so einige böse Chips finden können, die 
meisten allerdings mit schlechten "Datenpegeln".Lief allerdings auf 
einem HC12, den kann man am ehesten mit einem M16 vergleichen, deshalb 
auch kein Programmanhang.Aber als Denkanstoss hilft es eventuell.

Uwe

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren