s71pl512nd0 Meet Spansion Inc., s71pl512nd0 Datasheet - Page 27
![no-image](/images/no-image-200.jpg)
s71pl512nd0
Manufacturer Part Number
s71pl512nd0
Description
Two S29pl256n Devices 32 M X 16-bit Cmos 3.0-volt Only Simultaneous Read/write, Page-mode Flash Memory
Manufacturer
Meet Spansion Inc.
Datasheet
1.S71PL512ND0.pdf
(90 pages)
November 23, 2005 S29PL-N_M0_A4
Use of the write buffer is strongly recommended for programming when multiple words are to be
programmed. Write buffer programming is approximately four times faster than programming
one word at a time. Note that the Secured Silicon, the CFI functions, and the Autoselect Codes
are not available for read when a write buffer programming operation is in progress.
Notes:
1.
2.
3.
The following is a C source code example of using the write buffer program function. See the
Spansion Low Level Driver User’s Guide (available on
for general information on Spansion Flash memory software development guidelines.
/* Example: Write Buffer Programming Command
/* NOTES: Write buffer programming limited to 16 words. */
/*
/*
/*
/*
loop:
confirm:
/* Example: Write Buffer Abort Reset */
Software Functions and Sample Code
UINT16 *src = source_of_data;
UINT16 *dst = destination_of_data;
UINT16 wc
*((UINT16 *)base_addr + 0x555) = 0x00AA;
*((UINT16 *)base_addr + 0x2AA) = 0x0055;
*((UINT16 *)sector_address)
*((UINT16 *)sector_address)
*dst = *src; /* ALL dst MUST BE SAME PAGE */ /* write source data to destination */
dst++;
src++;
if (wc == 0) goto confirm
wc--;
goto loop;
*((UINT16 *)sector_address)
/* poll for completion */
*((UINT16 *)addr + 0x555) = 0x00AA;
*((UINT16 *)addr + 0x2AA) = 0x0055;
*((UINT16 *)addr + 0x555) = 0x00F0;
5 to 36
Cycle
Last
Base = Base Address.
Last = Last cycle of write buffer program operation; depending on number of words written, the total number of cycles
can be from 6 to 37.
For maximum efficiency, it is recommended that the write buffer be loaded with the highest number of words (N words)
possible.
1
2
3
4
Number of words (N) loaded into the write buffer can be from 1 to 32 words.
All addresses to be written to the flash in
one operation must be within the same flash
page. A flash page begins at addresses
evenly divisible by 0x20.
Write Buffer Load Command
= words_to_program -1;
Write Buffer to Flash
Load Buffer Word N
Write Word Count
(LLD Functions Used = lld_WriteToBufferCmd, lld_ProgramBufferToFlashCmd)
Description
P r e l i m i n a r y
Unlock
Unlock
S29PL-N MirrorBit™ Flash Family
= 0x0025;
= wc;
= 0x0029;
Table 9.8 Write Buffer Program
/* write unlock cycle 1
/* write unlock cycle 2
/* write buffer abort reset
Operation
Write
Write
Write
Write
Write
Write
/* write unlock cycle 1
/* write unlock cycle 2
/* write write buffer load command */
/* write word count (minus 1)
/* write confirm command
/* flash destination address
/* address of source data
/* word count (minus 1)
/* increment destination pointer
/* increment source pointer
/* done when word count equals zero */
/* decrement word count
/* do it again
Program Address, Word N
*/
*/
*/
*/
*/
Program Address
Program Address
www.amd.com
Sector Address
Word Address
Base + 555h
Base + 2AAh
*/
*/
*/
and www.fujitsu.com)
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
Word Count (N–1)h
Word N
00AAh
0055h
0025h
0029h
Data
25