INFORMATION IN THIS DOCUMENT IS PROVIDED IN RELATION TO SAMSUNG PRODUCTS,
AND IS SUBJECT TO CHANGE WITHOUT NOTICE.
NOTHING IN THIS DOCUMENT SHALL BE CONSTRUED AS GRANTING ANY LICENSE,
EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE,
TO ANY INTELLECTUAL PROPERTY RIGHTS IN SAMSUNG PRODUCTS OR TECHNOLOGY. ALL
INFORMATION IN THIS DOCUMENT IS PROVIDED
ON AS "AS IS" BASIS WITHOUT GUARANTEE OR WARRANTY OF ANY KIND.
1. For updates or additional information about Samsung products, contact your nearest Samsung office.
2. Samsung products are not intended for use in life support, critical care, medical, safety equipment, or similar
applications where Product failure could result in loss of life or personal or physical harm, or any military or
defense application, or any governmental procurement to which special terms or provisions may apply.
Flex-MuxOneNAND‚ is a trademark of Samsung Electronics Company, Ltd. Other names and brands may be
claimed as the property of their rightful owners.
* Samsung Electronics reserves the right to change products or specification without notice.
This specification contains information about the Samsung Electronics Company Flex-MuxOneNAND‚ Flash memory product family. Section 1.0 includes a general overview, revision history, and product ordering information.
Section 2.0 describes the Flex-MuxOneNAND device. Section 3.0 provides information about device operation. Electrical specifications and
timing waveforms are in Sections 4.0 through 6.0. Section 7.0 provides additional application and technical notes pertaining to use of the FlexMuxOneNAND. Package dimensions are found in Section 8.0
Flex-MuxOneNAND is a monolithic integrated circuit with a NAND Flash array using a NOR Flash interface.
The chip integrates system features including:
A BootRAM(1KB) and bootloader
4KB DataRAM buffers
A High-Speed x16 Host Interface
On-chip Error Correction
On-chip NOR interface controller
This on-chip integration enables system designers to reduce external system logic and use high-density NAND Flash in applications that
would otherwise have to use more NOR components.
Flex-MuxOneNAND takes advantage of the higher performance NAND program time, low power, and high density and combines it with the
synchronous read performance of NOR. The NOR Flash host interface makes Flex-MuxOneNAND an ideal solution for mobile applications
that have large, advanced multimedia applications and operating systems and need high performance.
When integrated into a Samsung Multi-Chip-Package with Samsung Mobile DDR SDRAM, designers can complete a high-performance, small
footprint solution.
The device operates up to a maximum host-driven clock frequency of 66MHz / 83MHz for synchronous reads at Vcc(or Vccq. Refer to chapter
4.2) with 4~7-clock latency. Appropriate wait cycles are determined by programmable read latency.
FLASH MEMORY
Flex-MuxOneNAND provides for multiple sector read operations by assigning the number of sectors to be read in the sector counter register.
The device includes one block-sized OTP (One Time Programmable) area and user-controlled 1st block OTP(Block 0) that can be used to
increase system security or to provide identification capabilities.
Voltage detector generating internal reset signal from Vcc
Hardware reset input (RP
Data Protection Modes
User-controlled One Time Programmable(OTP) area
Internal 4bit ECC
Internal Bootloader supports Booting Solution in system
Handshaking Feature
63ball, 10mm x 13mm x max 1.0mmt , 0.8mm ball pitch FBGA
63ball, 10mm x 13mm x max 1.2mmt , 0.8mm ball pitch FBGA
63ball, 10mm x 13mm x max 1.4mmt , 0.8mm ball pitch FBGA (TBD)
The Flex-MuxOneNAND is an advanced generation, high-performance MLC NAND-based Flash memory(Which can be programmed as both
SLC and MLC).
It integrates on-chip a convertible(SLC and MLC) NAND Flash Array memory with two independent data buffers, boot RAM buffer, a page
buffer for the Flash array, and a one-time-programmable block.
The combination of these memory areas enable high-speed pipelining of reads from host
Clock speeds up to 66MHz / 83MHz with a x16 wide I/O yields a 83MByte/second in SLC and 71MByte/second in MLC read bandwidth
The Flex-MuxOneNAND also includes a Boot RAM and boot loader. This enables the device to efficiently load boot code at device startup
from the NAND Array without the need for off-chip boot device.
One block of the NAND Array is set aside as an OTP memory area, and 1st Block (Block 0) can be used as OTP area. This area, available to
the user, can be configured and locked with secured user information.
On-chip controller interfaces enable the device to operate in systems without NAND Host controllers.
BufferRAM Page Bufferand NAND Flash Array.
2.2 Definitions
B (capital letter)Byte, 8bits
W (capital letter)Word, 16bits
b (lower-case letter)Bit
ECCError Correction Code
Calculated ECCECC that has been calculated during a load or program access
Written ECCECC that has been stored as data in the NAND Flash array or in the BufferRAM
BufferRAMOn-chip internal buffer consisting of BootRAM and DataRAM
BootRAMA 1KB portion of the BufferRAM reserved for Boot Code buffering
DataRAMA 4KB portion of the BufferRAM reserved for Data buffering (2KB x2)
SectorPart of a Page of which 512B is the main data area and 16B is the spare data area.
Data unit
DDPDual Die Package
QDPQuad Die Package
OTPOne Time Programmable
Possible data unit to be read from memory to BufferRAM or to be programmed to memory.
- 4224B of which 4096 is in main area and 128B in spare area
- Inputs for addresses during read operation, which are for addressing BufferRAM & Register.
ADQ15~ADQ0I/O
INT / INT1O
INT2O
RDYO
CLKI
WE
AVD
RP
CE
/ CE1I
CE2
OE
Power Supply
VCC-Core
/ Vcc
VCC-IO
/ Vccq
VSSGround for Flex-MuxOneNAND
etc.
DNU
NC
NOTE :
Do not leave power supply(Vcc-Core/Vcc-IO, VSS) disconnected.
- Inputs data during program and commands for all operations, outputs data during memory array/
register read cycles.
Data pins float to high-impedance when the chip is deselected or outputs are disabled.
Interrupt
Notifies the Host when a command is completed. After power-up, it is at hi-z condition. Once IOBE is set to 1, it does not float
to hi-z condition even when CE
Core) command in DDP are issued, it operates as open drain output with internal resistor (~50Kohm). The INT is the interrupt
for Single or DDP device. The INT1 is the interrupt for the first DDP device(KFN8GH6Q4M) in QDP(KFKAGH6Q4M)
Interrupt
The INT2 is the interrupt for the second DDP device(KFN8GH6Q4M) in QDP(KFKAGH6Q4M)
Ready
Indicates data valid in synchronous read modes and is activated while CE
Clock
CLK synchronizes the device to the system bus frequency in synchronous read mode.
The first rising edge of CLK in conjunction with AVD
Write Enable
I
I
I
I
I
controls writes to the bufferRAM and registers. Datas are latched on the WE pulse’s rising edge
WE
Address Valid Detect
Indicates valid address presence on address inputs. During asynchronous read operation, all addresses are valid while AVD
is low, and during synchronous read operation, all addresses are latched on CLK’s rising edge while AVD is held low for one
clock cycle.
> Low : for asynchronous mode, indicates valid address; for burst mode, causes starting address to be latched on rising edge
on CLK
> High : device ignores address inputs
Reset Pin
When low, RP resets internal operation of Flex-MuxOneNAND. RP status is do not care during power-up
and bootloading. When high, RP
Chip Enable
-low activates internal control logic, and CE-high deselects the device, places it in standby state,
CE
and places DQ in Hi-Z.
input enables device for Single or DDP .
The CE
1 input enables the first DDP device(KFN8GH6Q4M) in QDP(KFKAGH6Q4M)
The CE
Chip Enable
2 input enables the second DDP device(KFN8GH6Q4M) in QDP(KFKAGH6Q4M)
The CE
Output Enable
-low enables the device’s output data buffers during a read cycle.
OE
Power for Flex-MuxOneNAND Core
This is the power supply for Flex-MuxOneNAND Core.
Power for Flex-MuxOneNAND I/O
This is the power supply for Flex-MuxOneNAND I/O
Vcc-IO / Vccq is internally separated from Vcc-Core / Vcc.
Do Not Use
Leave it disconnected. These pins are used for testing.
No Connection
Lead is not internally connected.
is disabled or OE is disabled. Especially, only when reset(Cold, Warm, Hot, NAND Flash
The Flex-MuxOneNAND architecture integrates several memory areas on a single chip.
1st Block OTP
(Block 0)
NAND Flash
Array
Error
Correction
Logic
OTP
(One Block)
2.6.1 Internal (NAND Array) Memory Organization
The on-chip internal memory is a convertible(SLC and MLC) NAND array used for data storage and code. The internal memory is divided into
a main area and a spare area.
Main Area
The main area is the primary memory array. A block incorporates 64pages(SLC) or 128pages(MLC). A main page size is 4KB and a main
page is comprised of 8 sectors each size of which is 512Byte.
Spare Area
The spare area is used for invalid block information and ECC storage. Spare area internal memory is associated with corresponding main area
memory. A spare page size is 128B and a spare page is comprised of 8 sectors each size of which is 16Byte.
The on-chip external memory is comprised of 3 buffers used for Boot Code storage and data buffering.
The BootRAM is a buffer that receives Boot Code from the internal memory and makes it available to the host at start up.
There are 4KB bi-directional data buffers(2KB x2), DataRAM0 and DataRAM1. During Boot Up, the BootRam is used by the host to initialize
the main memory, and deliver boot code from NAND Flash core to host.
FLASH MEMORY
External (BufferRAM)
Memory
BootRAM (1KB)
Host
DataRAM0 (2KB)
DataRAM1 (2KB)
The external memory is divided into a main area and a spare area. Each buffer is the equivalent size of a Sector.
The main area data is 512B. The spare area data is 16B.
The following table shows the External Memory address map in Word and Byte Order.
Note that the data output is unknown while host reads a register bit of reserved area and dual buffering is not applicable.
In case of ‘with ECC’ mode, Flex-MuxOneNAND automatically generates ECC code for both main and spare data of memory during program operation, but does
not update ECC code to spare bufferRAM during load operation.
This Read/Write register describes the NAND Flash block address which will be loaded, programmed, or erased.
F100h, default = 0000h
1514131211109876543210
DFSReserved(00000)FBA
DeviceNumber of BlockFBA
4Gb1024FBA[9:0]
8Gb DDP2048DFS[15] & FBA[9:0]
NOTE :
For QDP, See Section 7.4
Start Address1 Information
Register InformationDescription
FBANAND Flash Block Address
DFSFlash Core of DDP (Device Flash Core Select)
FLASH MEMORY
2.8.10 Start Address2 Register F101h (R/W)
This Read/Write register describes the method to select the BufferRAM of DDP (Device BufferRAM Select)
F101h, default = 0000h
1514131211109876543210
DBSReserved(000000000000000)
Start Address2 Information
Register InformationDescription
DBSBufferRAM and Register of DDP (Device BufferRAM Select)
>DBS should be set to 1 when accessing the BufferRAM of the second chip(MSB chip) in a DDP.
>Since DDP chip has 2 BufferRAMs multiplexed, the BufferRAM which corresponds to the Flash core that is intended to be
accessed must be selected using DBS.
>Data in BufferRAM of one chip is not accessible to the Flash Core of the other chip in a DDP See Section 7.4.
This Read/Write register describes the NAND Flash start page address in a block for a page load, program operation and the NAND Flash
start sector address in a page for a load, or program operation.
F107h, default = 0000h
1514131211109876543210
Reserved (0000000)FPAFSA
Start Address8 Information
ItemDescriptionDefault ValueRange
FPANAND Flash Page Address0000000
FSANAND Flash Sector Address00
NOTE :
1) Only 6bits must be used for 64pages in SLC area. (SLC:64pages, MLC:128pages)
2) Sectors 4-7 in a page are not directly addessable using FSA. However, they can be accessed using BSA and BSC (See Below).FSA must be 00
in program operation.
FLASH MEMORY
0000000 ~ 1111111,
7 bits for 128 pages
00 (sector0), 01 (sector1),
10 (Sector2) , 11 (sector3)
1)
2.8.17 Start Buffer Register F200h (R/W)
This Buffer Sector Count(BSC) specifies the number of sectors to be loaded.
F200h, default = 0000h
1514131211109876543210
Reserved(0000)
The BufferRAM Sector Address (BSA) is the sector 0~3 address in the internal BootRAM and DataRAM where data is placed.
NOTE :
1) In case of ‘Program’ and ‘Load’, Internally BSA fix first sector of DataRAM0(BSA=1000).
ItemDescriptionBSC ValueNumber of Sectors
BSC
(CASE1 : FSA=00)
BSC
(CASE2 : FSA=01)
BSC
(CASE3 : FSA=10)
BSC
(CASE4 : FSA=11)
NOTE :
1) BSC is used only on load operation.
2) Operation not guaranteed for cases not defined in above table(CASE1, CASE2, CASE3,CASE4).
Sector allocation according to BSC(CASE1 : FSA=00)
FLASH MEMORY
BSC = 000
BSC = 001
BSC = 001
BSC = 010
BSC = 010
BSC = 011
BSC = 011
BSC = 100
BSC = 101
BSC = 110
BSC =111
Sector allocation according to BSC(CASE2 : FSA=01)
BSC = 001
BSC = 010
BSC = 011
Sector0Sector1Sector2
Sector0
Sector0
Sector0Sector1
Sector0Sector1
Sector0Sector1Sector2
Sector0Sector1Sector2
Sector0Sector1Sector2
Sector0Sector1Sector2
Sector0Sector1Sector2
Sector0Sector1Sector2
Sector1
Sector1Sector2
Sector1Sector2Sector3
Sector3Sector4Sector5
Sector3
Sector3Sector4
Sector3Sector4Sector5
Sector3Sector4Sector5
Sector6
Sector6
Sector7
Sector allocation according to BSC(CASE3 : FSA=10)
BSC = 001
BSC = 010
Sector allocation according to BSC(CASE4 : FSA=11)
BSC = 001
Sector2
Sector2Sector3
Sector3
* The first sector from Flash(The first sector is determined by FSA. In case of FSA=01[CASE2], the first sector is Sector1.)
is transferred to the 1st sector(sector0) of DataRAM0, and the other sectors are transferred sequentially.
Command can be issued by two following methods, and user may select one way or the other to issue appropriate command;
1. Write command into Command Register when INT is at ready state. INT will automatically turn to busy state as command is issued. Once
the desired operation is completed, INT will go back ready state.
2. Write 0000h to INT bit of Interrupt Status Register, and then write command into Command Register. Once the desired operation is completed, INT will go back to ready state.
(00F0h and 00F3h may be accepted during busy state of some operations. Refer to the right most column of the command register table
below.)
F220h, default = 0000h
1514131211109876543210
Command
CMDOperation
0000hLoad a page unit into buffer00F0h, 00F3h
0003hSuperload a page unit from buffer00F0h, 00F3h
0005h
0080h
007FhCache Program operation 00F0h, 00F3h
0023hUnlock NAND array a block00F0h, 00F3h
002AhLock NAND array a block00F0h, 00F3h
002ChLock-tight NAND array a block00F0h, 00F3h
0027hAll Block Unlock00F0h, 00F3h
0094hBlock Erase00F0h, 00F3h
00B0hErase Suspend00F0h, 00F3h
0030hErase Resume00F0h, 00F3h
00F0hReset NAND Flash Core-
00F3h
0065hOTP Access00F0h, 00F3h
0066hAccess to Partition Information(PI) Block00F0h, 00F3h
NOTE :
1) LSB page recovery Read command can always be issued but not in the PI Block access mode.
2) In PI Block Access mode, PI update can be issued.
3) ‘Reset Flex-MuxOneNAND’(=Hot reset) command makes the registers and NAND Flash core into default state.
LSB page recovery Read
PI update
Program a page unit from buffer &
Finish Program operation at Cache Program operation
2.8.18.1 Two Methods to Clear Interrupt Register in Command Input
FLASH MEMORY
To clear Interrupt Register in command input, user may select one from either following methods.
First method is to turn INT to low by manually writing 0000h to INT bit of Interrupt Register.
Second method is to input command while INT is high, and the device will automatically turn INT to low.
(Second method is equivalent with method used in general NAND Flash)
User may choose the desirable method to clear Interrupt Register.
Method 1: Manually set INT=0 before writing command into Command Register: Manual INT Mode
(1) Clear Interrupt Register (F241h) by writing 0000h into INT bit of Interrupt Register. This operation will make INT pin turn low.
(2) Write command into Command Register. This will make the device to perform the designated operation.
(3) INT pin will turn back to high once the operation is completed.
INT pin1)
INT bit
Write 0 into
INT bit of
Interrupt Register
NOTE : 1) INT pin polarity is based on ‘IOBE=1 and INT pol=1 (default)’ setting
Write command into
Command Register
1)
when designated operation is completed.
1)
1)
INT will automatically turn to high
1)
Method 2: Write command into Command Register at INT ready state: Auto INT Mode
(1) Write command into Command Register. This will automatically turn INT from high to low.
(2) INT pin will turn back to high once the operation is completed.
INT pin1)
INT bit
Write command into
Command Register
NOTE : 1) INT pin polarity is based on ‘IOBE=1 and INT pol=1 (default)’ setting
2.8.19 System Configuration 1 Register F221h (R, R/W)
This Read/Write register describes the system configuration.
F221h, default =40C0h
1514131211109876543210
R/WR/WR/WR/WR/WR/WR/WR/WRR/WR/WR
RMBRWLBLECC
Read Mode (RM)
RMRead Mode
0Asynchronous read(default)
1Synchronous read
Read Mode Information[15]
ItemDefinitionDescription
RMRead Mode
RDY
pol
INT
pol
IOBE
RDY
Conf
Selects between asynchronous read mode and
FLASH MEMORY
Reserv
synchronous read mode
HFWMBWPS
ed
Burst Read Write Latency (BRWL)
Latency Cycles (Read/Write)
BRWL
000~010Reserved
0113(up to 40MHz. min)3(N/A)3(N/A)
100 (default)44(min.)4(N/A)
101555(N/A)
110666 (min .)
111777
* Default value of BRWL and HF value is BRWL=4, HF=0.
For host frequency over 66MHz, BRWL should be 6 or 7 while HF is 1.
For host frequency range of 40MHz~66MHz, BRWL should be set to 4~7 while HF is 0.
For host frequency under 40MHz, BRWL should be set to 3~7 while HF is 0.
IOBE is the I/O Buffer Enable for the INT and RDY signals. At startup, INT and RDY outputs are High-Z. Bits 6 and 7 become valid after IOBE
is set to "1". IOBE can be reset by a Cold Reset or by writing "0" to bit 5 of System Configuration1 Register.
This Read register shows the overall internal status of the Flex-MuxOneNAND and the controller.
F240h, default = 0000h
1514131211109876543210
OnGoReserved(0000)Error
OnGo
This bit shows the overall internal status of the Flex-MuxOneNAND device.
In Cache Program Operation, OnGo bit shows the overall status of Cache Program process.
Reser
ved(0)
Reser
PI
L
ved(0)
OTP
OTP
L
Reserved(00)Previous Current
BL
FLASH MEMORY
TO
(0)
OnGo Information[15]
ItemDefinitionDescription
OnGoInternal Device Status
Error
This bit shows the overall Error status.
In case of Cache Program, Error bit will show the accumulative error status of Cache Program operation, so that if an error occurs during
Cache Program, this bit will stay as Fail status, until the end of Cache Program.
Error Information[10]
ErrorLoad Program, Cache Program, and Erase Result
0Pass
1Fail
PI Lock Status (PI
This bit shows whether the PI block is locked or unlocked. Locking the PI has the effect of a 'Program/Erase protect' to guard against
accidental re-programming of data stored in the PI block.
The PI status bit is automatically updated at power-on and PI update operation by PI Update command.
This bit shows whether the OTP block is locked or unlocked. Locking the OTP has the effect of a 'write-protect' to guard against
accidental re-programming of data stored in the OTP block.
The OTP
OTP Lock Information[6]
1st Block OTP Lock Status (OTPBL)
This bit shows whether the 1st Block OTP is locked or unlocked.
Locking the 1st Block OTP has the effect of a 'Program/Erase protect' to guard against accidental re-programming of data stored in the 1st
block.
The OTP
This bit shows the previous program status of Cache Program. This value is invalid only at the first ‘Read Controller Status Register’ step of
Cache Program operation. (Refer to 6.12 and 6.13)
Previous [2]
PreviousStatus of previous program
0Pass
1Fail
Current Cache Program Status (Current)
This bit shows the current program status only at Final Cache Program.
Current Information[1]
CurrentStatus of current program
0Pass
1Fail
Time Out (TO)
This bit determines if there is a time out for load, program, and erase operations. It is fixed at 'no time out'.
This Read/Write register shows status of the Flex-MuxOneNAND interrupts.
F241h, defaults = 8080h after Cold Reset; 8010h after Warm/Hot Reset
1514131211109876543210
INTReserved(0000000)RIWIEIRSTIReserved(0000)
Interrupt (INT)
This is the master interrupt bit. The INT bit is wired directly to the INT pin on the chip. Upon writing '0' to the INT bit, the INT pin goes low if
INTpol is high and goes high if INTpol is low.
This Read/Write register shows the NAND Flash block address in the Write Protection mode. Setting this register precedes a 'Lock Block'
command, 'Unlock Block' command, or ‘Lock-Tight' Command.
Default State
ColdWarm/h ot
01 0off
FLASH MEMORY
Valid
State
0
1
1
0
Interrupt
Function
Pending
off
F24Ch, default = 0000h
1514131211109876543210
Reserved(000000)SBA
DeviceNumber of BlockSBA
4Gb1024[9:0]
2.8.24 Start Block Address Register F24Dh (R/W)
This register is reserved for future use.
2.8.25 NAND Flash Write Protection Status Register F24Eh (R)
This Read register shows the Write Protection Status of the NAND Flash memory array.
To read the write protection status, FBA(DFS and DBS also in case of DDP) has to be set before reading the register
F24Eh, default = 0002h
1514131211109876543210
Reserved(0000000000000)USLSLTS
.
Write Protection Status Information[2:0]
ItemBitDefinitionDescription
US2Unlocked Status1 = current NAND Flash block is unlocked
LS1Locked Status
LTS0Locked-Tight Status1 = current NAND Flash block is locked-tight
Or First Block of NAND Flash Array is Locked to be OTP
This Read register shows the Error Correction Status. The Flex-MuxOneNAND can correct up to 4-bit errors.
ECC can be performed on the NAND Flash main and spare memory areas. The ECC status register can also show the number of errors in a
sector as a result of an ECC check in during a load operation. ECC status bits are also updated during a boot loading operation.
FF00h, default = 0000h
1514131211109876543210
ReservedER1ReservedER0
2.8.27 ECC Status Register 2 FF01h (R)
FF01h, default = 0000h
1514131211109876543210
ReservedER3ReservedER2
2.8.28 ECC Status Register 3 FF02h (R)
FLASH MEMORY
FF02h, default = 0000h
1514131211109876543210
ReservedER5ReservedER4
2.8.29 ECC Status Register 4 FF03h (R)
FF03h, default = 0000h
1514131211109876543210
ReservedER7ReservedER6
Error Status
ERECC Status
00000No Error
000011bit error(correctable)
000102bit error(correctable)
001003bit error(correctable)
010004bit error(correctable)
10000Uncorrectable
ECC location Information
ItemDefinition
ER0Error status of 1st selected sector (Main and Spare area)
ER1Error status of 2nd selected sector (Main and Spare area)
ER2Error status of 3rd selected sector (Main and Spare area)
ER3Error status of 4th selected sector (Main and Spare area)
ER4Error status of 5th selected sector (Main and Spare area)
ER5Error status of 6th selected sector (Main and Spare area)
ER6Error status of 7th selected sector (Main and Spare area)
ER7Error status of 8th selected sector (Main and Spare area)
This section of the data sheet discusses the operation of the Flex-MuxOneNAND device. It is followed by AC/DC
Characteristics and Timing Diagrams which may be consulted for further information.
The Flex-MuxOneNAND supports a limited command-based interface in addition to a register-based interface for performing operations on
the device.
3.1 Command Based Operation
Flex-OneNAND supports a limited command based interface. The address range of BootRAM ([0000h - 01FFh, 8000h - 800Fh]), called the
Boot Partition is actually a read only area. This is because it contains bootloader code which must not be overwritten.
Therefore any attempt of data write to the Boot Partition is interpreted by Flex-OneNAND as a "Command based operation".
Commands can only be written with a Boot Partition address. Thus, the command-based interface is active only in the boot partition.
The remaining address range, except for the boot area, (address range [0200h - FFFFh]) can be used as a read/write data buffer.(with a few
exceptions like ID registers). Writes outside the boot partition are treated as normal writes to the buffers or registers.
The command consists of one or more cycles depending on the command. After completion of the command the device starts its execution.
Writing incorrect information including address and data to the boot partition or writing an improper command will terminate the previous command sequence and make the device enter the ready status.
The defined valid command sequences are stated in Command Sequences Table. Command based operations are mainly used when FlexMuxOneNAND is used as Booting device, and all command based operations only supports asynchronous reads and writes. With DDP, command based operation except reset is applicable only on chip1.
2) Load Data into Buffer operation is available within a block(128KB(SLC), 256KB(MLC)) (Chip1 only in case of DDP)
3) Load 4KB unit into DataRAM0, DataRAM1. Current Start address(FPA) is automatically incresed by 4KB unit after the load.
4) 0000h -> Data is Manufacturer ID (Chip1 only in case of DDP)
0001h -> Data is Device ID (Chip1 only in case of DDP)
0002h -> Current Block Write Protection Status (Chip1 only in case of DDP)
toggling can terminate ’Read Identification Data’ operation.
The Reset command is given by writing 00F0h to the boot partition address. Reset will return all default values into the device.
3.1.2 Load Data Into Buffer Command
Load Data into Buffer command is a two-cycle command. Two sequential designated command activates this operation. Sequentially writing
00E0h and 0000h to the boot partition [0000h~01FFh, 8000h~800Fh] will load one page to DataRAM0 and DataRAM1. This operation refers
to FBA. FSA must be 00 and BSA must be 1000.
At the end of this operation, FPA will be automatically increased by 1. So continuous issue of this command will sequentially load data in next
page to DataRAM0, DataRAM1. This page address increment is restricted within a block.
The default value of FBA and FPA is 0. Therefore, initial issue of this command after power on will load the first page of memory, which is usually boot code.
3.1.3 Read Identification Data Command
The Read Identification Data command consists of two cycles. It gives out the devices identification data according to the given address. The
first cycle is 0090h to the boot partition address and second cycle is read from the addresses specified in Identification Data Description Table.
FLASH MEMORY
Identification Data Description
AddressData Out
0000hManufacturer ID (00ECh)
0001h
0002h
NOTE :
1) Refer to Device ID Register (Chapter 2.8.3)
2) To read the write protection status, FBA has to be set before issuing this command.
F240hController Status Register (R) (Note 1b) (Note 4)0000h0000h0000hN/A
F241hInterrupt Status Register (R/W)8080h8010h8010hN/A
F24ChStart Block Address (R/W)0000h0000hN/AN/A
F24EhNAND Flash Write Protection Status (R) (Note 5)0002h0002hN/AN/A
FF00hECC Status Register 1 (R) (Note 2)0000h0000h0000hN/A
FF01hECC Status Register 2 (R) (Note 2)0000h0000h0000hN/A
FF02hECC Status Register 3 (R) (Note 2)0000h0000h0000hN/A
FF03hECC Status Register 4 (R) (Note 2)0000h0000h0000hN/A
NOTE :
1a) RDYpol, RDYconf, INTpol, IOBE are reset by Cold reset. The other bits are reset by cold/warm/hot reset
1b) The other bits except OTPL and OTPBL are reset by cold/warm/hot reset.
2) ECC Status Register 1~4 are reset when any command is issued.
3) Refer to Device ID Register F001h.
4) Resetting during IDLE state, this is valid. But resetting during BUSY state, refer to Chapter 2.8.21.
5) To read NAND Flash Write Protection status, Block Address register must be written before.
At system power-up, the voltage detector in the device detects the rising edge of Vcc and releases an internal power-up reset signal. This triggers boot code loading. Bootcode loading means that the boot loader in the device copies designated sized data (1KB) from the beginning of
memory into the BootRAM. This sequence is the Cold Reset of Flex-MuxOneNAND.
The POR(Power On Reset) triggering level is typically 1.5V. Boot code copy operation activates 400us after POR.
Therefore, the system power should reach 1.7V within 400us from the POR triggering level for bootcode data to be valid.
It takes approximately 250us to copy 1KB of boot code. Upon completion of loading into the BootRAM, it is available to be read by the host.
The INT pin is not available until after IOBE = 1 and IOBE bit can be changed by host.
3.3.2 Warm Reset Mode Operation
See Timing Diagrams 6.16
FLASH MEMORY
A Warm Reset means that the host resets the device by using the RP
ations and executes internal reset operation and resets current NAND Flash core operation synchronized with the
falling edge of RP
During an Internal Reset Operation, the device initializes internal registers and makes output signals go to default status.
The BufferRAM data is kept unchanged after Warm/Hot reset operations.
The device guarantees the logic reset operation in case RP
The device may reset if tRP < tRP min(200ns), but this is not guaranteed.
Warm reset will abort the current NAND Flash core operation. During a warm reset, the content of memory cells being altered is no longer
valid as the data will be partially programmed or erased.
Warm reset has no effect on contents of BootRAM and DataRAM.
.
pulse is longer than tRP min(200ns).
pin. When the a RP low is issued, the device logic stops all current oper-
3.3.3 Hot Reset Mode Operation
See Timing Diagrams 6.17
A Hot Reset means that the host resets the device by Reset command. The reset command can be either Command based or Register
Based. Upon receiving the Reset command, the device logic stops all current operation and executes an internal reset operation and resets
the current NAND Flash core operation.
During an Internal Reset Operation, the device initializes internal registers and makes output signals go to default status. The BufferRAM data
is kept unchanged after Warm/Hot reset operations.
Hot reset has no effect on contents of BootRAM and DataRAM.
3.3.4 NAND Flash Core Reset Mode Operation
See Timing Diagrams 6.18
The Host can reset the NAND Flash Core operation by issuing a NAND Flash Core reset command. NAND Flash core reset will abort the current NAND Flash core operation. During a NAND Flash core reset, the content of memory cells being altered is no longer valid as the data will
be partially programmed or erased.
NAND Flash Core Reset has an effect on neither contents of BootRAM and DataRAM nor register values.
The Flex-MuxOneNAND can be write-protected to prevent re-programming or erasure of data.
The areas of write-protection arethe BootRAM, and the NAND Flash Array.
3.4.1 BootRAM Write Protection Operation
At system power-up, voltage detector in the device detects the rising edge of Vcc and releases the internal power-up reset signal which triggers boot code loading. And the designated size data(1KB) is copied from the first page of the first block in the NAND flash array to the
BootRAM.
After the bootcode loading is completed, the BootRAM is always locked to protect the boot code from the accidental write.
3.4.2 NAND Flash Array Write Protection Operation
The device has both hardware and software write protection of the NAND Flash array.
Hardware Write Protection Operation
The hardware write protection operation is implemented by executing a Cold or Warm Reset. On power up, the NAND Flash Array is in its
default, locked state. The entire NAND Flash array goes to a locked state after a Cold or Warm Reset.
FLASH MEMORY
Software Write Protection Operation
The software write protection operation is implemented by writing a Lock command (002Ah) or a Lock-tight command (002Ch) to command
register (F220h).
Lock (002Ah) and Lock-tight (002Ch) commands write protects the block defined in the Start Block Address Register F24Ch.
3.4.3 NAND Array Write Protection States
There are three lock states in the NAND Array: unlocked, locked, and locked-tight. On power up, all blocks in the NAND array go to Locked
state. The lock status is maintained for each block in the NAND array. Any changes made to lock status of blocks are lost when Cold/warm
reset occurs.
Flex-MuxOneNAND supports 4 commands for changing Write Protection states of the blocks: lock/unlock/lock-tight by one block, and All
Block Unlock at once.
All Block Unlock command fails if there are lock-tight blocks in flash.
Write Protection Status
The current block Write Protection status can be read in NAND Flash Write Protection Status Register(F24Eh). There are three bits - US, LS,
LTS -, which are not cleared by hot reset and NAND Flash Core Reset. These Write Protection status registers are updated when FBA is set,
and when Write Protection command is entered.
The followings summarize locking status.
By default, [2:0] values are 010. For example:
-> If host executes unlock block operation, then [2:0] values turn to 100.
-> If host executes lock-tight block operation, then [2:0] values turn to 001.
3.4.3.1 Unlocked NAND Array Write Protection State
An Unlocked block can be programmed or erased. The status of an unlocked block can be changed to locked or locked-tight using the appro-
priate software command(Locked-tight state can be achieved in 2 steps. First, the block should be locked via the lock command. Then, Lock
tight command must be issued.).
Only one block can be released from lock state to unlock state with Unlock command and addresses. The unlocked block can be changed
with new lock command. Therefore, each block has its own lock/unlock/lock-tight state.
Even though SBA is fixed to 000h, Unlock will be done for all block. All block unlock is not valid if there is a lock-tight block. With DDP, all block unlock command
must be issued on each chip.
3.4.3.2 Locked NAND Array Write Protection State
A Locked block cannot be programmed or erased. All blocks default to a locked state following a Cold or Warm Reset. Unlocked blocks can be
changed to locked using the Lock block command. The status of a locked block can be changed to unlocked or locked-tight using the appropriate software command.
3.4.3.3 Locked-tight NAND Array Write Protection State
A block that is in a locked-tight state can only be changed to locked state after a Cold or Warm Reset. Unlock and Lock command sequences
will not affect its state. This is an added level of write protection security.
A block must first be set to a locked state before it can be changed to locked-tight using the Lock-tight command. locked-tight blocks will revert
to a locked state following a Cold or Warm Reset.
When there are Lock-tight blocks in the flash array, All Block Unlock Command will fail and there will be no change in the lock status of the
blocks of the Flash array.
Thus, All Block Unlock command succeeds only when there are no tightly-locked blocks in Flash.
The device is designed to offer protection from any involuntary program/erase during power-transitions.
pin which provides hardware protection is recommended to be kept at VIL before Vcc drops to 1.5V.
RP
3.6 Load Operation
See Timing Diagrams 6.9
The Load operation is initiated by setting up the start address from which the data is to be loaded. The Load command is issued in order to initiate the load.
During a Load operation, the device:
-Transfers the data from NAND Flash array into the BufferRAM
-ECC is checked and any detected and corrected error is reported in the status response as well as
any unrecoverable error.
Once the BufferRAM has been filled, an interrupt is issued to the host so that the contents of the BufferRAM can be read. The read from the
BufferRAM can be an asynchronous read mode or synchronous read mode. The status information related to load operation can be checked
by the host if required.
FLASH MEMORY
Load Operation Flow Chart Diagram
Start
Write ‘DFS*, FBA’ of Flash
Add: F100h DQ=DFS, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=FPA, FSA
Write ‘BSA1), BSC’ of DataRAM
Add: F200h DQ=0800h
Write System Configuration
Register
Add: F221h DQ=ECC
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘Load’ Command
Add: F220h DQ=0000h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
Read ECC Status Register1
Add: FF00h DQ=ER1[12:8], ER0[4:0]
Read ECC Status Register2
Add: FF01h DQ=ER3[12:8], ER2[4:0]
Read ECC Status Register3
Add: FF02h DQ=ER5[12:8], ER4[4:0]
2)
Read ECC Status Register4
Add: FF03h DQ=ER7[12:8], ER6[4:0]
Host reads data from
DataRAM
Read completed
NOTE :
1) BSA must be 1000.
2) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
The Superload operation is used to read multiple pages. During Superload operation, up to 4bit errors are corrected.
Once the first data is loaded, an interrupt status returns to ready. The data in DataRAM should be read after next Superload command is
issued. Data is being loaded from NAND to page buffer until whole data in DataRAM is read. The read from the DataRAM can be only syn-
chronous read mode. The status information related to load operation can be checked by the host if required. When host accesses DataRAM,
the address of DataRAM must be a multiple of 4.
Superload operation must be utilized within a same area partitioned as SLC or MLC.
Superload Operation Flow Chart Diagram
FLASH MEMORY
Start
Write ‘DFS, FBA’ of Flash
Add: F100h DQ=DFS*, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS*
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=FPA, FSA
Write ‘BSA2), BSC’ of DataRAM
Add: F200h DQ=0800h
Write System Configuration
Register
Add: F221h DQ=ECC
1)
Write 0 to INT register or PIN
Add: F241h DQ=0000h
Write Load Command
Add=F220h DQ=0000h
5)
Wait for INT register or PIN
low to high transition
Add: F241h DQ[15]=INT
Read ECC Status Register1
Add: FF00h DQ=ER1[12:8], ER0[4:0]
Read ECC Status Register2
Add: FF01h DQ=ER3[12:8], ER2[4:0]
Read ECC Status Register3
Add: FF02h DQ=ER5[12:8], ER4[4:0]
Read ECC Status Register4
Add: FF03h DQ=ER7[12:8], ER6[4:0]
3)
Write ‘DFS, FBA’ of Flash
Add: F100h DQ=FBA
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=FPA, FSA
4)
Write 0 to INT register or PIN
Add: F241h DQ=0000h
4)
Read ECC Status Register1
Add: FF00h DQ=ER1[12:8], ER0[4:0]
Read ECC Status Register2
Add: FF01h DQ=ER3[12:8], ER2[4:0]
Read ECC Status Register3
Add: FF02h DQ=ER5[12:8], ER4[4:0]
Read ECC Status Register4
Add: FF03h DQ=ER7[12:8], ER6[4:0]
NO
Finished to load
final page?
Write Superload Command
YES
Add=F220h DQ=0003h
Host reads data from
DataRAM 0,1
6)
Host reads data from
DataRAM 0,1
5)
Superload Completed
Wait for INT register or PIN
high to low transition
* DBS, DFS is for DDP
Add: F241h DQ[15]=INT
NOTE :
1) FSA must be 00 and BSC must be 000 always for Superload operation.
2) BSA must be 1000.
3) In case of Superload operation, the number of sectors to be loaded is 8 sectors.
4) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18
5) For the first load, hosts must issue ‘Load(0000h)’ command.
6) In case of Superload operation, only synchronous read mode is valid.
Host should read data out until end of DataRAM(804FH).
After Reading out the last data(Add:804F), Additional clock should not be asserted.
MLC NAND Flash cell has paired pages - LSB page and MSB page. LSB page has lower page address and MSB page has higher page
address in paired pages. If power off occurs during MSB page program, the paired LSB page data can become corrupt. LSB page recovery
read is a way to read LSB page though page data are corrupted. When uncorrectable error occurrs as a result of LSB page read after power
up, issue LSB page recovery read. Its command is ‘0005h’. Flow chart below shows LSB page read sequence.
LSB Page Recovery read flow chart
Start
NO
Write ‘DFS, FBA’ of Flash
Add: F100h DQ=DFS*, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS*
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=FPA, FSA
Write ‘BSA, BSC’ of DataRAM
Add: F200h DQ=0800h
Write System Configuration
Write ‘LSB Page Recovery Read’
Read Controller status register
Add: F240h DQ[10]=Error
NOYES
Register
Add: F221h DQ=ECC
Write 0 to INT register
Add: F241h DQ=0000h
Command
Add=F220h DQ=0005h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
DQ[10]=0?
Write ‘DFS, FBA’ of Flash
Add: F100h DQ=DFS*, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS*
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=FPA, FSA
Write ‘BSA1), BSC’ of DataRAM
Add: F200h DQ=0800h
Write System Configuration
Read Controller status register
Add: F240h DQ[10]=Error
Register
Add: F221h DQ=ECC
Write 0 to INT register
Add: F241h DQ=0000h
Write ‘Load’ Command
Add=F220h DQ=0000h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
2)
DQ[10]=0?
YES
Read ECC Status Register1
Add: FF00h DQ=ER1[12:8],
ER0[4:0]
Read ECC Status Register2
Add: FF01h DQ=ER3[12:8],
ER2[4:0]
Read ECC Status Register3
Add: FF02h DQ=ER5[12:8],
ER4[4:0]
Read ECC Status Register4
Add: FF03h DQ=ER7[12:8],
ER6[4:0]
Host reads data from
DataRAM
Read Completed
Load Error
FLASH MEMORY
Read ECC Status Register1
Add: FF00h DQ=ER1[12:8],
ER0[4:0]
Read ECC Status Register2
Add: FF01h DQ=ER3[12:8],
ER2[4:0]
Read ECC Status Register3
Add: FF02h DQ=ER5[12:8],
ER4[4:0]
Read ECC Status Register4
Add: FF03h DQ=ER7[12:8],
ER6[4:0]
Host reads data from
DataRAM
Read Completed
* DBS, DFS is for DDP
NOTE :
1) BSA must be 1000.
2) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
The device has two read modes; Asynchronous Read and Synchronous Burst Read.
The initial state machine automatically sets the device into the Asynchronous Read Mode (RM=0) to prevent the spurious altering of memory
content upon device power up or after a Hardware reset. No commands are required to retrieve data in Asynchronous Read Mode.
The Synchronous Read Mode is enabled by setting RM bit of System Configuration1 Register (F221h) to Synchronous Read Mode (RM=1).
See section 2.8.19 for more information about System Configuration1 Register.
In an Asynchronous Read Mode, data is output with respect to a logic input, AVD
Output data will appear on DQ15-DQ0 when a valid address is asserted on A15-A0 while driving AVD
function of the AVD
Address access time from AVD
The Chip Enable access time (tCE) is equal to the delay from the falling edge of CE
The Output Enable access time (tOE) is the delay from the falling edge of OE
signal is to latch the valid address.
low (tAA) is equal to the delay from valid addresses to valid output data.
In a Synchronous Read Mode, data is output with respect to a clock input.
The device is capable of a continuous linear burst operation and a fixed-length linear burst operation of a preset length. Burst address
sequences for continuous and fixed-length burst operations are shown in the table below.
In the burst mode, the initial word will be output asynchronously, regardless of BRWL. While the following words will be determined by BRWL
value.
The latency is determined by the host based on the BRWL bit setting in the System Configuration 1 Register. The default BRWL is 4 latency
cycles. At clock frequencies of 40MHz or lower, latency cycles can be reduced to 3. BRWL can be set up to 7 latency cycles.
The BRWL registers in System Configuration 1 Register can be read during a burst read mode by using the AVD
F221h.
The initial word is output at tIAA after the rising edge of the first CLK cycle. The RDY output indicates the initial word is ready to the system by
pulsing high. If the device is accessed synchronously while it is set to Asynchronous Read Mode, the first data can still be read out.
Subsequent Clock Cycles
Subsequent words are output (Burst Access Time from Valid Clock to Output) tBA after the rising edge of each successive clock cycle, which
automatically increments the internal address counter.
Terminating Burst Read
The device will continue to output sequential burst data until the system asserts CE
ignated address (see section 2.7.3 for address map information). Alternately, a Cold/Warm/Hot Reset, or a WE
burst read operation.
Synchronous Read Boundary
DivisionAdd.map(word order)
BootRAM Main(0.5KW) 0000h~01FFh
BufferRAM0 Main(1KW)0200h~05FFh
BufferRAM1 Main(1KW)0600h~09FFh
Reserved Main*0A00h~7FFFh
BootRAM Spare(16W)8000H~800Fh
BufferRAM0 Spare(32W) 8010h~802Fh
BufferRAM1 Spare(32W) 8030h~804Fh
Reserved Spare* 8050h~8FFFh
Reserved Register*9000h~EFFFh
Register(4KW)F000h~FFFFh
* Reserved area is not available on Synchronous read
high, or RP low, wrapping around until it reaches the des-
FLASH MEMORY
low pulse will terminate the
Not Supported
Not Supported
Not Supported
Not Supported
Not Supported
NOTE :
Continuous burst read should be done, with in the address range of the selected buffer RAM, dataRAM0 or DataRAM1.
3.7.2.2 4-, 8-, 16-, 32-Word Linear Burst Read Operation
See Timing Diagram 6.1
An alternate Burst Read Mode enables a fixed number of words to be read from consecutive address.
The device supports a burst read from consecutive addresses of 4-, 8-, 16-, and 32-words with a linear-wrap around. When the last word in
the burst has been reached, assert CE
In this mode, the start address for the burst read can be any address of the address map with one exception. The device does not support a
32-word linear burst read on the spare area of the BufferRAM.
Upon power up, the number of initial clock cycles from Valid Address (AVD
The number of clock cycles (n) which are inserted after the clock which is latching the address. The host can read the first data with the
(n+1)th rising edge.
The number of total initial access cycles is programmable from three to seven cycles. After the number of programmed burst clock cycles is
reached, the rising edge of the next clock cycle triggers the next burst data.
Four Clock Burst Read Latency (BRWL=4 case)
CE
CLK
AVD
A/DQ0:
A/DQ15
OE
RDY
Hi-Z
-10123
Val id
Address
tIAA
tRDYA
4
D6D7D0D1D2D3D7D0
) to initial data defaults to four clocks.
Rising edge of the clock cycle following last read latency
triggers next burst data
tBA
tRDYS
Hi-Z
NOTE :
*
BRWL=4, HF=0 is recommended for 40MHz~66MHz. For frequency over 66MHz, BRWL should be 6 or 7 while HF=1.
Also, for frequency under 40MHz, BRWL can be reduced to 3, and HF=0.
3.7.3 Handshaking Operation
The handshaking feature allows the host system to simply monitor the RDY signal from the device to determine when the initial word of burst
data is ready to be read.
To set the number of initial cycles for optimal burst mode, the host should use the programmable burst read latency configuration (see section
2.8.19, "System Configuration1 Register").
The rising edge of RDY which is derived at one cycle prior of data fetch clock indicates the initial word of valid burst data.
3.7.4 Output Disable Mode Operation
When the CE or OE input is at VIH, output from the device is disabled.
The outputs are placed in the high impedance state.
Burst mode operations enable high-speed synchronous read and write operations. Burst operations consist of a multi-clock sequence that
must be performed in an ordered fashion. After CE
During this first clock rising edge, WE
burst can be specified in the BL as either a fixed length or continuous. Fixed-length bursts consist of 4, 8, 16, and 32 words. Continuous burst
write has the ability to start at a specified address and burst within the designated DataRAM. The latency count stored in the BRWL defines
the number of clock cycles that elapse before the initial data value is transferred between the processor and Flex-MuxOneNAND device.
The RDY output will be asserted as soon as a burst is initiated, and will be de-asserted to indicate when data is to be transferred into (or out
of) the memory. The processor can access other devices without incurring the timing penalty of the initial latency for a new burst by suspending burst mode. Bursts are suspended by stopping clk. clk can be stopped high or low. Note that the RDY output will continue to be active, and
as a result no other devices should directly share the RDY connection to the controller.
To continue the burst sequence, clk is restarted after valid data is available on the bus.
Same as the normal burst mode, the latency is determined by the host based on the BRWL bit setting in the System Configuration 1 Register.
The default BRWL is 4 latency cycles. At clock frequencies of 40MHz or lower, latency cycles can be reduced to 3, at frequency range from
40MHz to 66MHz, latency cycle should be over 4. Over clock frequency of 66MHz, latency cycle should be over 6.
For BufferRAMs, both ‘Start Initial Burst Write’ and ‘Burst Write’ is supported. (Refer to Chapter 3.2) However, for Register Access, only ‘Start
Initial Burst Write’ is supported. Therefore, Synchronous Burst Write on Register is prohibited.(Refer to Chapter 3.2 and 6.8)
indicates whether the operation is going to be a read (WE = high) or write (WE = low). The size of a
goes low, the address to access is latched on the next rising edge of clk that ADV is low.
The Program operation is used to program data from the on-chip BufferRAMs into the NAND FLASH memory array.
The device has two 2KB data buffers, 1 Page (4KB + 128B) in size. A page has 8 sectors of 512B each main area and 16B spare area. The
device can be programmed in units of 8 sectors at once.
Addressing for program operation
Within a block, the pages must be programmed consecutively from the LSB (least significant bit) page of the block to MSB (most significant
bit) pages of the block. Random page address programming is prohibited. Once users start to write data on a certain page, the page is a LSB
page, therefore LSB page does not have to always be a page 0.
MLC Block
Page 127
Page 31
Page 2
Page 1
Page 0
(128)
:
(32)
:
(3)
(2)
(1)
Page 127
Page 31
Page 2
Page 1
Page 0
(128)
FLASH MEMORY
:
(1)
:
(3)
(32)
(2)
Data register
From the LSB page to MSB page
DATA IN: Data (1)
Page 63
Page 31
Page 2
Page 1
Page 0
From the LSB page to MSB page
DATA IN: Data (1)
NOTE :
The figure explains the order of page programming in a block. (x) indicates that the corresponding
page is the Xth page to be written in the block.
In case of MLC partition, when Program, Cache Program, Interleave cache program, Copy-back with random data in operations are abnormally aborted(eg. power-down), not only page data under program but also paired page data may be damaged.
2) Data input could be done anywhere between "Start" and "Write Program Command".
3) FSA must be 00 within program operation.
4) BSA must be 1000 and BSC must be 000.
5) Writing System Configuration Register is optional.
6) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
During the execution of the Internal Program Routine, the host is not required to provide any further controls or timings. Furthermore, all commands, except a Reset command, will be ignored. A reset during a program operation will cause data corruption at the corresponding location.
If a program error is detected at the completion of the Internal Program Routine, map out the block, including the page in error, and copy the
target data to another block. An error is signaled if DQ10 = "1" of Controller Status Register(F240h).
If Power off occurs during a Program operation, the page that is being programmed might be corrupted. Data from paired pages may be
affected.
4)
5)
: If program operation results in an error, map out
*
the block including the page in error and copy the
target data to another block.
The Cache Program is to enhance the performance of Program Operation. Employing Cache Program operation, transfer time from Host to
DataRAM can be shadowed, therefore write performance will increase.
In Cache Program, since 4KB data is to be programmed into NAND Flash Array in another advanced way.
FLASH MEMORY
1. 4KB Data write from host to DataRAMs.
2. Cache Program command issue. This will turn INT pin to busy state
(Note that before issuing ‘Cache Program Command’, host should make sure that the target blocks are unlocked.)
3. 4KB data will be sequentially transferred to a page buffer in NAND Flash Array.
4. When this transfer operation is complete, programming into NAND Flash Array will automatically start, and at the same time, INT bit will turn
to ‘1’ to indicate that DataRAMs are now ready to be written with next 4KB data.
5. When second 4KB is written to two DataRAMs, another Cache Program command is issued and INT bit will go to ‘0’
If host wants to program data less than 8 sectors, unwanted area to be programmed must be written to all ‘1’s.
When INT bit goes to ‘1’ after second data transfer from DataRAMs to Page Buffers are complete, user may check the Status Register to
check the Cache program status. During Cache Program, Error bit shows the status of previous program operation.
For the final 4KB program of Cache Program scheme, host should issue Program Command(0080h). And when the final page is programmed,
INT bit will turn to ‘1’ and OnGo status bit - which indicates the overall Cache Program ongoing status - will go to ‘0’. At the completion of
Cache Program operation, Error bit will show the pass/fail status overall status of program, and previous ~ current bit will show where the error
occurred accordingly (Refer to the below diagram.)
Note that Cache Program command cannot be performed on OTP block and 1st block OTP.
Cache Program operation must be utilized within a same area partitioned as SLC or MLC.
The Interleave Cache Program is available only on DDP. Host can write data on a chip while programming another chip with this operation.
Interleave Cache Program is executing as following:
1. 4KB Data are written from host to DataRAMs in Chip1.
2. Cache Program command issue. This will turn INT bit to busy state
(Note that before issuing ‘Interleave Cache Program Command’, host should make sure that the target blocks are unlocked.)
3. 4KB data will be sequentially transferred to each page buffer in NAND Flash Array.
4. While these data are transferring, Host can write another 4KB Data to DataRAM in Chip2.
5. When the transfer operation is completed, programming into NAND Flash Array will automatically start, and at the same time, INT bit will
turn to ‘1’ to indicate that DataRAMs are now ready to be written with next 4KB data.
6. Second 4KB is writable on Chip1 when INT1 goes to ‘1’.
7. When second 4KB is written to two DataRAMs of Chip1, another Cache Program command is issued and INT1 bit will go to ‘0’
When INT bit goes to ‘1’ after second data transfer from DataRAMs to Page Buffers are complete, user may check the Status Register to
check the Cache program status. During Cache Program, previous bit shows the status of previous program operation.
For the final 4KB program of Interleave Cache Program scheme, host should issue Program Command(0080h) on each chip. If host issues
0080h on only a chip, another chip will be on operation as it is not finished. Ongo status bit will show the ongoing status of each chip. Its operation is same as Cache Program operation on each chip. Error bit will show the pass/fail status of each chip of Interleave Cache program, and
previous ~ current bit will show where the error occurred accordingly .
1)
, OnGo bit sets to ‘1’.
FLASH MEMORY
1)
again.
Note that OTP block and 1st block OTP cannot be Interleave Cache Programmed.
Interleave Cache Program operation must be utilized within a same area partitioned as SLC or MLC.
1) Data Write, Issue Program Command (Page A)
3) Check for INT bit = 1, then Data write (Page B)
Page A
Page B
Page A
Page B
Sector0
Sector0
Sector7
3’) Program
Sector7
4’) Program
Page Buffer
(4 KB)
Page Buffer
(4 KB)
2’) Copy to
Page Buffer
3’’) Copy to
Page Buffer
DataRAM0
DataRAM1
4 KB
DataRAM0
DataRAM1
4 KB
2) Data Write, Issue Program Command (Page A)
4) Check for INT bit = 1, then Data write (Page B)
NOTE :
2 and 2’ are concurrent; 3, 3’ and 3’’ are concurrent; 4 and 4’ are concurrent.
map out the block
including the page in
error and copy the
target data to another
block.
NOTE :
1) DBS must be set before data input.
2) FSA must be 00 and BSC must be 000 within program operation.
3) BSA must be 1000.
4) Writing System Configuration Register is optional.
5) Host is strongly recommended to see the INT register(F241h) of each chip.
6) Once ‘PGM command’ is issued onto a chip, the same command(PGM) must be issued onto another chip. If not, Samsung cannot gurantee the following oper-
ation.
7) If error bit is set at this step, DQ[1]~[4] shoulde be checked in order to find where the error occurred.
3.10 Copy-Back Program Operation with Random Data Input
The Copy-Back Program Operation with Random Data Input in Flex-MuxOneNAND consists of 3 phases, Load data into DataRAM, Modify
data and program into designated page. Data from the source page is saved in one of the on-chip DataRAM buffers and modified by the host,
then programmed into the destination page.
As shown in the flow chart, data modification is possible upon completion of load operation. ECC is also available at the end of load operation.
Therefore, using hardware ECC of Flex-MuxOneNAND, accumulation of 4 bit error can be avoided.
Copy-Back Program Operation with Random Data Input will be effectively utilized at modifying certain bit, byte, word, or sector of source page
to destination page while it is being copied.
Copy-Back Program Operation with Random Data Input Flow Chart
FLASH MEMORY
Start
Write ‘DFS*, FBA’ of Flash
Add: F100h DQ=DFS, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=FPA, FSA
Write ‘BSA1), BSC’ of DataRAM
Add: F200h DQ=0800h
Write System Configuration
Register
Add: F221h DQ=ECC
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘Load’ Command
Add: F220h DQ=0000h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
2)
3)
4)
Read ECC Status Register1
Add: FF00h DQ=ER1[12:8], ER0[4:0]
Read ECC Status Register2
Add: FF01h DQ=ER3[12:8], ER2[4:0]
Read ECC Status Register3
Add: FF02h DQ=ER5[12:8], ER4[4:0]
Read ECC Status Register4
Add: FF03h DQ=ER7[12:8], ER6[4:0]
NO
Write ‘DFS, FBA’ of Flash
Add: F100h DQ=DFS, FBA
Read Write Protection Status
Add: F24Eh DQ=US,LS,LTS
Add: F107h DQ=FPA, FSA
DQ[10]=0?
YES
Random Data Input
Add: Random Address in
Selected DataRAM
DQ=Data
Write ‘FPA, FSA’ of Flash
2)
Write System Configuration
Register
Add: F221h DQ=ECC
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘Program’ Command
Add: F220h
DQ=0080h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
Read Controller
Status Register
Add: F240h DQ[10]=Error
NO
DQ[10]=0?
Copy back completed
Copy back Error
3)
YES
4)
Write ‘BSA1), BSC’ of DataRAM
Add: F200h DQ=0800h
Map Out
NOTE :
1) BSA must be 1000.
2) FSA must be 00 and BSC must be 000 within program operation.
3) Writing System Configuration Register is optional.
4) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
The device can be erased one block at a time. To erase a block is to write all 1's into the desired memory block by executing the Internal Erase
Routine. All previous data is lost.
Block Erase Operation Flow Chart
Start
Write ‘DFS*, FBA’ of Flash
Add: F100h DQ=DFS*, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS*
Read Write Protection Status
Add: F24Eh DQ=US,LS,LTS
FLASH MEMORY
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘Erase’ Command
Add: F220h DQ=0094h
Wait for INT register
low to high transition
Add: F241h DQ=[15]=INT
Read Controller
Status Register
Add: F240h DQ[10]=Error
DQ[10]=0?
YES
Erase completed
* DBS, DFS is for DDP
NOTE :
1) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
1)
NO
Erase Error
: If erase operation results in an error, map out
*
the failing block and replace it with another block.
In order to perform the Internal Erase Routine, the following command sequence is necessary.
The Host selects Flash Core of DDP chip.
The Host sets the block address of the memory location.
The Erase Command initiates the Internal Erase Routine. During the execution of the Routine, the host is
not required to provide further controls or timings. During the Internal erase routine, all commands, except
the Reset command and Erase Suspend Command, written to the device will be ignored.
A reset or power off during an erase operation will cause data corruption at the corresponding location Block.
The Erase Suspend/Erase Resume Commands interrupt and restart a Block Erase operation so that user may perform another urgent operation on the block that is not being designated by Erase Operation.
Erase Suspend During a Block Erase Operation
When Erase Suspend command is written during a Block Erase operation, the device requires a maximum of 500us to suspend erase operation. Erase Suspend Command issue during Block Address latch sequence is prohibited.
After the erase operation has been suspended, the device is ready for the next operation including a load, program, Lock, Unlock, Lock-tight,
Hot Reset, NAND Flash Core Reset, Command Based Reset, or OTP Access.
The subsequent operation can be to any block that was NOT being erased.
A special case arises in Erase Suspend operation pertaining to the OTP. A Reset command is used to exit from the OTP Access mode. If the
Reset-triggered exit from the OTP Access Mode happens after an Erase Suspend Operation, the erase routine could fail. Therefore to exit
from the OTP Access Mode without causing the erase suspend/resume operation to fail, a 'NAND Flash Core Reset' command should be
issued.
For the duration of the Erase Suspend period the following commands are not accepted:
Block Erase/Erase Suspend
Erase Suspend and Erase Resume Operation Flow Chart
FLASH MEMORY
Start
Write 0 to interrupt register
Add: F241h DQ=0000h
Select DataRAM for DDP
Add: F101h DQ=DBS**
Write ‘Erase Suspend
Command’
Add: F220h DQ=00B0h
Wait for INT register
low to high transition for 500us
Add: F241h DQ=[15]=INT
Another Operation
NOTE :
1) ‘
Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
2) If OTP access mode exit happens with Reset operation during Erase Suspend mode, Reset operatin could hurt the erase operation. So if a user wants to exit
from OTP access mode without the erase operation stop, Reset NAND Flash Core command should be used.
When the Erase Resume command is executed, the Block Erase will restart. The Erase Resume operation does not actually resume the
erase, but starts it again from the beginning.
When an Erase Suspend or Erase Resume command is executed, the addresses are in Don't Care state.
One Block of the SLC NAND Flash Array memory is reserved for Partition Information (PI) Block.
The block can be read, programmed and erased using the same operations as any other NAND Flash Array memory block.
Only Load, Erase and Program can be performed. PI Block is not able to cover with internal ECC Engine in OneNAND, so it has to be
accessed under ECC off mode.
PI block is guaranteed to be a valid block up to 1K program/erase cycles.
Entering the PI Block
The PI block is separately accessible from the rest of the NAND Flash Array by using the PI Access command instead of the Flash Block
Address (FBA).
Exiting the PI Block
To exit the PI Access Mode, a Cold-, Warm-, Hot-, or NAND Flash Core Reset operation is performed.
Exiting the PI Block during an Erase Operation
If the Reset-triggered exit from the PI Access Mode happens after during an Erase Suspend Operation, the erase routine could fail. Therefore
to exit from the PI Access Mode without causing the erase operation to fail, a 'NAND Flash Core Reset' command should be issued.
PI Block Page Allocation Information
This is located at the 1st word of sector0 of page0 of main area in the Block.
The allocated word in 1st page is programed with data FC00h initially after shipment, whole block is set as MLC except Block 0.
FLASH MEMORY
1514131211109876543210
LockReserved(1111)Boundary Address (end of SLC area)
PI Lock bits and Boundary Address.
PI Block can be locked only by programming lock bits into [15:14] of the 1st word of sector0, page0 of the main memory area of PI.
The first block is a SLC block. The MLC block will be defined from the next block of the block designated by boundary address programmed
into[9:0] of the 1st word of sector0, page0 of the main memory area of PI.
It is 1st word of sector0 of page0 of main area of PI Block. The Lock bits for PI Block and Boundary address of SLC and MLC are stored. After
shipment, it is initially programmed as data FC00h(Lock bit[15:14]: 11b(binary), Boundary address[9:0]: 000h).
To change PI Block contents (i.e, lock bits and boundary address), Erase/Program sequence should be followed as below.
PI Block Boundary Information setting steps
FLASH MEMORY
Enter PI Block access mode(
Issue PI Block erase(
Issue PI program(
Exit PI Block Access mode & Update new Partition Information.
PI block Access mode exit can be done through a Warm/Cold/Hot/NAND Flash Reset.
However, PI Update can only be done by two methods: PI Update Command and Cold Reset.
The following flow chart shows two methods for updating the PI and exiting PI access mode.
The PI area is a separate part of the NAND Flash Array memory. It is accessed by issuing PI Access command(66h) instead of writing a Flash
Block Address(FBA) in the StartAddress1 register.
After being accessed through the PI Access Command, the contents of PI memory area can be programmed, erased or loaded using the
same operations as a normal program, erase or load operation to the NAND Flash Array memory.
PI Block Access mode entry Flow Chart
Start
FLASH MEMORY
Write ‘DFS*, FBA’ of Flash
Add: F100h DQ=DFS*, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS*
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘PI Access’ Command
Add: F220h DQ=0066h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
PI Block Access mode entry completed
1)
2)
* DBS, DFS is for DDP
NOTE :
1) FBA(NAND Flash Block Address) could be omitted or any address.
2) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
The PI Block Erase Operation erases the entire PI block including Partition Information. PI Block Access mode entry must be done before
issuing Erase operation for PI Block.
Erasing the PI Area
Issue the PI Access Command(Refer to Chapter 3.12.1.1).
Issue an Erase command to erase the PI area.
PI Block Erase Operation Flow Chart (In PI Block Access Mode)
Start
FLASH MEMORY
Write ‘FBA’ of Flash
Add: F100h DQ=FBA
Write 0 to interrupt register
Add: F241h DQ=0000h
Write Erase command
Add: F220h
DQ=0094h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
Read Controller
Status Register
Add: F240h
DQ[10]=1(Error)
NO
PI Erase Complete
1)
2)
YES
PI Erase Error
* DBS, DFS is for DDP
NOTE :
1) FBA(NAND Flash Block Address) must be 0000h.
2) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
The PI Block Program Operation accesses the PI area and programs content from the DataRAM on-chip buffer to the designated page(s) of
the PI.
A memory location in the PI area can be program.
The PI area is programmed using the same sequence as normal program operation after being accessed by the PI Block Access mode entry
command (see section 3.8 for more information).
Programming the PI Area
Issue the PI Access Command(Refer to Chapter 3.12.1.1).
Write data into the DataRAM
- In case of PI Lock(Add: 0200h, DQ=3XXXh
- In case of PI Unlock(Add: 0200h, DQ=FXXX
Write 0000h into Flash Block Address (FBA), that is address of NAND Flash Array address map.
Issue a Program command to program the data from the DataRAM into the PI.
PI Block Program Operation Flow Chart (In PI Block Access Mode)
Star t
, The lower 10 bits[9:0] are boundary address) .
h, The lower 10 bits[9:0] are boundary address).
Write Program command
Add: F220h
DQ=0080h
FLASH MEMORY
Write Data into DataRAM
Add: 0200h DQ= 1 word
Write ‘DFS, FBA’ of Flash
Add: F100h DQ=FBA
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=0000h
Write ‘BSA, BSC’ of DataRAM
Add: F200h DQ=0800h
Write 0 to interrupt register
Add: F241h DQ=0000h
1)
2)
3)
4)
5)
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
Read Controller
Status Register
Add: F240h
DQ[10]=1(Error)
NO
PI Programming completed
* DBS, DFS is for DDP
YES
PI Program Error
Locking the PI
Programming to PI block can be prevented by locking the PI area. Locking the PI area is accomplished by programming 3XXXh to 1st word of
sector0 of main of the page0 memory area in the PI block(XXXh out of 3XXXh is a boundary block address that ends SLC area).
Once Lock bits are programmed as lock status, PI block will be protected from program and erase. Boundary address is alterable before PI
block is locked, but it is not recommended.
At device power-up and PI Update operation, this word is updated internally. If 3XXXh is found(i.e. the status of PI is locked), Program/Erase
operations to PI block result in an error and the device updates the Error Bit of the Controller Status Register as "1"(fail).
NOTE :
1) Only the 1st word of 1st page of PI block (PI block Boundary Information) can be programmed in PI Block.
The rest of the block cannot be programmed.
2) FBA(NAND Flash Block Address) must be 0000h.
3) FPA must be 00h and FSA must be 00.
4) BSA must be 1000 and BSC must be 000.
5) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
Once new partition information is programmed into the PI block, an internal register that is invisible to users must be updated for the changes
in PI to be applied. This internal register which stores partition information(i.e. the last address of SLC area and lock bits) will be automatically
updated through cold reset. However, the internal register can also be updated by issuing Partition Information Update command(05h) after PI
Access mode entry.
Update the PI Area
Issue the PI Access mode(Refer to Chapter 3.12.1.1).
Issue the update PI command.
PI Block Update (In PI Block Access Mode)
Start
FLASH MEMORY
Write ‘DFS, FBA’ of Flash
Add: F100h DQ=DFS, FBA
Write ‘BSA, BSC’ of DataRAM
Add: F200h DQ=0800h
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=0000h
Write Update PI command
Add: F220h
DQ=0005h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
PI updated
1)
2)
4)
3)
* DBS, DFS is for DDP
NOTE :
1) FBA(NAND Flash Block Address) must be 0000h.
2) BSA must be 1000 and BSC must be 000.
3) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
A PI Block Load Operation accesses the PI area and transfers identified content from the PI to the DataRAM on-chip buffer, thus making the
PI contents available to the Host.
The PI area is a separate part of the NAND Flash Array memory. It is accessed by issuing PI Access command(66h).
After being accessed with the PI Access Command, the contents of PI memory area are loaded using the same operations as a normal load
operation to the NAND Flash Array memory (see section 3.6 for more information).
To exit the PI access mode after an PI Block Load Operation, a Cold-, Warm-, Hot-, or NAND Flash Core Reset operation is performed.
PI Block Read Operation Flow Chart (In PI Block Access Mode)
Start
FLASH MEMORY
Write ‘DFS*, FBA’ of Flash
Add:F100h DQ=DFS*, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS*
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘PI Access’ Command
Add: F220h DQ=0066h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=FPA, FSA
Write ‘BSA, BSC’ of DataRAM
Add: F200h DQ=BSA
3)
, BSC
1)
2)
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘Load’ Command
Add: F220h
DQ=0000h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
Host reads data from
DataRAM
PI Reading completed
Do Cold/Warm/Hot
/NAND Flash Core Reset
2)
PI Block Access mode exit
}
PI Exit
* DBS, DFS is for DDP
NOTE :
1) FBA(NAND Flash Block Address) could be omitted or any address.
2) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
One Block of the NAND Flash Array memory is reserved as a One-Time Programmable Block memory area.
Also, 1st Block of NAND Flash Array can be used as OTP.
OTP area and 1st block OTP area must be utilized as a SLC block.
The OTP block can be read, programmed and locked using the same operations as any other NAND Flash Array memory block.
OTP block cannot be erased. Note that Cache program and Finish Cache program cannot be performed on OTP and 1st Block OTP area.
OTP block is fully-guaranteed to be a valid block by an internal ECC engine.
Entering the OTP Block
The OTP block is separately accessible from the rest of the NAND Flash Array by using the OTP Access command instead of the Flash Block
Address (FBA).
Exiting the OTP Block
To exit the OTP Access Mode, a Cold-, Warm-, Hot-, or NAND Flash Core Reset operation is performed.
Exiting the OTP Block during an Erase Operation
If the Reset-triggered exit from the OTP Access Mode happens during an Erase Suspend Operation, the erase
routine could fail. Therefore to exit from the OTP Access Mode without suspending the erase operation, a
'NAND Flash Core Reset' command should be issued.
FLASH MEMORY
The OTP Block Page Assignment
OTP area is one block size (128KB+4KB, 64 Pages) and is divided into two areas. The 50-page User Area is available as an OTP storage
area. The 14-page Manufacturer Area is programmed by the manufacturer prior to shipping the device to the user.
OTP Block Page Allocation Information
AreaPageUse
User0 ~ 49 (50 pages)Designated as user area
Manufacturer50 ~ 63 (14 pages)Used by the device manufacturer
Three Possible OTP Lock Sequence (Refer to Chapter 3.13.3~3.13.5 for more information)
Since OTP Block and 1st Block OTP can be locked only by programming into 1st word of sector4, page49 of the main memory area of OTP,
OTP Block and 1st Block OTP lock sequence is restricted into three following cases.
Note that user should be careful, because locking OTP Block before locking 1st Block OTP will disable locking 1st Block OTP.
1. OTP Block Lock Only :
Once the OTP Block is locked, 1st Block OTP Lock is impossible.
2. 1st Block OTP Lock Only:
Locking 1st Block OTP does not lock the OTP block, but the OTP Block Lock cannot be performed thereafter.
3. OTP Block Lock and 1st Block OTP Lock simultaneously:
This simultaneous operation can be done by programming into 1st word of sector4, page49 of the main memory area of OTP.
An OTP Block Load Operation accesses the OTP area and transfers identified content from the OTP to the DataRAM on-chip buffer,
thus making the OTP contents available to the Host.
The OTP area is a separate part of the NAND Flash Array memory. It is accessed by issuing OTP Access command(65h) instead of
a Flash Block Address (FBA) value in Start Address1 Register.
.
After being accessed with the OTP Access Command, the contents of OTP memory area are loaded using the same operations as a normal
load operation to the NAND Flash Array memory (see section 3.6 for more information).
To exit the OTP access mode after an OTP Block Load Operation, a Cold-, Warm-, Hot-, or NAND Flash Core Reset operation is performed.
OTP Block Read Operation Flow Chart
Start
FLASH MEMORY
Write ‘DFS*, FBA’ of Flash
Add: F100h DQ=DFS*, FBA
Select DataRAM for DDP
Add: F101h DQ=DBS*
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘OTP Access’ Command
Add: F220h DQ=0065h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
Write ‘FPA, FSA’ of Flash
Add: F107h DQ=FPA, FSA
Write ‘BSA, BSC’ of DataRAM
Add: F200h DQ=0800h
1)
2)
3)
Write 0 to interrupt register
Add: F241h DQ=0000h
Write ‘Load’ Command
Add: F220h
DQ=0000h
Wait for INT register
low to high transition
Add: F241h DQ[15]=INT
Host reads data from
DataRAM
OTP Reading completed
Do Cold/Warm/Hot
/NAND Flash Core Reset
OTP Exit
2)
* DBS, DFS is for DDP
NOTE :
1) FBA(NAND Flash Block Address) could be omitted or any address
2) ‘Write 0 to interrupt register’ step may be ignored when using INT auto mode. Refer to chapter 2.8.18.1
An OTP Block Program Operation accesses the OTP area and programs content from the DataRAM on-chip buffer to the designated page(s)
of the OTP.
A memory location in the OTP area can be programmed only one time (no erase operation permitted).
The OTP area is programmed using the same sequence as normal program operation after being accessed by the command (see section 3.9
for more information).
Programming the OTP Area
Issue the OTP Access Command
Write data into the DataRAM (data can be input at anytime between the "Start" and "Write Program commands".
Issue a Flash Block Address (FBA) which is 0000h of NAND Flash Array address map.
Issue a Program command to program the data from the DataRAM into the OTP
When the OTP Block programming is complete,
do a Cold-, Warm-, Hot-, NAND Flash Core Reset to exit the OTP Access mode.
Even though the OTP area can only be programmed once without erase capability, it can be locked when the device starts up to prevent any
changes from being made.
Unlike the main area of the NAND Flash Array memory, once the OTP block is locked, it cannot be unlocked, for locking bit for both
blocks lies in the same word of OTP area.
Therefore, if OTP Block is locked prior to 1st Block OTP lock, 1st Block OTP cannot be locked.
Locking the OTP
Programming to the OTP area can be prevented by locking the OTP area. Locking the OTP area is accomplished by
programming XXFCh to the 1st word of sector4 of main of the page49 memory area in the OTP block.
FLASH MEMORY
At device power-up, this word location is checked and if XXFCh is found, the OTP
the OTP is locked. When the Program Operation finds that the status of the OTP is locked, the device updates the Error Bit of the Controller
Status Register as "1" (fail).
OTP Lock Operation Steps
Issue the OTP Access Command
Fill data to be programmed into DataRAM (data can be input at anytime between the "Start" and "Write Program" commands)
Write ‘XXFCh’ data into the 1st word of sector4 of main of the page49 memory area of the DataRAM.
Issue a Flash Block Address (FBA) which is 0000h of NAND Flash Array address map.
Issue a Program command to program the data from the DataRAM into the OTP
When the OTP lock is complete, do a Cold Reset to exit the OTP Access mode and update OTP lock bit[6].
OTP lock bit[6] of the Controller Status Register will be set to "1" and the OTP will be locked.
bit of the Controller Status Register is set to "1", indicating
1st Block can be used as OTP, for secured booting operation.
1st Block OTP can be accessed just as any other NAND Flash Array Blocks before it is locked, however, once 1st Block is locked to be OTP,
1st Block OTP cannot be erased or programmed.
Note that once OTP Block is locked, 1st Block OTP lock is impossible also OTP Block cannot be locked freely after locking 1st Block OTP.
OTP Block and 1st Block OTP should be locked at the same time.
Locking the 1st Block OTP
Programming to the 1st Block OTP area can be prevented by locking the OTP area. Locking the OTP area is accomplished by
programming XXF3h to the 1st word of sector4 of main of the page49 memory area in the OTP block.
FLASH MEMORY
At device power-up, this word location is checked and if XXF3h is found, the OTP
the 1st Block is locked. When the Program Operation finds that the status of the 1st Block is locked, the device updates the Error Bit of the
Controller Status Register as "1" (fail).
1st Block OTP Lock Operation Steps
Issue the OTP Access Command
Fill data to be programmed into DataRAM (data can be input at anytime between the "Start" and "Write Program" commands)
Write ‘XXF3h’ data into the 1st word of sector4 of main of the page49 memory area of the DataRAM.
Issue a Flash Block Address (FBA) which is 0000h of NAND Flash Array address map.
Issue a Program command to program the data from the DataRAM into the OTP
When the 1st Block OTP lock is complete, do a Cold Reset to exit the OTP Access mode
and update 1st Block OTP lock bit[5].
1st Block OTP lock bit[5] of the Controller Status Register will be set to "1" and the 1st Block will be locked.
Even though the OTP area can only be programmed once without erase capability, it can be locked when the device starts up to prevent any
changes from being made.
Unlike other remaining main area of the NAND Flash Array memory, once the 1st block OTP is locked, it cannot be unlocked.
Once 1st block is set as OTP, NAND Flash Write Protection status register(F24Eh) indicates only ‘Lock’ state although ‘Lock tight’ or ‘Unlock’
command is issued.
bit of the Controller Status Register is set to "1", indicating