Device Architecture
2-48
Revision 4
Program Operation
A Program operation is initiated by asserting the PROGRAM signal on the interface. Program operations
save the contents of the Page Buffer to the FB Array. Due to the technologies inherent in the FB, a
program operation is a time consuming operation (~8 ms). While the FB is writing the data to the array,
the BUSY signal will be asserted.
During a Program operation, the sector and page addresses on ADDR are compared with the stored
address for the page (and sector) in the Page Buffer. If there is a mismatch between the two addresses,
the Program operation will be aborted and an error will be reported on the STATUS output.
It is possible to write the Page Buffer to a different page in memory. When asserting the PROGRAM pin,
if OVERWRITEPAGE is asserted as well, the FB will write the contents of the Page Buffer to the sector
and page designated on the ADDR inputs if the destination page is not Overwrite Protected.
A Program operation can be utilized to either modify the contents of the page in the flash memory block or
change the protections for the page. Setting the OVERWRITEPROTECT bit on the interface while
asserting the PROGRAM pin will put the page addressed into Overwrite Protect Mode. Overwrite Protect
Mode safeguards a page from being inadvertently overwritten during subsequent Program or Erase
operations.
Program operations that result in a STATUS value of '01' do not modify the addressed page. For all other
values of STATUS, the addressed page is modified.
Program errors include the following:
1. Attempting to program a page that is Overwrite Protected (STATUS = '01')
2. Attempting to program a page that is not in the Page Buffer when the Page Buffer has entered
Page Loss Protection Mode (STATUS = '01')
3. Attempting to perform a program with OVERWRITEPAGE set when the page addressed has
been Overwrite Protected (STATUS = '01')
4. The Write Count of the page programmed exceeding the Write Threshold defined in the part
specification (STATUS = '11')
5. The ECC Logic determining that there is an uncorrectable error within the programmed page
(STATUS = '10')
6. Attempting to program a page that is not in the Page Buffer when OVERWRITEPAGE is not set
and the page in the Page Buffer is modified (STATUS = '01')
7. Attempting to program the page in the Page Buffer when the Page Buffer is not modified
The waveform for a Program operation is shown in
Figure 2-36.Note: OVERWRITEPAGE is only sampled when the PROGRAM or ERASEPAGE pins are asserted.
OVERWRITEPAGE is ignored in all other operations.
Figure 2-36 FB Program Waveform
CLK
PROGRAM
ADDR[17:0]
OVERWRITEPAGE
OVERWRITEPROTECT
PAGELOSSPROTECT
BUSY
STATUS[1:0]
Page
0
Valid