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
>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?
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!
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?
Hallo, Das sollte im Datenblatt stehen. Normal liest du gleich die Daten ein (durch senden der "Dummy Bytes" ohne CSn zu toggeln. Jens
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.
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?
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.