Forum: Mikrocontroller und Digitale Elektronik FlashSpeicher: generelle Frage zum Löschen / Schreiben


von Thomas (Gast)


Lesenswert?

Hallo Gemeinde.

FlashSpeicher-Chips sind ja (immer) in Speicherblöcken organisiert.
Bevor ein Block beschrieben werden kann, muss er gelöscht sein (Zellen 
auf 0xFFFF).
Das Löschen dauert hierbei im Vergleich zum Schreiben um ein Vielfaches 
länger.

Um diese Löschzeit irgendwie zu "umgehen" hätte ich gerne gewusst, ob es 
generell möglich ist z.B. Block0 zu löschen und GLEICHZEITIG (im 
Hintergrund) die Blöcke 1,2,3,4,5 mit Daten zu beschreiben.

Hat jemand Erfahrung auf diesem Gebiet?

Danke
    Thomas

von Georg G. (df2au)


Lesenswert?

"Generell" geht es nicht. Es gibt viele ICs, die sich während der 
Ausführung eines Befehls tot stellen. Da muss man ein Busy Bit abfragen, 
bis man weiter machen darf. Aber es mag durchaus andere Konstruktionen 
geben.

von Thomas (Gast)


Lesenswert?

Ja, ich habe viele Datasheets gesehen, die ein spezielles Suspend- und 
ein Resume-Command beschreiben, um während eines Lösch- oder 
Program-Vorgangs auf den Baustein "zu kommen".

Ich interpretiere das jetzt so, dass in meinem Fall der Löschvorgang 
leider angehalten wird bis ich RESUME kommandiere. Sprich: Parallel bzw- 
Gleichzeit geschieht da nix.

(Aber warum ist das eigentlich so? Ich dachte das Löschen eines Blocks 
würde der Controller auf dem Baustein für mich übernehmen? Es wäre doch 
ein riesen Vorteil, wenn man nun gelöschte Blöcke beschreiben könnte. 
Warum kann das kaum ein Flashbaustein?)

DANKE.

von (prx) A. K. (prx)


Lesenswert?

Thomas schrieb:
> Warum kann das kaum ein Flashbaustein?)

Ich könnte mir vorstellen, dass die innere Speicherstruktur des 
Bausteins in der fraglichen Zeit einfach nicht zur Verfügung steht, d.h. 
Adressleitungen, Datenleitungen, etc. Weil beschäftigt.

PS: Was für ein Flash meinst du eigentlich, NAND oder NOR?

von m.n. (Gast)


Lesenswert?

Ich nehme an, es handelt sich um den Flash-Speicher, aus dem auch der 
Programmcode ausgeführt wird.
Nach einem Löschbefehl kann man per Polling feststellen, ob der 
Löschvorgang abgeschlossen ist. Daher ist kein anderer Zugriff in dieser 
Zeit möglich und man muß den Programmteil, der das Löschen/Programmieren 
übernimmt ins RAM auslagern.

Bei meinen Anwendungen mit ext. Flash verwende ich die SST39..., deren 
Sektorgröße unabhängig vom typ. 4KB beträgt. Der Löschvorgang dauert 
typ. 18ms/Sektor.

A. K. schrieb:
> PS: Was für ein Flash meinst du eigentlich, NAND oder NOR?

... und welcher µC werkelt bei Dir?

von (prx) A. K. (prx)


Lesenswert?

Er schreibt von "FlashSpeicher-Chips" und Suspend/Resume Vorgängen. 
Daher wird es sich wohl um externen Flash-Speicher handeln, nicht um den 
Code-Flash eines Microcontrollers.

von Thomas (Gast)


Lesenswert?

Ja richtig, es handelt sich um einen externen Flash-Baustein von Intel 
an einem DSP...

von argl (Gast)


Lesenswert?

Thomas schrieb:
> Ja richtig, es handelt sich um einen externen Flash-Baustein von
> Intel
> an einem DSP...

Gut, es ist also ein "Flash-Baustein von Intel", damit ist dann alles 
geklärt und jeder weiss Bescheid.

von m.n. (Gast)


Lesenswert?

argl schrieb:
> Gut, es ist also ein "Flash-Baustein von Intel", damit ist dann alles
> geklärt und jeder weiss Bescheid.

Die Spannung steigt ...
Wer löst das Rätsel als Erster?

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.