Der Flash ist in mehrern Seiten organisiert. Wenn der Flash programmiert wird, werden die zu programmierenden Daten in einem Seitenbuffer zwischengespeichert. Dadurch ist es möglich, eine ganze Seite auf einmal zu programmieren. Nachfolgend wird beschrieben, wie der ganze Flash programmiert werden kann.
A. Laden des Kommandos Write Flash
1. Setzen von XA1 und XA0 auf 10. Dies gibt das Laden von Kommandos frei.
2. Setzen von BS1 auf 0.
3. Setzen von DATA auf 0001 0000. Das ist das Kommando für Flash Schreiben.
4. Positiven Puls auf XTAL1 geben. Dies lädt das Kommando.
B. Laden des Adressen Low Byte
1. Setzen von XA1 und XA0 auf 00. Dies gibt das Laden von Adressen frei.
2. Setzen von BS1 auf 0. Das wählt die Low Adresse
3. Setzen von DATA auf Adressen Low Byte (00 – FF).
4. Positiven Puls auf XTAL1 geben. Dies lädt das Adressen Low Byte.
C. Laden des Daten Low Byte
1. Setzen von XA1 und XA0 auf 01. Dies gibt das Laden von Daten frei.
2. Setzen von DATA auf Daten Low Byte (00 – FF).
3. Positiven Puls auf XTAL1 geben. Dies lädt das Daten Byte.
D. Laden des Daten High Byte
1. Setzen von BS1 auf 1, das wählt das High Daten Byte
2. Setzen von XA1 und XA0 auf 01. Dies gibt das Laden von Daten frei.
3. Setzen von DATA auf Daten High Byte (00 – FF).
4. Positiven Puls auf XTAL1 geben. Dies lädt das Daten Byte.
E. Daten übernehmen
1. Setzen von BS1 auf 1, das wählt das High Daten Byte
2. Auf PAGEL einen positiven Puls geben, dadurch werden die Daten übernommen.
F. Wiederholen von B bis E, bis der ganze Buffer gefüllt ist oder alle Daten für die Seite geladen sind.
Die unteren Bit der Adresse adressieren die Worte innerhalb einer Seite, während die oberen Bits die Seite innerhalb des Flash adressieren. Man beachte, dass, wenn weniger als acht Bits für die Adressierung der Worte inerhalb einer Seite verwendet werden (Seitengröße kleiner als 256), die oberen Bits im unteren Adressbyte verwendet werden, um die Seite zu adressieren, wenn eine Seite geschrieben wird.
G. Laden des Adressen High Byte
1. Setzen von XA1 und XA0 auf 00. Dies gibt das Laden von Adressen frei.
2. Setzen von BS1 auf 1. Das wählt die High Adresse
3. Setzen von DATA auf Adressen High Byte (00 – FF).
4. Positiven Puls auf XTAL1 geben. Dies lädt das Adressen High Byte.
H. Seite programmieren
1. Setzen von BS1 auf 0
2. Auf WR einen positiven Puls geben, das startet die Programmierung der ganzen Seite, RDY/BSY geht auf Low.
3. Warten, bis RDY/BSY wieder auf High geht
I. Wiederholen von B bis H, bis der ganze Flash programmiert ist oder bis alle Daten programmiert sind.
J. Beenden der Programmierung
1. Setzen von XA1 und XA0 auf 10. Dies gibt das Laden von Kommandos frei.
2. Setzen von DATA auf 0000 0000, das Kommando für keine Operation
3. Positiven Puls auf XTAL1 geben. Dies lädt das Kommando und resetet die internen Schreibsignale.
Adressierung des Flash
Zeitdiagramm Programmierung