Forum: Mikrocontroller und Digitale Elektronik Seriellen Flash Speicher löschen


von Flash (Gast)


Lesenswert?

Hallo,

ich habe hier einen NOR Flash vom Typ Micron, N25Q032.

Was muss ich tun, um diesen Flash wieder zu löschen?
Irgendwie klappt es mit meinem Timing noch nicht so ganz...

Hat jemand einen Vorschlag?

mfg und Danke

von Christian M. (Gast)


Lesenswert?

Ins Wasser werfen...?!

Gruss Chregu

von holger (Gast)


Lesenswert?

>Was muss ich tun, um diesen Flash wieder zu löschen?
>Irgendwie klappt es mit meinem Timing noch nicht so ganz...

Das steht doch im Datenblatt.
Und wenn du schon Code hast, warum zeigst du ihn dann nicht?

von Christian R. (supachris)


Lesenswert?

Kannst du denn mit dem Flash kommunizieren? Also erst mal ID auslesen? 
Ist ja immer erst mal Mode 0 oder 3 bei SPI. Wenn das klappt, Bulk Erase 
Komando rein schieben und warten. WP Pin nicht vergessen!

von Flash (Gast)


Lesenswert?

Eine Frage noch:

In einigen Befehlen muss die CS Leitung runtergezogen werden und wohl 
nach dem Befehl wieder auf high.

Was muss ich denn mit der CS Leitung tun, wenn die eigentliche 
Übertragung vollzogen wird?

Nach dem Befehl wieder auf Low und dann DummyBytes schicken, damit ich 
eine Antwort erhalte, oder auf high lassen und einfach so Dummy Bytes 
rausschicken?

von Jens D. (jens) Benutzerseite


Lesenswert?

Hallo,

Das sollte im Datenblatt stehen.
Normal liest du gleich die Daten ein (durch senden der "Dummy Bytes" 
ohne CSn zu toggeln.

Jens

von SPI-Lehra (Gast)


Lesenswert?

Flash schrieb:
> Nach dem Befehl wieder auf Low und dann DummyBytes schicken, damit ich
> eine Antwort erhalte, oder auf high lassen und einfach so Dummy Bytes
> rausschicken?

Alleine die Logik sollte schon hervorbringen dass der Chip
wissen muss ob er Daten senden darf oder nicht. Dies geschieht
unter anderem mit dem CS der auch den MISO Output Enable des
Chips steuert. Er bringt im inaktiven Zustand den Ausgang in den
Tristate damit andere SPI Teilnehmer auch Daten hergeben können.

Das heisst, ohne aktiven CS bekommt man nicht die Daten die man
erwartet.

von Flash (Gast)


Lesenswert?

ok,

Etwas konkreter:
Wie aber mache ich einen Subsector erase?

Ich lege
CS low
WREN_Command
CS high

dann
CS low
0x20 (Subsector erase Command)
0x00 0x00 0x00 (Von Adresse 0 möchte ich beginnend löschen)


Nun ist die große Frage, ein Subsector umfasst 256 Bytes. Muss ich nun 
256 Bytes ein FF Dummy auf MOSI rausschicken, um die Clockaktiv zu 
halten, oder einfach nur abwarten, bis die Bytes in dem Subsector 
gelöscht sind?

Muss ich als Dummy Werte ein FF schreiben, oder setzt  das Flash bei dem 
Löschen sowieso die 0xFF Werte, selbst wenn ich 0x00 als Dummy schicke?

Was passiert, wenn ich als Startadresse nicht "0" wähle, sondern "1", 
wendet das Flash den Befehl automatisch für alle Bytes 0 bis 255 an?

von Pandur S. (jetztnicht)


Lesenswert?

Was steht im Datenblatt ? Weshalb sollern wir fuer dich das Datenblatt 
lesen ?
Falls etwas nicht steht - ausprobieren.
Allenfalls : Weshalb loeschen, wenn man's mit neuer Werten 
ueberschreiben kann ?

: Bearbeitet durch User
von SPI-Lehra (Gast)


Lesenswert?

Oh D. schrieb:
> Allenfalls : Weshalb loeschen, wenn man's mit neuer Werten
> ueberschreiben kann ?

So so, Flash mit neuen Werten überschreiben .....

Bei WOM (Write-Only Memory) geht das.

von Pandur S. (jetztnicht)


Lesenswert?

Die Flash, die ich kenne, haben einen Loesch befehl.
Steht im Datenblatt.
Wenn da keiner steht, wird's wohl keinen brauchen.
Und wenn er im Datenblatt steht, muss man's ja nur so machen wie's 
steht.

allenfalls muss man mehr als 2 Minuten drueber nachdenken.
Ich hab auch einen abend gebraucht, bis ich's implementiert hatte.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.