29F040 Flash Speicher - Programmierung

Gast #2632536
Lesenswert?
• ▲
▼
Hallo,

Ich habe einen Flash Speicher MX29F040 welchen ich über einen C167 
programmieren muss.
Das Auslesen von Manufacturer-ID und Device-ID funktioniert, was mir 
sagt, dass das Absetzen der Kommandos und auch prinzipiell die 
Konfiguration vom Speicherinterface funktioniert.
Leider komme ich mit der Erklärung im Datenblatt zum Beschreiben des 
Speichers nicht ganz klar.
Laut Datenblatt muss ich für eine Schreiboperation zuerst zwei Unlock 
Kommandos senden und ein "program set-up command". Im vierten Zyklus 
folgen Adresse + Daten.
Jetzt meine erste Frage: Aus dem Datenblatt geht für mich jetzt nicht 
eindeutig hervor, ob ich diese gesamte Prozedur für jedes zu schreibende 
Byte wiederholen muss, oder kann ich einfach weiter Daten schreiben? 
Wenn ja, wie weiß dann der Speicher dass ich keine Daten mehr schreiben 
will und er den Schreibmodus verlassen kann?
Dann gibt es noch die Funktion zur Statusabrage der Schreiboperation 
(Toggle Bit DQ6 und Polling DQ7). Muss der Status abgefragt werden, oder 
könnte man hier auch mit einer entsprechenden Wartezeit arbeiten (sodass 
der Schreibvorgang sicher beendet ist) und danach ein Verify über den 
gesamten geschriebenen Bereich machen?

Ich hoffe, ich habe meine Probleme nicht allzu kompliziert geschildert, 
und wäre für eure Hilfe sehr dankbar.

Viele Grüße

moax
Gast #2632550
Lesenswert?
• ▲
▼
moax schrieb:
> ob ich diese gesamte Prozedur für jedes zu schreibende
> Byte wiederholen muss, oder kann ich einfach weiter Daten schreiben?

Die muß in der Regel für jedes Byte wiederholt werden. Das ist kein 
Problem und geht sehr schnell.

moax schrieb:
> (Toggle Bit DQ6 und Polling DQ7). Muss der Status abgefragt werden, oder
> könnte man hier auch mit einer entsprechenden Wartezeit arbeiten

Eleganter ist das Auswerten von D6 oder D7. Einige Bausteine brauchen 
anschließend noch eine zusätzliche Abfrage (siehe Datenblatt).
Eine vorgegebene Wartezeit einzufügen ist ganz schlecht, da vom 
jeweiligen Prozessortakt anhängig.
Gast #2632599
Lesenswert?
• ▲
▼
Hallo Willi,

Vielen Dank für deine Antwort - das hat mir schon sehr weitergeholfen.
Was ich noch nicht ganz verstehe ist folgendes:

Ich schreibe folgendermaßen ein Byte in den Flash:
1. Unlock Cycle (ADDR:0x555, DATA:0xAA)
2. Unlock Cycle (ADDR:0x2AA, DATA:0x55)
3. Write Operation CMD (ADDR:0x555, DATA:0xA0)
4. Adresse + Daten des zu schreibenden Bytes

Der 5. Zyklus wäre demnach eine Read-Operation auf die geschriebene 
Adresse und ich kann dadurch die Statusbits lesen - richtig?
Damit ich die Statusbits lese muss sich der Speicher noch im Write Mode 
befinden.
Ab wann schaltet der Speicher wieder in den Read-Modus zurück? Ich muss 
ja dann gegebenenfalls öfters lesen, um festzustellen wann der 
Schreibzyklus abgeschlossen ist.

Ich hoffe ich habe die Frage verständlich formuliert.

Viele Grüße

Moax
Gast #2632731
Lesenswert?
• ▲
▼
Auf den Seiten 17 + 18 wird doch der Ablauf genau gezeigt.
Der "Schreibmodus" ist nur beim Schreiben (4.) des betreffenden Bytes 
aktiv; danach liest Du nur noch aus, um festzustellen, dass der interne 
Programmierzyklus abgelaufen ist.
(Firma: Anscheinend Corner-Cases ;-)) #4148461
Lesenswert?
• ▲
▼
Nur weil es für mich gerade aktuell ist und evtl. auch für Andere 
interessant werden könnte.

Ich brenne, flashe zur Zeit AM29F040B mit dem GALEP4.
Das klappte zu Anfang nicht.
Zum Einen war wohl ein falsches Netzteil schuld ( sollte 400mA bringen 
ist aber nur ein 300mA gewesen ). Nach dem Wechsel des Netzteils zeigte 
GALEP  zwar nur 10,6xV, aber das flashen klappte, wenn ich zuvor ERASE 
durchgeführt hatte.


Bernd_Stein

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.