Schreiben in Dataflash

M

Matthias Weißer

Guest
Hi

ich ärgere mich hier z.Z. mit einem Dataflash von Atmel rum. Ich kann
das Statusregister lesen also auch beide Buffer beschreiben und wieder
erfolgreich lesen. Sobald ich aber etwas in das Main Memory (sprich
Flash) schreiben will (über die Buffer) lese ich immer 0xFF aus. Es
sieht so aus als ob die entsprechende Page nicht beschrieben wird.

Es handelt sich um ein AT45DB041B im SO8

WP/ ist auf Vcc (3,3V)
Reset/ ist auf Vcc (3,3V)

Vorgang Schreiben:

Füllen eines Puffers
CS/ Low
Opcode 0x83
24 Nullen schreiben
CS/ High

Vorgang lesen:

CS/ Low
Opcode 0x53 (Main Memory to Buffer 1)
24 Nullen schreiben
CS/ High
Buffer lesen

Irgendwelche Ideen was noch flasch laufen könnte?

--
Matthias Weißer
matthias@matwei.de
http://www.matwei.de
 
Das hier funktioniert fuer mich:

//--- read previous page before modification

if ( (len < left) || (inpage!=0) ) { // any original contents remains?
drv->select();
drv->transfer(CUI_MainToBuf1);
send24(pageadr);
drv->deselect();
at45Wait();
}

//--- modify page in buffer 1

drv->select();
drv->transfer(CUI_WriteBuf1);
send24(inpage);

if (left > len) left = len;
len -= left;
at45Pos += (ulong)left;
do {
drv->transfer(*src++);
} while (--left);

drv->deselect();

//--- write modified buffer 1 back to main page

drv->select();
drv->transfer(CUI_ProgramBuf1);
send24(pageadr);
drv->deselect();

at45Wait();

Marc
 
In article <2g9p6rFaokoU1@uni-berlin.de>,
Matthias Weißer <matthias@matwei.de> writes:
Hi

ich ärgere mich hier z.Z. mit einem Dataflash von Atmel rum. Ich kann
das Statusregister lesen also auch beide Buffer beschreiben und wieder
erfolgreich lesen. Sobald ich aber etwas in das Main Memory (sprich
Flash) schreiben will (über die Buffer) lese ich immer 0xFF aus. Es
sieht so aus als ob die entsprechende Page nicht beschrieben wird.

Es handelt sich um ein AT45DB041B im SO8

WP/ ist auf Vcc (3,3V)
Reset/ ist auf Vcc (3,3V)

Vorgang Schreiben:

Füllen eines Puffers
CS/ Low
Opcode 0x83
24 Nullen schreiben
CS/ High

Vorgang lesen:

CS/ Low
Opcode 0x53 (Main Memory to Buffer 1)
24 Nullen schreiben
CS/ High
Buffer lesen

Irgendwelche Ideen was noch flasch laufen könnte?
Ich kenne das Teil (noch) nicht, aber schaue Dir mal die Quellen
der Demosoftware zum AVR Butterfly an, den Code kannst Du in der
Imagecraft- und in der Gcc Version auf www.avrfreaks.net finden.
Der Butterfly enthält ja einen Dataflash udn einen ATMega169.

Gruß,

Holm
--
L&P::Kommunikation GbR Holm Tiffe * Administration, Development
FreibergNet.de Internet Systems phone +49 3731 41930
Bereich Server & Technik fax +49 3731 4196026
D-09599 Freiberg * Nonnengasse 31a http://www.freibergnet.de
 
Hi Namensvetter,

ich ärgere mich hier z.Z. mit einem Dataflash von Atmel rum. Ich kann
das Statusregister lesen also auch beide Buffer beschreiben und wieder
erfolgreich lesen. Sobald ich aber etwas in das Main Memory (sprich
Flash) schreiben will (über die Buffer) lese ich immer 0xFF aus. Es
sieht so aus als ob die entsprechende Page nicht beschrieben wird.

Es handelt sich um ein AT45DB041B im SO8
Diese Effekte hatte ich auch. Immer wieder Softwarefehler vermutet
und das Web nach Code abgesucht ("Wie machen's andere?") - brachte
alles nichts. Erst ein vergleichsweise "dicker" Kondensator an des
Dataflash's Versorgungspins hat geholfen (der obligatorische 100nF
KerKo reichte eben nicht, habe jetzt 4.7u Tantal (lag gerade rum) dran)

HTH
Matthias
 

Welcome to EDABoard.com

Sponsor

Back
Top