Forum: Mikrocontroller und Digitale Elektronik Atmel DataFlash: Wieso krumme Page-Größe


von Christian R. (supachris)


Lesenswert?

Hallo zusammen,

weiß jemand, ob es einen echten technischen Hintergrund für die 
beknackte Page-Größe von 264 bzw. 528 Byte beim Atmel DataFlash gibt? 
Nicht dass man schon genug Stress mit den zu normalem SPI Flash völlig 
verschiedenen Kommandos und Belegung des Status-Registers hätte, nein, 
auch die Pagegröße ist ab Werk auf diesen abenteuerlichen Wert gesetzt, 
was die Berechnung der Page-Adresse zu einem sehr lustigen Anliegen 
werden lässt und man das halbe Flash-Programm umbauen muss. Ich muss 
gerade an älteren Xilinx FPGAs der Spartan 3 Reihe die Dinger Updaten, 
das macht echt keinen Spaß.

Haben sich das nur die Marketing-Bimbos ausgedacht oder gabs da echt mal 
Anwendungen wo das erforderlich war?

von Timmo H. (masterfx)


Lesenswert?

Vielleicht hat Atmel sich sowas gedacht wie 256 Bytes Nutzdaten + 8 
Bytes für CRC/ECC

von Falk B. (falk)


Lesenswert?

Möglicheweise, um dort noch Fehlerkorrekturdaten unterzubringen.
AUsserdem kann man die meisten Flashs auf Standardgröße per Softwae 
umschalten.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die überzähligen Bytes kann man auch gut für ein Dateisystem benutzen, 
um zusammengehörige Pages zu verlinken ;-)

von 900ss (900ss)


Lesenswert?

Bei NAND Flashes sind die zusatzlichen Bytes die spare data area. In 
dieser wird z.B ein ECC abgelegt (über die Nutzdaten gebildet) und je 
nach Bedarf noch mehr Verwaltungsdaten (wie oben schon beschrieben).
Wenn du NAND Flash hast, dann empfehle ich dir, ein ECC über die 
Nutzdaten zu bilden und den ECC in den zusätzlichen Bytes abzulegen. 
Beim Lesen dann einen Vergleich machen und du wirst staunen, du findest 
hin und wieder single bit Fehler. Du kannst diese dann korrigieren.

von Christian R. (supachris)


Lesenswert?

Falk Brunner schrieb:
> AUsserdem kann man die meisten Flashs auf Standardgröße per Softwae
> umschalten.

Ja, kann man machen, erfordert aber einen Power-Cycle. Ist etwas 
unpraktisch für die bestehenden Geräte und Xilinx Impact tastet die Page 
Size beim Programmieren nicht an. Naja, wenigstens funktioniert das 0x03 
Auslesen erst mal wie gewohnt, jedenfalls wenn man bei Adresse 0 
startet. Für alles andere muss man dann ja wieder Extrawurst machen.

von Peter D. (peda)


Lesenswert?

Christian R. schrieb:
> gabs da echt mal
> Anwendungen wo das erforderlich war?

Ja, um die Datenintegrität festzustellen. Es kann ja sein, daß mitten im 
Schreiben der Strom ausfällt. Und dann will man feststellen, welches der 
letzte gültige Datenrecord war.

Großen Flash nimmt man oft zur permanenten Datenaufzeichnung und da ist 
ein Stromausfall durchaus wahrscheinlich.

von Cyblord -. (cyblord)


Lesenswert?

Christian R. schrieb:
> Falk Brunner schrieb:
>> AUsserdem kann man die meisten Flashs auf Standardgröße per Softwae
>> umschalten.
>
> Ja, kann man machen, erfordert aber einen Power-Cycle. Ist etwas
> unpraktisch für die bestehenden Geräte und Xilinx Impact tastet die Page
> Size beim Programmieren nicht an. Naja, wenigstens funktioniert das 0x03
> Auslesen erst mal wie gewohnt, jedenfalls wenn man bei Adresse 0
> startet. Für alles andere muss man dann ja wieder Extrawurst machen.

Die Dinger können theoretisch bereits mit 256 Byte Größe bestellt 
werden. Wer die an wen liefert ist allerdings ne andere Sache.

von Christian R. (supachris)


Lesenswert?

cyblord ---- schrieb:
> Die Dinger können theoretisch bereits mit 256 Byte Größe bestellt
> werden. Wer die an wen liefert ist allerdings ne andere Sache.

Theoretisch ja. Praktisch aber nur in riesigen Mengen. Wie das jetzt bei 
Adesto aussieht weiß ja auch keiner.
Es geht bei mir um bestehende Designs, At45DB081D deswegen weil der 
Spartan 3e nur 2,5V VCCAUX verträgt, und es sonst praktisch keine 2,5V 
SPI Flash gibt. Wenn ich die jetzt umprogrammieren würde, müsste ich 
nachher alle wieder erst mal mit Xilinx Impact programmieren, weil die 
zusätzlichen Bytes dann fehlen.
Ich hab jetzt das Flash-Programm angepasst, ist ziemlich umständlich, 
aber klappt jetzt.

von Peter D. (peda)


Lesenswert?


von Christian R. (supachris)


Lesenswert?

Der wird allerdings von Xilinx Impact nicht für die indirekte 
Programmierung unterstützt. Und 2009 als die Geräte entstanden sind, 
gabs den glaube sogar noch nicht mal.

von mex (Gast)


Lesenswert?

bei meinem letzten SPI Flash von Atmel steht meine ich im Datenblatt, 
dass man selber das Datenformat von diesen krummen 264 auf gerade 256 
Bytes verändern kann.

Da ich das nicht benutzt habe, da ich die Flash Routine dann in C selber 
zusammengebastelt habe, war mir das egal, aber du hast schon recht 
sollte ich das mal portieren müssen auf einen anderen Flash würde das 
sicherlich auffallen.

Ganz sicher bin ich gerade nicht wie es unfktioniert mit dem umstellen, 
und ich habe auch gerade keine Lust das rauszukramen, aber vielleicht 
hilft ja alleine der Denkansatz für dich um das Datenblatt nochmal zu 
überfliegen und vielleicht ist das ja in deinem Flash genauso.

Grüße

von Christian R. (supachris)


Lesenswert?

Wie schon geschrieben, das Umstellen am Flash geht schon, aber das würde 
dann einen ziemlichen Rattenschwanz hinterher ziehen, weil die schon 
programmiert sind, und die Daten dann erst mal weg wären. Dummerweise 
wird die Einstellung nur nach einem Trennen der Stromversorgung 
angewendet. Dann bootet das FPGA aber nicht mehr und ich komm nicht mehr 
an den Flash ran...

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.