Testen der Integrität von SRAM

Ich teste ein Board mit externem SRAM. Anscheinend ist der SRAM relativ empfindlich gegenüber der Lötwärme aus dem Herstellungsprozess, und daher müssen sorgfältige Tests durchgeführt werden, um die Integrität des SRAM für neu hergestellte Platinen zu überprüfen.

Was ist der beste (Bare-Metal-) Weg, um SRAM zu testen? Ich habe einen Treiber, der den SRAM für den Lese-/Schreibzugriff initialisiert. Mein erster Gedanke ist, Tests durchzuführen wie:

1) Alle Bits im SRAM auf 1 setzen und prüfen, ob das SRAM richtig beschrieben wurde. 2) Schreiben Sie die Ziffern von Pi in den SRAM und überprüfen Sie, ob das Schreiben richtig durchgeführt wurde.

Gibt es andere Arten von Tests, die ich in Betracht ziehen sollte?

Es sind viele RAM-Tests verfügbar. Einige sind spezifisch für die Organisation des von Ihnen verwendeten RAM. ABER was Sie wirklich tun müssen, ist, die Bedingungen zu bestimmen, unter denen der RAM gelötet werden sollte, und Ihre Produktionslinie zu überwachen, um SICHERZUSTELLEN, dass diese Bedingungen erfüllt sind. Und dann testen Sie es auch :-)
@ JobyTaffey, ich bin froh, dass ich nicht der einzige bin, der Ganssle liebt.

Antworten (1)

Ich habe zuvor einige RAM-Tests geschrieben, die einige Fehler aufgeweckt haben. Folgendes habe ich getan:

Integrität des Datenbusses - sind alle Datenleitungen angeschlossen? Schreiben Sie zuerst alle Nullen in eine Adresse und lesen Sie sie zurück, stellen Sie sicher, dass sie alle Nullen sind. Zweitens: Schreiben Sie alle Einsen in einen Speicherplatz, lesen Sie ihn zurück und stellen Sie sicher, dass alle Einsen vorhanden sind. So erkennen Sie schnell, wenn eine Ihrer Leitungen einfach nicht angeschlossen ist. Aber das ist nicht die ganze Geschichte. Es kann sein, dass mehrere Leitungen untereinander oder gegen VCC oder Masse gebrückt sind. Deshalb machst du auch den nächsten Test.

Walking 1's/walking 0's Test - Die Idee ist, jedes Bit in Ihrer Datenleitung und nur dieses Bit zu testen. Wenn Sie also einen 8-Bit breiten Datenbus haben, schreiben Sie zunächst 00000001 an eine Speicheradresse, lesen sie dann zurück und überprüfen, ob Sie denselben Wert erhalten, dann 00000010, dann 00000100 und so weiter, und schreiben einzeln eine 1 in jede Zeile bis Sie jede Zeile getestet haben. Dann machen Sie einen Walking-0-Test: schreiben Sie zuerst 11111110 und bestätigen Sie, dann 11111101 und bestätigen Sie usw.

Dieser Test kann nur einmal durchgeführt werden – Sie müssen ihn nicht für jede Speicheradresse wiederholen, die Sie haben – er stellt nur sicher, dass der Datenbus richtig angeschlossen ist.

Integrität der Adresszeile - Um den Adressbus zu testen, müssen Sie einen eindeutigen Wert in jede Speicheradresse schreiben, auf die Sie zugreifen können, dann zurückgehen und überprüfen, ob die Daten in jeder Adresse korrekt sind. Wenn Ihre Adresszeilen nicht korrekt sind, werden falsche Daten aus dem Speicher abgerufen. Nehmen wir zum Beispiel an, ich habe 8 Speicheradressierungsleitungen und die erste ist mit VCC kurzgeschlossen. Wenn ich versuche, an Position 00000000 zu schreiben, wird es aufgrund des Kurzschlusses tatsächlich an 00000001 geschrieben. Dann werde ich versuchen, 0x01 bis 00000001 zu schreiben, und es wird funktionieren. Wenn es jedoch an der Zeit ist, die Daten in jeder Adresse zu überprüfen, wenn ich versuche, auf Standort 00000000 zuzugreifen, greife ich aufgrund des Kurzschlusses tatsächlich auf Standort 00000001 zu und rufe einen Wert von 0x01 anstelle von 0x00 ab und fange den Fehler sofort ab.

Es ist übertrieben, aber es hat einige heimtückische Fehler entdeckt, die uns in hohem Maße zum Stolpern gebracht hätten.

Was die obigen Tests NICHT tun, ist Ihnen zu sagen, ob eine Ihrer Adresszeilen Nachrichten sind. Tests werden Ihnen NICHT sagen, ob

Ich mag diese Reihe von Tests, die einzige Änderung, die ich vorschlagen würde, ist, dass sie tatsächlich den Walking Zeroes/Ones-Test an allen Speicherorten durchführen möchten, da Bedenken hinsichtlich einer Beschädigung des SRAM selbst bestehen, wenn ich die Frage richtig lese.
Danke dafür. Deinen letzten Satz verstehe ich wirklich nicht. Kannst du das bitte klären?