Forum: Mikrocontroller und Digitale Elektronik AT45DB (DataFlash): Adressierung


von Andreas K. (all-finder)


Lesenswert?

Hallo beisammen,

folgende Frage bzgl. der Adressierung des ATMEL AT45DB081D (ausgegangen 
von einer Pagegröße von 256byte). Ich habe 20 bit Werte,

9bit für den Block | 3bit für die Page des Blocks | 8bit für ein Byte

lt. Datenblatt sollen die 3 Adressbytes nach dem opcode übertragen 
werden. Wie werden diese zusammengesetzt? Habe ja 24bit für 20bit 
Adressen zu Verfügung stehen. Sollen diese vorne oder hinten angehangen 
werden?

Pinzipell möchte ich Hex-Daten im Speicher ablegen und da diese von 
anderen Schnittstellen kommen sind mir 256byte-Blöcke sympatischer als 
264byte Blöcke. Oder gibts hierzu andere Meinungen?

Danke, MfG

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


Angehängte Dateien:

Lesenswert?

Da steht alles drin.

von genau so (Gast)


Lesenswert?

Ich verwende 264byte Bloecke und habe pro 256Bye noch 8 Byte fuer CRC 
und dergleichen.

von Andreas K. (all-finder)


Lesenswert?

danke. (wer lesen kann... ist klar im vorteil) warum auch immer die 
abbildungen im anhang sein müssen.. :(

okay, is ne idee.. wie hoch ist die wahrscheinlichkeit für einen 
übertragungsfehler zw. speicher und controller? (abstand nicht mehr als 
4 mm, keine störquellen in direkter übergebung, bei 8MHz)

von genau so (Gast)


Lesenswert?

Es geht weniger um Uebertragungsfehler als um Speicherfehler. Zugegeben, 
die Atmel Datenflash sind NOR-Flash und daher viel zuverlaessiger als 
NAND-Flash, aber eben nicht 100%. Diese 8 Byte verwendet man am Besten 
als speicher fuer Hammingcode, damit kann man je nach Code-Laenge 1 bit 
Fehler korrigieren kann. Ein CRC ist eigentlich 2. Wahl, da man damit 
allenfalls einen Fehler erkennen, aber nicht korrigieren kann.

von Andreas K. (all-finder)


Lesenswert?

Etwas offtopic, möchte aber keinen neuen Thread eröffnen:
- ich kann während z.B. Buffer 1 in den Speicher schreibt nicht 
gleichzeitig in Buffer 2 schreiben?!
- und schlimmer, während ein Speicherbereich gelöscht wird, ist der 
Speicher ebenfalls "busy"?

:(

also wäre es sinnvoll, vor der Schreibinteraktion den Speicherbereich zu 
löschen...

von ahem (Gast)


Lesenswert?

Waehrend der Buffer1 in Flash kopiert wird kann man nauterlich in den 
Buffer2 schreiben. Das dauert so um die paar ms.

von Andreas K. (all-finder)


Lesenswert?

Dann verstehe ich das DB nicht, dort steht, dass (z.B. unter 7.8, 
letzter Satz), dass das Statusregister angibt, dass der "Teil" busy ist. 
Nur kann ich beim Statusregister nicht Bereiche abfragen, sondern nur 
den Gesamtstatus des Speichers...

von Andreas K. (all-finder)


Angehängte Dateien:

Lesenswert?

evtl. hier noch ein Auszug...

von ahem (Gast)


Lesenswert?

Both the erase and programming are self timed.... ja. aber waehrend 
dieser Zeit kann man in den anderen Bbuffer schreiben. Im Prinzip kann 
man waehrend der Programmierzeit den anderen Buffer gesammt fuellen und 
so dauernd programmieren. Damit erreicht man die maximale Schreibrate 
von 1 Seite/ Programmierzeit.

von ahem (Gast)


Lesenswert?

Sorry das ist der falsche mode. Nicht main memory page through buffer, 
sondern ... buffer write + buffer to main memory with built in erase.

von Andreas K. (all-finder)


Lesenswert?

ahem wrote:
> Sorry das ist der falsche mode. Nicht main memory page through buffer,
> sondern ... buffer write + buffer to main memory with built in erase.

Ist das nicht das selbe? Während des Vorgangs "buffer to main memory 
with built in erase." ist der Speicher wieder busy. Bei jeder Funktion 
(außer beim Schreiben in einen Buffer) steht eine Wartezeit...

oder habe ich nur die Busyeigenschaft vom Datenregister falsch 
aufgefasst?

von ahem (Gast)


Lesenswert?

Ist das nicht das selbe?

Nein, ist es nicht. Denn der andere Buffer ist benutzbar (schreibbar). 
Ohne Wartezeit. Das Busy bezieht sich auf den Vorgang, der dauert.

von ahem (Gast)


Lesenswert?

Ich betreib meine Datenflash immer so. Jeweils 4ms Wartezeit waeren 
nicht tragbar.

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.