Schreiben in Dataflash

May 10, 2004 3 Replies

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

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

formatting link
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,

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required