S29GL256P11FFIV10 Spansion Inc., S29GL256P11FFIV10 Datasheet - Page 25
![no-image](/images/manufacturer_photos/0/6/621/spansion_inc__sml.jpg)
S29GL256P11FFIV10
Manufacturer Part Number
S29GL256P11FFIV10
Description
IC 256M PAGE-MODE FLASH MEMORY
Manufacturer
Spansion Inc.
Datasheet
1.S29GL128P11TFI020.pdf
(71 pages)
Available stocks
Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
S29GL256P11FFIV10
Manufacturer:
CITIZEN
Quantity:
101
Part Number:
S29GL256P11FFIV10
Manufacturer:
SPANSION
Quantity:
20 000
November 21, 2006 S29GL-P_00_A3
Software Functions and Sample Code
Notes
1. Base = Base Address.
2. Last = Last cycle of write buffer program operation; depending on number of words written, the total number of cycles may be from 6 to
3. For maximum efficiency, it is recommended that the write buffer be loaded with the highest number of words (N words) possible.
The following is a C source code example of using the write buffer program function. Refer to the Spansion
Low Level Driver User’s Guide (available on www.spansion.com) for general information on Spansion Flash
memory software development guidelines.
Cycle
5 to 36
Last
37.
/* Example: Write Buffer Programming Command
/* NOTES: Write buffer programming limited to 16 words. */
/*
/*
/*
/*
loop:
confirm:
/* Example: Write Buffer Abort Reset */
D a t a
1
2
3
4
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;
Description
Write Buffer Load Command
Number of words (N) loaded into the write buffer can be from 1 to 32 words (1 to 64 bytes).
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.
S h e e t
Write Buffer to Flash
Load Buffer Word N
Write Word Count
= words_to_program -1;
(LLD Functions Used = lld_WriteToBufferCmd, lld_ProgramBufferToFlashCmd)
Unlock
Unlock
( A d v a n c e
S29GL-P MirrorBit
Table 7.7 Write Buffer Program
Operation
= 0x0025;
= wc;
= 0x0029;
Write
Write
Write
Write
Write
Write
I n f o r m a t i o n )
TM
/* write unlock cycle 1
/* write unlock cycle 2
/* write buffer abort reset
Flash Family
/* flash destination address
/* address of source data
/* word count (minus 1)
/* write unlock cycle 1
/* write unlock cycle 2
/* write write buffer load command */
/* write word count (minus 1)
/* increment destination pointer
/* increment source pointer
/* done when word count equals zero */
/* decrement word count
/* do it again
/* write confirm command
Byte Address
Base + AAAh
Base + 555h
Program Address, Word N
*/
*/
*/
*/
*/
Sector Address
Sector Address
Sector Address
Word Address
Base + 2AAh
Base + 555h
*/
*/
*/
*/
Data
*/
*/
*/
*/
*/
*/
Word Count (N–1)h
*/
*/
*/
*/
Word N
00AAh
0055h
0025h
0029h
23