AT45DB (DataFlash): Adressierung

OP #1179287
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
OP #1179585
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)
Gast #1179605
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.
OP #1180744
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...
Gast #1180902
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.
OP #1181030
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren