Hi Habe hier zwei identische Steuerungen, eine davon defekt. ANscheinend ist der NAND das Problem, wenn ich den von der einen Steuerung in die andere löte, funktioniert auch die ordnungsgemäß Vielleicht ist der Nand defekt oder schlichtweg dement :) Jedenfalls suche ich nach einer Möglichkeit, den intekten Nand auszulesen. Bekommt man das mit Hausmitteln hin? Arduino, Rasperry oder dgl?
Das Auslesen dürfte relativ simpel sein, sofern man genügend Port-Pins frei hat und die 16 Datenleitungen auch schön "sortiert" an zwei 8-Bit Ports angeschlossen werden (sonst wird es eine wilde Bitsortiererei in beide Richtungen --- machbar, aber lästig). Leider löst das das Problem nur teilweise: Den Inhalt des "intakten" Flash kann man u.U. nicht einfach 1:1 in einen neuen schreiben --- einige der im intakten genutzten Blöcke können im neuen defekt sein (umgekehrt auch). Die Behandlung defekter Blöcke erfolgt softwaremäßig, es ist also dem Firmware-Entwickler überlassen ... Man muss also entweder "Glück" haben oder das Bad Block Management nachvollziehen. Auch im ersten Fall geht das beim nächsten Firmware-Update u.U. daneben, weil die Liste der defekten Blöcke (die ja auch irgendwo im Flash abgelegt wird) ja nicht korrekt ist. Andere Möglichkeit wäre, nach Systemstart mitzuschneiden, was ausgelesen wird, denn vmtl. wird die Firmware ausgelesen und ins RAM kopiert (denn für ausführbaren Code sind defekte Blöcke eher umständlich). Kann natürlich auch verschlüsselt sein, aber da nach es Austausch des Flash ja geht, müsste der Schlüssel dann mit im Flash stehen und die Firmware ist nicht an Seriennummer etc. des Prozessors gekoppelt. Jedenfalls würde das schon aufwändig ...
Sind NANDS eigentlich kompatibel untereinander, abgesehen von der Speichergröße? Bzw haben sie zumindest den selben Pinout? Ich hätte hier einige NANDs von einer alten SSD. Habe zwar keine allzugroße Hoffnung dass die Sterung damit wieder funktioniert, aber einen Versuch wärs mir wert...
Soweit sie gleiche Gehäuseform und haben, kann man von weitgehender Pinkompatibilität ausgehen. Nur leider hilft das nicht viel, allein schon das Datenblatt oben zeigt, dass es ein ganze Reihe leicht unterschiedlicher Varianten gibt. Und bei verschiedenen Typen/Herstellern reicht ein subtiler Unterschied (Blockgröße, Kommandos) ... Wichtig wäre auch zu wissen, ob der Flash nur für eine "feste" Firmware verwendet wird, oder ob z. B. irgendwelche Parameter im laufenden Betrieb dort gespeichert werden. Außerdem muss der Controller intern noch ein Boot-ROM haben, sonst könnte er beim Start die Firmware nicht auslesen. Das müsste auch mit dem Ersatz-Flash umgehen können. Da gibt's auch die Variante, dass ein paar Parameter dafür per OTP-Variablen im Controller "eingebrannt" sind. Wenn es ganz dumm kommt, liest die Firmware vor dem Löschen oder Beschreiben von Blöcken erst die Device-Id aus und streckt bei "falscher" die Hufe ... Deshalb: mit exakt demselben Typ kann man Glück haben, wenn man dabei sogar einen ganz ohne defekte Blöcke auftreiben kann, toll. Aber sonst eher mau ...
Die Speicherform wird in Fachchinesisch als 'Flash' bezeichnet, aber nicht als NAND.
Glabbsmüller schrieb: > Die Speicherform wird in Fachchinesisch als 'Flash' bezeichnet, aber > nicht als NAND. Wenn, dann als NAND-Flash. Gibt nämlich noch andere, die ebenfalls als „Flash“ bezeichnet werden.
Jack V. schrieb: > Gibt nämlich noch andere, die ebenfalls als „Flash“ bezeichnet werden. So arg viel andere gibts da abgesehen vom NOR-Flash nicht. Und das wird zur Sicherheit immer mit "Vornamen" benannt (keine Regel ohne Ausnahme: der NOR-Flash in µC wird nicht extra mit Vornamen erwähnt). Und wenn man von "Flash-Speicher" oder nur "Flash" redet, meint man "NAND-Flash". Aber wenn man nur vom "NAND" spricht, dann ist das ein Logikgatter mit 2 Eingängen und 1 Ausgang.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.