Schreiben in Dataflash

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
 Click to see the full signature
Reply to
Matthias Weißer
Loading thread data ...

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

Reply to
jetmarc

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
 Click to see the full signature
Reply to
Holm Tiffe

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

Reply to
Matthias Kirchner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.