Files
STM32F4-Base/GD5F2GQ5UExxG.md
2026-07-17 15:16:29 +08:00

105 KiB
Raw Blame History

GD5F2GQ5xExxG

DATASHEET

2G-bit 2K+128BPageSize with E Version

Contents

1 FEATURE ....

2 GENERAL DESCRIPTION ......

2.1 PRODUCT LIST .....

2.2 CONNECTION DIAGRAM. . 8

2.3 PIN DESCRIPTION..... 9

2.4 BLOCK DIAGRAM ......

3 MEMORY MAPPING... ..10

4 ARRAY ORGANIZATION....... 11

5 DEVICE OPERATION.... .12

5.1 SPI MODES....... ..... 12

5.2 HOLD MODE...... ..... 13

5.3 WRITE PROTECTION.... .. 13

5.4 POWER OFF TIMING ... . 14

6 COMMANDS DESCRIPTION ... .15

7 WRITE OPERATIONS .....

7.1 WRITE ENABLE (WREN) (06H) ..... . 17

7.2 WRITE DISABLE (WRDI) (04H)... . 17

8 READ OPERATIONS..... ..18

8.1 PAGE READ ....... ..... 18

8.2 PAGE READ TO CACHE (13H) . . 19

8.3 CACHE READ FUNCTION (31H/3FH).. . 20

8.4 READ FROM CACHE (03H OR 0BH)......

8.5 READ FROM CACHE X2 (3BH) .... .... 26

8.6 READ FROM CACHE X4 (6BH) ...... . 27

8.7 READ FROM CACHE DUAL IO (BBH) . .. 28

8.8 READ FROM CACHE QUAD IO (EBH).....

8.9 READ FROM CACHE QUAD I/O DTR (EEH) . .. 30

8.10 READ ID (9FH)...... .... 31

8.11 READ UID . 32

8.12 READ PARAMETER PAGE.....

9 PROGRAM OPERATIONS.... ..38

9.1 PAGE PROGRAM ........ .... 38
9.2 PROGRAM LOAD (PL) (02H)... .. 39
9.3 PROGRAM LOAD X4 (PL X4) (32H) ......
9.4 PROGRAM EXECUTE (PE) (10H) . . 41
9.5 PROGRAM EXECUTE BACKGROUND (10H + ADDRESS + 15H).. ..... 42
9.6 INTERNAL DATA MOVE .. . 44
9.7 PROGRAM LOAD RANDOM DATA (84H) ..... ...... 45
9.8 PROGRAM LOAD RANDOM DATA X4 (C4H/34H)...... ...... 46

10 ERASE OPERATIONS .. ..47

10.1 BLOCK ERASE (D8H) . . 47

11 RESET OPERATIONS.....

11.1 SOFT RESET (FFH) . .. 48
11.2 ENABLE POWER ON RESET (66H) AND POWER ON RESET (99H).. ..... 49

12 FEATURE OPERATIONS...... .50

12.1 GET FEATURES (0FH) AND SET FEATURES (1FH) . . 50
12.2 STATUS REGISTER AND DRIVER REGISTER.. . 53
12.3 OTP REGION....... .... 54
12.4 ASSISTANT BAD BLOCK MANAGEMENT ... .. 55
12.5 BLOCK PROTECTION.. .. 56
12.6 INTERNAL ECC.. . 57

13 POWER ON TIMING..... .59

14 ABSOLUTE MAXIMUM RATINGS ....

15 CAPACITANCE MEASUREMENT CONDITIONS..... ....61

16 DC CHARACTERISTIC .... .....62

17 AC CHARACTERISTICS ....... .....63

18 PERFORMANCE AND TIMING ....

19 ORDERING INFORMATION... ...66

20 PACKAGE INFORMATION..... ....67
REVISION HISTORY .... ....70

1 FEATURE

◆ 2Gb SLC NAND Flash

◆ Page Size

- Internal ECC On (ECC_EN=1, default):

Page Size2048-Byte+64-Byte

- Internal ECC Off (ECC_EN=0):

Page Size2048-Byte+128-Byte

◆ Standard, Dual, Quad SPI,DTR

- Standard SPI: SCLK, CS#, SI, SO, WP#, HOLD#

- Dual SPI: SCLK, CS#, SIO0, SIO1, WP#, HOLD#

- Quad SPI: SCLK, CS#, SIO0, SIO1, SIO2, SIO3

- DTR(Double Transfer Rate) Read : SCLK, CS#, SIO0, SIO1, SIO2, SIO3, DQS

◆ High Speed Clock Frequency

- 3.3V: 104MHz for fast read with 30pF load

- 1.8V: 80MHz for fast read with 30pF load

- 3.3V: Quad I/O Data transfer up to 416Mbits/s

- 1.8V: Quad I/O Data transfer up to 320Mbits/s

◆ Software/Hardware Write Protection

- Write protect all/portion of memory via software

- Register protection with WP# Pin

◆ Single Power Supply Voltage

- Full voltage range for 1.8V: 1.7V ~ 2.0V

- Full voltage range for 3.3V: 2.7V ~ 3.6V

◆ Advanced security Features

- 8K-Byte OTP Region

◆ Program/Erase/Read Speed

- Page Program time: 300us typical

- Block Erase time: 3ms typical

- Page read time: 60us maximum

◆ Low Power Consumption

- 30mA maximum active current

- 50uA maximum standby current

◆ Enhanced access performance

- 2Kbyte cache for fast random read

- Cache read and cache program

◆ Advanced Feature for NAND

- Factory good block0

◆ Reliability- Factory good block0

- P/E cycles with ECC: 100K

- Data retention: 10 Years

◆ Internal ECC

- 4bits /528Byte

Note: (1) ECC is on default, which can be disable by user.

2 GENERAL DESCRIPTION

SPI (Serial Peripheral Interface) NAND Flash provides an ultra-cost effective while high density non-volatile memory storage solution for embedded systems, based on an industry-standard NAND Flash memory core. It is an attractive alternative to SPI-NOR and standard parallel NAND Flash, with advanced features.

• Total pin count is 8, including VCC and GND
• Density 2Gb
• Superior write performance and cost per bit over SPI-NOR
• Significant low cost than parallel NAND

This low-pin-count NAND Flash memory follows the industry-standard serial peripheral interface, and always remains the same pin out from one density to another. The command sets resemble common SPI-NOR command sets, modified to handle NAND specific functions and added new features. GigaDevice SPI NAND is an easy-to-integrate NAND Flash memory, with specified designed features to ease host management:

• User-selectable internal ECC. ECC parity is generated internally during a page program operation. When a page is read to the cache register, the ECC parity is detected and corrects the errors when necessary. The device outputs corrected data and returns an ECC error status.
• Internal data move or copy back with internal ECC. The device can be easily refreshed and manage garbage collection task, without need of shift in and out of data. This command string can only be used on blocks with the same parity attribute.
• Power on Read with internal ECC. The device will automatically read first page of fist block to cache after power on, then host can directly read data from cache for easy boot. Also the data is promised correct by internal ECC when ECC enabled.

It is programmed and read in page-based operations, and erased in block-based operations. Data is transferred to or from the NAND Flash memory array, page by page, to a data register and a cache register. The cache register is closest to I/O control circuits and acts as a data buffer for the I/O data; the data register is closest to the memory array and acts as a data buffer for the NAND Flash memory array operation. The cache register functions as the buffer memory to enable page and random data READ/WRITE and copy back operations. These devices also use a SPI status register that reports the status of device operation.

2.1 Product List

Please contact GigaDevice regional sales for the latest product selection and available form factors

Product NumberDensityVoltagePackage TypeTemperature
GD5F2GQ5REYIG2Gbit1.7V to 2.0VWSON8(8*6mm)-40°C to 85°C
GD5F2GQ5REBIG2Gbit1.7V to 2.0VTFBGA24(5*5 Ball Array)-40°C to 85°C
GD5F2GQ5REZIG2Gbit1.7V to 2.0VTFBGA24(4*6 Ball Array)-40°C to 85°C
GD5F2GQ5UEYIG2Gbit2.7V to 3.6VWSON8(8*6mm)-40°C to 85°C
GD5F2GQ5UEBIG2Gbit2.7V to 3.6VTFBGA24(5*5 Ball Array)-40°C to 85°C
GD5F2GQ5UEZIG2Gbit2.7V to 3.6VTFBGA24(4*6 Ball Array)-40°C to 85°C
GD5F2GQ5REYFG*2Gbit1.7V to 2.0VWSON8(8*6mm)-40°C to 85°C
GD5F2GQ5REBFG*2Gbit1.7V to 2.0VTFBGA24(5*5 Ball Array)-40°C to 85°C
GD5F2GQ5REZFG*2Gbit1.7V to 2.0VTFBGA24(4*6 Ball Array)-40°C to 85°C
GD5F2GQ5UEYFG*2Gbit2.7V to 3.6VWSON8(8*6mm)-40°C to 85°C
GD5F2GQ5UEBFG*2Gbit2.7V to 3.6VTFBGA24(5*5 Ball Array)-40°C to 85°C
GD5F2GQ5UEZFG*2Gbit2.7V to 3.6VTFBGA24(4*6 Ball Array)-40°C to 85°C
GD5F2GQ5REYJG2Gbit1.7V to 2.0VWSON8(8*6mm)-40°C to 105°C
GD5F2GQ5REBJG2Gbit1.7V to 2.0VTFBGA24(5*5 Ball Array)-40°C to 105°C
GD5F2GQ5REZJG2Gbit1.7V to 2.0VTFBGA24(4*6 Ball Array)-40°C to 105°C
GD5F2GQ5UEYJG2Gbit2.7V to 3.6VWSON8(8*6mm)-40°C to 105°C
GD5F2GQ5UEBJG2Gbit2.7V to 3.6VTFBGA24(5*5 Ball Array)-40°C to 105°C
GD5F2GQ5UEZJG2Gbit2.7V to 3.6VTFBGA24(4*6 Ball Array)-40°C to 105°C

Note: (1) Industrial+: F grade has implemented additional test flows to ensure higher product quality than I grade.

2.2 CONNECTION DIAGRAM

Figure 2-1.Connect Diagram

text_image

Top View A1 A2 A3 A4 NC NC NC NC B1 B2 B3 B4 NC SCLK VSS VCC C1 C2 C3 C4 NC CS# DQS WP#(SIO2) D1 D2 D3 D4 NC SO(SIO1) SI(SIO0) HOLD# (SIO3) E1 E2 E3 E4 NC NC NC NC F1 F2 F3 F4 NC NC NC NC

24-BALL TFBGA (4x6 ball array)

2.3 PIN DESCRIPTION

Pin NameI/ODescription
CS#IChip Select input, active low
SO/SIO1I/OSerial Data Output / Serial Data Input Output 1
WP#/SIO2I/OWrite Protect, active low / Serial Data Input Output 2
VSSGroundGround
SI/SIO0I/OSerial Data Input / Serial Data Input Output 0
SCLKISerial Clock input
HOLD#/SIO3I/OHold Input/Serial Data Input Output 3
DQS (only for BGA24)OData Strobe Signal Output
VCCSupplyPower Supply
NCNot Connect, Not internal connection; can be driven or floated.

Note

  1. CS# must be driven high if chip is not selected. Please dont leave CS# floating any time after power is on.
  2. If the DQS Function is not used, this pin must be floating.

2.4 BLOCK DIAGRAM

Figure 2-2.Block Diagram

flowchart
graph TD
  A["DQS"] --> B["Serial NAND controller"]
  C["SCLK"] --> B
  D["SI/SIO0"] --> B
  E["SO/SIO1"] --> B
  F["CS#"] --> B
  G["HOLD#/SIO3"] --> B
  H["WP#/SIO2"] --> B
  B --> I["Cache memory"]
  I --> J["NAND memory core"]
  J --> K["Status register"]
  L["Vcc"] --> M["Output"]
  N["Vss"] --> M

3 MEMORY MAPPING

For 2G

flowchart
graph LR
  subgraph Blocks
  A["Blocks\nRA<16:6>"] --> B["0"]
  A --> C["1"]
  A --> D["2"]
  D --> E["2047"]
  end

  subgraph Pages
  F["Pages\nRA<5:0>"] --> G["0"]
  F --> H["1"]
  H --> I["63"]
  end

  subgraph Bytes
  J["Bytes\nCA<11:0>"] --> K["0"]
  J --> L["1"]
  J --> M["2"]
  M --> N["2175"]
  end

Note:

  1. CA: Column Address. The 12-bit address is capable of addressing from 0 to 4095 bytes; however, only bytes 0 through 2175 are valid. Bytes 2176 through 4095 of each page are “out of bounds,” do not exist in the device, and cannot be addressed.
  2. RA: Row Address. RA<5:0>selects a page inside a block, and RA<16:6>selects a block.

4 ARRAY ORGANIZATION

Table 3-1.Array Organization

Each device hasEach block hasEach page has
2Gb
256M+16M128K+8K2K+128bytes
2048 x 6464-pages
2048--blocks

Figure 3-1. Array Organization

text_image

Cache Register 2048 128 Data Register 2048 128 Per device: 2Gb: 2048 blocks 1 page = (2K + 128) bytes 1 block = (2K + 128) bytes x 64 pages = (128K + 8K) bytes 1 device = (128K + 8K) bytes x 2048 blocks = 2Gb

Internal ECC = OFF

text_image

Cache Register 2048 64 Data Register 2048 64 Per device: 2Gb: 2048 blocks 1 block SO SI 1 page = (2K + 64) bytes 1 block = (2K + 64) bytes x 64 pages = (128K + 4K) bytes 1 device = (128K + 4K) bytes x 2048 blocks = 2Gb

Internal ECC = ON

Note:

1.When Internal ECC is enableduser can program the first 64 bytes of the entire 128 bytes spare area and the last 64 bytes of the whole spare area cannot be programeduser can read the entire 128 Byte spare area.
2.When Internal ECC is disableduser can read and program the entire 128 bytes spare area.

5 DEVICE OPERATION

5.1 SPI Modes

SPI NAND supports two SPI modes:

• CPOL = 0, CPHA = 0 (Mode 0)
• CPOL = 1, CPHA = 1 (Mode 3)

Input data is latched on the rising edge of SCLK and data shifts out on the falling edge of SCLK for both modes. All timing diagrams shown in this data sheet are mode 0. See Figure5-1 for more details.

Figure 5-1. SPI Modes Timing Diagram

Note: While CS# is HIGH, keep SCLK at VCC or GND (determined by mode 0 or mode 3). Do not toggle SCLK until CS# is driven LOW.
We recommend that the user pull CS# to high when user dont use SPI flash, otherwise the flash is always in the read state, which is not good for flash.
When CS# is high and SCLK at VCC or GND state, the device is in idle state.

Standard SPI

SPI NAND Flash features a standard serial peripheral interface on 4 signals bus: Serial Clock (SCLK), Chip Select (CS#), Serial Data Input (SI) and Serial Data Output (SO).

Dual SPI

SPI NAND Flash supports Dual SPI operation when using the x2 and dual IO commands. These commands allow data to be transferred to or from the device at two times the rate of the standard SPI. When using the Dual SPI command the SI and SO pins become bidirectional I/O pins: SIO0 and SIO1.

Quad SPI

SPI NAND Flash supports Quad SPI operation when using the x4 and Quad IO commands. These commands allow data to be transferred to or from the device at four times the rate of the standard SPI. When using the Quad SPI command the SI and SO pins become bidirectional I/O pins: SIO0 and SIO1, and WP# and HOLD# pins become SIO2 and SIO3.

DTR Quad SPI

The device supports DTR Quad SPI operation when using the “DTR Quad I/O Fast Read” command.

These command allow data to be transferred to or from the device at eight times the rate of the standard SPI, and data output will be latched on both rising and falling edges of the serial clock. When using the DTR Quad SPI command the SI and SO pins become bidirectional I/O pins: IO0 and IO1, and WP# and HOLD# pins become IO2 and IO3. DTR Quad SPI commands require the Quad Enable bit (QE) in Status Register to be enable. The device has the DQS pin (Only for BGA24 Package). A data strobe (DQS) is transmitted externally, along with data, for use in data capture at the receiver

5.2 HOLD Mode

The HOLD# function is only available when QE=0. If QE=1, the HOLD# functions is disabled, the pin acts as dedicated data I/O pin.

The HOLD# signal goes low to stop any serial communications with the device, but doesnt stop the operation of reading, programming, or erasing in progress.

The operation of HOLD, need CS# keep low, and starts on falling edge of the HOLD# signal, with SCLK signal being low (if SCLK is not being low, HOLD operation will not start until SCLK being low). The HOLD condition ends on rising edge of HOLD# signal with SCLK being low (If SCLK is not being low, HOLD operation will not end until SCLK being low).

The SO is high impedance, both SI and SCLK dont care during the HOLD operation, if CS# drives high during HOLD operation, it will reset the internal logic of the device. To re-start communication with chip, the HOLD# must be at high and then CS# must be at low.

Figure5-2. Hold Condition

text_image

CS# SCLK HOLD# HOLD→ HOLD→

5.3 Write Protection

SPI NAND provides Hardware Protection Mode besides the Software Mode. Write Protect (WP#) prevents the block lock bits (BP0, BP1, BP2 and INV, CMP) from being over written. If the BRWD bit is set to 1 and WP# is LOW, the block protect bits cannot be altered.

To enable the Write Protection, the Quad Enable bit (QE) of feature (B0[0]) must be set to 0.

5.4 Power Off Timing

Please do not turn off the power before Write/Erase operation is completed. Avoid using the device when the battery is low. Power shortage and/or power failure before Write/Erase operation is complete will cause loss of data and/or damage to data.

6 COMMANDS DESCRIPTION

Table 6-1. Commands Set

Command NameByte1Byte2Byte3Byte4Byte5Byte6Byte 7
Write Enable06H
Write Disable04H
Get Features0FHA7-A0D7-D0 $Wrap^{(7)}$
Set Feature1FHA7-A0D7-D0
Page Read (to cache)13HA23-A16A15-A8A7-A0
Next Page Read (to cache)31H
Next Page Cache Read Random13HA23-A16A15-A8A7-A031H
Last Page Read (to cache)3FH
Read From Cache03H/0BHA15-A8 $A7-A0^{(2)}$ $Dummy^{(1)}$ D7-D0
Read From Cache x 23BHA15-A8 $A7-A0^{(2)}$ $Dummy^{(1)}$ D7-D0
Read From Cache x 46BHA15-A8 $A7-A0^{(2)}$ $Dummy^{(1)}$ D7-D0
Read From Cache Dual IOBBHA15-A8 $A7-A0^{(2)}$ $Dummyx2^{(1)}$ D7-D0
Read From Cache Quad IOEBHA15-A8 $A7-A0^{(2)}$ $Dummyx4^{(1)}$ D7-D0
Read From Cache Quad I/O DTREEHA31-A24A23-A16A15-A8 $A7-A0^{(2)}$ Dummy $x8^{(1)}$ D7-D0
$Read ID^{(4)}$ 9FHDummyMIDDID
Read parameter page13H00H00H04H
Read UID13H00H00H06H
Program Load02HA15-A8 $A7-A0^{(3)}$ D7-D0Next byte
Program Load x432HA15-A8 $A7-A0^{(3)}$ D7-D0Next byte
Program Execute10HA23-A16A15-A8A7-A0
Program Execute Background10HA23-A16A15-A8A7-A015H
Program Load Random Data84HA15-A8 $A7-A0^{(3)}$ D7-D0Next byte
Program Load Random Data x4C4H/34HA15-A8 $A7-A0^{(3)}$ D7-D0Next byte
Block Erase(128K)D8HA23-A16A15-A8A7-A0
$Reset^{(5)}$ FFH
Enable Power on Reset66h
$Power on Reset^{(6)}$ 99h

Note:

  1. The dummy has 8 clock.
    03H/0BH/3BH/6BH has 1 byte dummy. BBH has 2 bytes dummy.
    EBH has 4 bytes dummy. EEH has 8 bytes dummy.

  2. The A15-A0 (03H/0BH/3BH/6BH) has 16 clock, include 4 clock dummy.

The A15-A0 (BBH) has 8 clock, include 2 clock dummy.

The A15-A0 (EBH) has 4 clock, include 1 clock dummy.

The A31-A0 (EEH) has 4 clock, include 2.5 clock dummy.

  1. The A15-A0 has 16 clock, include 4 clock dummy.
  2. MID is Manufacture ID (C8h for GigaDevice), DID is Device ID.
  3. Reset command:

• Reset will reset PAGE READ/PROGRAM/ERASE operation.
• Reset will reset status register bits P_FAIL/E_FAIL/WEL/OIP/CBSY/ECCS/ECCSE.
6. Power on reset:

Retrieve status register and data in cache to power on status.

  1. The output would be updated by real-time, until CS# is driven high.

7 WRITE OPERATIONS

7.1 Write Enable (WREN) (06H)

The Write Enable (WREN) command is for setting the Write Enable Latch (WEL) bit. The Write Enable Latch (WEL) bit must be set prior to following operations that change the contents of the memory array:

• Page program
• OTP program/OTP protection
• Block erase

The WEL bit can be cleared after a reset command.

Figure 7-1.Write Enable Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 SCLK Command SI 06H High-Z SO

7.2 Write Disable (WRDI) (04H)

The Write Disable command is for resetting the Write Enable Latch (WEL) bit. The WEL bit is reset by following condition:

• Page program
• OTP program/OTP protection
• Block erase

Figure 7-2.Write Disable Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 SCLK Command SI 04H High-Z SO

8 READ OPERATIONS

8.1 Page Read

The PAGE READ (13H) command transfers the data from the NAND Flash array to the cache register. The command sequence is as follows:

• 13H (PAGE READ to cache)
• 0FH (GET FEATURES command to read the status)
• 03H or 0BH (Read from cache)/3BH (Read from cache x2)/6BH (Read from cache x4)/BBH/EBH/EEH (Read from cache DTR x4)

The PAGE READ command requires a 24-bit address. After the block/page addresses are registered, the device starts the transfer from the main array to the cache register, and is busy for tRD time. During this time, the GET FEATURE (0FH) command can be issued to monitor the status. Followed the page read operation, the RANDOM DATA READ (03H/0BH/3BH/6BH/EEH) command must be issued in order to read out the data from cache. The output data starts at the initial address specified in the command, once it reaches the ending boundary of whole page section, the output will wrap around from the beginning boundary until CS# is pulled high to terminate this operation. Refer waveforms to view the entire READ operation.

Note:(1) The command 6BH (Read from cache x4)/EBH (Read from cache Quad IO)/EEH (Read from cache Quad IO DTR) is only available with the QE enable.
(2) When user read to the end of 64-Byte spare area, it wont wrap around from the beginning boundary and an additional 64Byte ECC code will be read. (Internal ECC enabled)

8.2 Page Read to Cache (13H)

The command page read to cache is read the data from flash array to cache register.

Figure 8-1.Page Read to cache Timing Diagram

8.3 Cache Read Function (31H/3FH)

A “Cache Read” function has been implemented in SPI series to improve the overall read throughput. It is possible to transfer the data from array to the Data Register simultaneously while a Read Data command is being performed to read out data from the Cache Register.

When multiple pages of data is to be read out sequentially, the host should issue a “Page Read to Cache (13h)” command followed by a Page Address which specifies the starting page of the data(1). Once the command is accepted, the host should use “Get Feature (0Fh)” to check the OIP bit value to determine if the internal operation has completed or not.

Prior to issuing a Read Data command (i.e. 03h/0Bh/3Bh/6Bh/BBh/EBh) to read out the data in the Cache Register, the host can issue a “Next Page Cache Read (31h)” command to initiate the Cache Read operation. There is not necessary to provide any Page Address since the device will automatically increment the Page Address specified earlier by “Page Read to Cache (13h)” instruction. After the “Next Page Cache Read” (31h) command issued, the device starts to transfer data from data register to cache register for tCBSYR. And CBSY bit (through GET FEATURE command to check this status bit) goes to 1 from 0.

While the device is transferring the next page array data to the Data Register, the host can now use Read From Cache command to shift out the current page data inside the Cache Register. Once CBSY bit becomes 0, the host can issue a Read Data command to shift out the Cache Register data, then issue “Next Page Cache Read (31h)” again to read the next page in the array.

If the current page address is the last page of a block or the last page of the data being read out, the host should issue “Last Page Cache Read (3Fh)” instead of “Next Page Cache Read (31h)”, and proceed with the last Read from cache command. If the data being read out is more than one block, another “Page Read to Cache (13h)” command is needed to specify the first page of the next block and initiate the “Cache Read” operation again in the next block.

Table 8-1.Cache Read instruction description

InstructionCommand CodeDescription
Next Page Cache Read31hIssue prior to current page “Read From Cache” and read next page data into Data Register.
Next Page Cache Read Random13h+addr+31hIssue prior to current page “Read From Cache” and read special page data into Data Register.
Last Page Cache Read3FhIssue prior to last page “Read From Cache” at the end of a block or the end of the data being read.

Notes:

  1. Upon powered up, SPI NAND will automatically load Block-0/Page-0 data into the Cache Register. If this is the starting page of the data that is to be read out, it is not necessary to issue a “Page Read to Cache (13h)” command to initiate the “Cache Read” operation.
  2. Before issuing 31h/3Fh, CBSY bit must be checked to make sure CBSY=0, device is not performing any internal operations.

The command sequence is as follows:

• 13H (PAGE READ to cache)
• 0FH (GET FEATURES command to read the status until OIP status bit is changed from 1 to 0)
• 31H (NEXT PAGE CACHE READ command to transfer data from data register to cache register and kick off the next page transfer from array to data register)
• 0FH (GET FEATURES command to read the status until CBSY=0)
• 03H or 0BH (Read from cache)/3BH (Read from cache x2)/6BH (Read from cache x4)/BBH/EBH/EEH (Read from cache DTR x4)
• 3FH (LAST PAGE CACHE READ command to end the read page cache sequence and copy a last page from the data register to cache register)
• 0FH (GET FEATURES command to read the status until CBSY=0)
• 03H or 0BH (Read from cache)/3BH (Read from cache x2)/6BH (Read from cache x4)/BBH/EBH/EEH (Read from cache DTR x4)

Figure 8-2.Cache Read operation flow chart

flowchart
graph TD
  Start["Start Cache Read"] --> PageRead["Page Read\n(Page N)"]
  PageRead --> CheckIOIP{"OIP=0?"}
  CheckIOIP -->|N| NextPageRead["Next Page Read\n(Page n+1)"]
  CheckIOIP -->|Y| NextPageRead
  NextPageRead --> CheckCBSY{"CBSY=0?"}
  CheckCBSY -->|N| NextPageRead
  CheckCBSY -->|Y| ReadData["Read Data\n(Page N)"]
  ReadData --> N+1["N=N+1"]
  N1["N+1"] --> CheckEOB{"N=EOB or EOD?"}
  CheckEOB -->|N| NextPageRead
  CheckEOB -->|Y| ReadData
  ReadData --> Done["Done"]
  NextPageRead --> CheckCBSY{"CBSY=0?"}
  CheckCBSY -->|N| LastPageRead["Last Page Read\n(Page M)"]
  LastPageRead --> CheckCBSY
  CheckCBSY -->|Y| ReadData
  ReadData --> Done
  CheckCBSY -->|N| LastPageRead
  CheckCBSY -->|Y| ReadData

Figure 8-3.Page Read to Cache Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 SCLK Command SI 31H SO High-Z CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SLK tCS Get Feature 1 byte address SI 0FH 7 6 5 4 3 2 1 0 SO High-Z MSB CS# 16 17 18 19 20 21 22 23 24 SCLK SI Data byte SO 7 6 5 4 3 2 1 0 7 MSB

Figure 8-4.Page Read to Cache Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 8 9 10 SCLK Command 24-bit address SI 13H 23 22 21 3 2 1 0 31H SO High-Z CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SLK tCS Get Feature 1 byte address SI 0FH 7 6 5 4 3 2 1 0 SO High-Z MSB CS# 16 17 18 19 20 21 22 23 24 SCLK SI Data byte SO 7 6 5 4 3 2 1 0 7 MSB

Figure 8-5.Page Read to Cache Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 SCLK Command SI 3FH SO High-Z CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SLK tCS Get Feature 1 byte address SI 0FH 7 6 5 4 3 2 1 0 SO High-Z MSB CS# 16 17 18 19 20 21 22 23 24 SCLK SI Data byte SO 7 6 5 4 3 2 1 0 7 MSB

Figure 8-6.Page Read to Cache Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 8 9 10 SCLK Page Read 24-bit address tRD Cache Read 0 1 2 3 4 5 6 7 SI 13H MSB 3 2 1 0 SO High-Z CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SCLK tCBSYR Read From Cache Dummy<3:0> A11-A0 Dummy byte Data byte 0 SI 03H 0 0 0 0 11 10 SO High-Z MSB CS# 0 1 2 3 4 5 6 7 SCLK 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SI 31H tCBSYR Read From Cache Dummy<3:0> A11-A0 Dummy byte Data byte 0 SO High-Z CS# 32 33 34 35 36 37 38 39 SCLK Data byte 0 SI 3FH Last Page Read tCBSYR Read From Cache 03H SO 7 6 5 4 3 2 1 0 MSB CS# 8 9 10 11 12 13 14 SCLK Dummy<3:0> A11-A0 Dummy byte Data byte 0 Data byte 1 Data byte N SI 0 0 0 0 11 10 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5

Note

  1. Command 03h/0Bh/3Bh/6Bh/BBh/EBh is available to read out the data in the Cache Register.
  2. For high speed performance, we recommend to use EBh to read out the data in the Cache Register. (Please refer to 8.8 Read From Cache Quad IO)
  3. We recommend to use GET FEATURES command (0Fh) to read the status until CBSY=0.

8.4 Read From Cache (03H or 0BH)

The command sequence is shown below.

Figure 8-7.Read From Cache Timing Diagram

text_image

CS# SCLK Command Dummy<3:0> A11-A0 SI 03H or 0BH 0 0 0 0 11 10 3 2 1 0 SO High-Z CS# SCLK Dummy byte SI 7 6 5 4 3 2 1 0 Data byte 0 SO 7 6 5 4 3 2 1 0 Data byte 1 MSB MSB

8.5 Read From Cache x2 (3BH)

The command sequence is shown below.

Figure 8-8.Read From Cache x2 Timing Diagram

text_image

CS# SCLK Command Dummy<3:0> A11-A0 SI/SIO0 3BH 0 0 0 0 11 10 3 2 1 0 SO/SIO1 High-Z CS# SCLK Dummy byte SI/SIO0 7 6 5 4 3 2 1 0 6 4 2 0 6 4 2 0 6 4 2 SO/SIO1 Data byte 0 Data byte 1 MSB MSB 7 5 3 1 7 5 3 1 7 5 3

8.6 Read From Cache x4 (6BH)

The Quad Enable bit (QE) of feature (B0[0]) must be set to enable the read from cache x4 command. The command sequence is shown below.

Figure 8-9.Read From Cache x4 Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 22 23 SCLK Command Dummy<3:0> A11-A0 SI(SIO0) 6BH 0 0 0 0 11 10 3 2 1 0 SO(SIO1) High-Z WP#(SIO2) High-Z HOLD#(SIO3) High-Z CS# 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 SCLK Dummy byte SI(SIO0) 7 6 5 4 3 2 1 0 4 0 4 0 4 0 4 0 4 SO(SIO1) 5 1 5 1 5 1 5 1 5 WP#(SIO2) 6 2 6 2 6 2 6 2 6 HOLD#(SIO3) 7 3 7 3 7 3 7 3 7 Byte0 Byte1 Byte2 Byte3

8.7 Read From Cache Dual IO (BBH)

The Read from Cache Dual I/O command (BBH) is similar to the Read form Cache x2 command (3BH) but with the capability to input the 4 Dummy bits, followed by a 12-bit column address for the starting byte address and dummy bytes by SIO0 and SIO1, each bit being latched in during the rising edge of SCLK, then the cache contents are shifted out 2-bit per clock cycle from SIO0 and SIO1. The first address byte can be at any location. The address increments automatically to the next higher address after each byte of data shifted out. The command sequence is shown below.

Figure 8-10.Read From Cache Dual IO Timing Diagram

text_image

CS# SCLK Command Dummy <3:0> A11-A0 BBH Dummy SI(SIO0) SO(SIO1) CS# SCLK SI(SIO0) SO(SIO1) Data byte 0 Data byte 1 Data byte 2 Data byte 3 Data byte 0 Data byte 1 Data byte 2 Data byte 3

8.8 Read From Cache Quad IO (EBH)

The Read from Cache Quad IO command is similar to the Read from Cache x4 command but with the capability to input the 4 dummy bits, followed a 12-bit column address for the starting byte address and dummy bytes by SIO0, SIO1, SIO3, SIO4, each bit being latched in during the rising edge of SCLK, then the cache contents are shifted out 4-bit per clock cycle from SIO0, SIO1, SIO2, SIO3. The first byte addressed can be at any location. The address is automatically incremented to the next higher address after each byte of data is shifted out. The Quad Enable bit (QE) of feature (B0[0]) must be set to enable the read from cache quad IO command. The command sequence is shown below.

Figure 8-11.Read From Cache Quad IO Timing Diagram

text_image

CS# SCLK Command Dummy 3:0 SI(SIO0) EBH SO(SIO1) WP#(SIO2) HOLD#(SIO3) A11 - A0 Dummy Byte0 Byte1

8.9 Read From Cache Quad I/O DTR (EEH)

The DTR QIO command enables Double Transfer Rate throughput on quad I/O of Serial Flash in read mode. A Quad Enable (QE) bit of status Register must be set to “1” before sending the DTR QIO command. The address (interleave on 4 I/O pins) is latched on both rising and falling edge of SCLK, and data (interleave on 4 I/O pins) shift out on both rising and falling edge of SCLK. The 8-bit address can be latched-in at one clock, and 8-bit data can be read out at one clock, which means four bits at rising edge of clock, the other four bits at falling edge of clock.

The first address Byte can be at any location. The address is automatically increased to the next higher address after each Byte data is shifted out, so the whole page can be read out at a single DTR QIO command. The address counter rolls over to 0 when the highest address has been reached.

Figure 8-12.Read From Cache Quad I/O DTR Timing Diagram

text_image

CS# SCLK Command EEH SI(IO0) Dummy <19:0> Dummy 4 0 4 0 SO(IO1) 0 0 0 0 0 9 5 1 5 1 5 1 DQS IO2 0 0 0 0 0 10 6 2 6 2 6 2 IO3 0 0 0 0 0 11 7 3 A11-A0 Byte 0Byte 1 19 20

Note:

Please contact GigaDevice when there is a need to use the EEh command for DTR.

The max clock rate for DTR depends on the tCLQV (clock to data output valid). Per datasheet, with output load capacitance of 30pf, the tCLQV is about 11ns. This will limit the max rate to 45Mhz.

However, in general, most of PCB designs have output loading much less than 30pf. Lower output loading will in turn shorten the tCLQV and result in higher max clock rate.

GigaDevice recommend customers measure the tCLQV and then set the clock rate to match the SPI host data sampling data setup time and hold time.

8.10 Read ID (9FH)

The READ ID command is used to identify the NAND Flash device.

• With address 00H, the READ ID command outputs the Manufacturer ID and the device ID. See Table 8-2 for details.

Figure 8-13.Read ID Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SCLK Command Dummy SI 9FH 7 6 5 4 3 2 1 0 SO High-Z CS# 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 SCLK SI Manufacturer ID Device ID SO 7 6 5 4 3 2 1 0 MSB MSB

Table 8-2. READ ID Table

Part NoMIDDID1
GD5F2GQ5UExxGC8H52H
GD5F2GQ5RExxGC8H42H

8.11 Read UID

The Read Unique ID function is used to retrieve the 16 bytes unique ID (UID) for the device. The unique ID when combined with the device manufacturer shall be unique.

The UID data may be stored within the Flash array. To allow the host to determine if the UID is without bit errors, the UID is returned with its complement. If the XOR of the UID and its bit-wise complement is all ones, then the UID is valid. To accommodate robust retrieval of the UID in the case of bit errors, sixteen copies of the UID and the corresponding complement are stored by the target. For example, reading byte 32-63 returns to the host another copies of the UID and its complement.

BytesValue
0-15UID
16-31UID complement (bit-wise)

Sequence is as follows:

  1. Use Set Feature command to set B0 register, to enable OTP_EN.
  2. Use Get Feature command to get data from B0 register and check if the OTP_EN is enable.
  3. Use Page Read to Cache (13h) command with address 24h000006h, read data from array to cache.
  4. Use 0FH (GET FEATURES command) read the status.
  5. User can use Read from cache command (03H/0BH), read 16 bytes UID from cache.

Figure 8-14. Read UID to cache and Get Feature command Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 8 9 10 28 29 30 31 SCLK SI Command 24-bit address 13H 000006H SO High-Z CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SLK tCS Get Feature 1 byte address SI 0FH 7 6 5 4 3 2 1 0 SO High-Z MSB CS# 16 17 18 19 20 21 22 23 24 SCLK SI Data byte SO 7 6 5 4 3 2 1 0 7 MSB

8.12 Read Parameter Page

The Read Parameter Page function retrieves the data structure that describes the chips organization, features, timing and other behavioral parameters. This data structure enables the host processor to automatically recognize the SPI-NAND Flash configuration of a device. A minimum of three copies of the parameter page are stored in the device. The Read from Cache command can be used to change the location of data output.

Sequences as follows:

  1. Use Set Feature command to set B0 register, to enable OTP_EN.
  2. Use Get Feature command to get data from B0 register and check if the OTP_EN is enable.
  3. Use Page Read to Cache (13h) command with address 24h000004. Load parameter page from array to cache.
  4. Use 0Fh (GET FEATURES command) read the status
  5. User can use Read from cache command (03h/0Bh), read parameter page from cache.

Figure 8-15. Read parameter page to cache and Get Feature command Timing Diagram

Parameter page table as follow

ByteO/MDescription3.3V/1.8V
0-3MParameter page signature4FH
Byte 0: 4FH, “O”4EH
Byte 1: 4EH, “N”46H
Byte 2: 46H, “F”49H
Byte 3: 49H, “I”
4-5MRevision number00H
0-15 Reserved (0)00H
6-7MFeatures supported00H
0-15 Reserved (0)00H
8-9MReserved (0)00H
00H
10-31Reserved (0)00H
...
00H
Manufacturer Information block
32-43MDevice manufacturer (12 ASCII characters)“GIGADEVICE ”47H
49H
47H
41H
44H
45H
56H
49H
43H
45H
20H
20H
44-63MDevice model (20 ASCII characters)47H
Device ModelORGANIZATIONVCC RANGE44H
“GD5F2GQ5U”X42.7v ~ 3.6v35H
“GD5F2GQ5R”X41.7v ~ 2.0v46H
32H
47H
51H
35H
55H/52H
20H
20H
20H
20H
20H
20H20H20H20H20H
64MJEDEC manufacturer ID“C8”C8H
65-66ODate code00H00H
67-79Reserved00H00H00H
Memory organization block
80-83MNumber of data bytes per page00H08H00H00H
84-85MNumber of spare bytes per page80H00H
86-89MNumber of data bytes per partial page00H02H00H00H
90-91MNumber of spare bytes per partial page20H00H
92-95MNumber of pages per block40H00H00H00H
96-99MNumber of blocks per logical unit00H08H00H00H
100MNumber of logical units01H
101MReserved00H
102MNumber of bits per cell01H
103-104MBad blocks maximum per logical unit28H00H
105-106MBlock endurance01H05H
107MGuaranteed valid blocks at beginning of target01H
108-109MBlock endurance for guaranteed valid blocks00H00H
110MNumber of programs per page04H
111MPartial programming attributes5-7 Reserved4 1 = partial page layout is partial page data followed by partial page spare1-3 Reserved0 1 = partial page programming has constraints00H
112MNumber of bits ECC correctability00H
113MNumber of interleaved address bits4-7 Reserved (0)0-3 Number of interleaved address bits00H
114OInterleaved operation attributes4-7 Reserved (0)3 Address restrictions for program cache2 1 = program cache supported1 1 = no block address restrictions0 Overlapped / concurrent interleaving support00H
115-127Reserved00H...00H
Electrical parameters block
128MI/O capacitance06H
129-130MIO clock support3-1 5 Reserved (0)2 1 = supports 80MHz1 1 = supports 104MHz0 1 = supports 120MHz02H/04H00H
131-132OReserved (0)00H00H
133-134MtPROG Maximum page program time (us)58H02H
135-136MtBERS Maximum block erase time (us)88H13H
137-138MtR Maximum page read time (us)3CH00H
139-140MReserved00H00H
141-163Reserved00H
Vendor block
164-165MVendor specific Revision number00H
166-253Vendor specific00H
254-255MIntegrity CRCSet on test
Redundant parameter pages
256-511MValue of bytes 0-255
512-767MValue of bytes 0-255
768+OAdditional redundant parameter pages

Notes:

  1. “O” Stands for Optional, “M” for Mandatory
  2. The Integrity CRC (Cycling Redundancy Check) field is used to verify that the contents of the parameters page were transferred correctly to the host. Please refer to ONFI 1.0 specifications for details. The CRC shall be calculated using the following 16-bit generator polynomial: \mathsf { G } ( \mathsf { X } ) = \mathsf { X } ^ { 1 6 } + \mathsf { X } ^ { 1 5 } + \mathsf { X } ^ { 2 } + 1 This polynomial in hex may be represented as 8005h.
    3The CRC value shall be initialized with a value of 4F4Eh before the calculation begins. There is no XOR applied to the final CRC value after it is calculated. There is no reversal of the data bytes or the CRC calculated value.
Device ModelORGANIZATIONVCC RANGECRC value B254/B255
“GD5F2GQ5UxxxG”X42.7v ~ 3.6v5BH/05H
“GD5F2GQ5RxxxG”X41.7v ~ 2.0v96H/48H

9 PROGRAM OPERATIONS

9.1 Page Program

The PAGE PROGRAM operation sequence programs 1 byte to whole page bytes of data within a page. The page program sequence is as follows:

• 02H (PROGRAM LOAD)/32H (PROGRAM LOAD x4)
• 06H (WRITE ENABLE)
• 10H (PROGRAM EXECUTE)
• 0FH (GET FEATURE command to read the status)

Firstly, a PROGRAM LOAD (02H/32H) command is issued. PROGRAM LOAD consists of an 8-bit Op code, followed by 4 dummy bits and a 12-bit column address, then the data bytes to be programmed. The Program address should be in sequential order in a block. The data bytes are loaded into a cache register that is whole page long. If more than one page data are loaded, then those additional bytes are ignored by the cache register. The command sequence ends when CS# goes from LOW to HIGH. Figure 9-1 shows the PROGRAM LOAD operation. Secondly, prior to performing the PROGRAM EXECUTE operation, a WRITE ENABLE (06H) command must be issued. As with any command that changes the memory contents, the WRITE ENABLE must be executed in order to set the WEL bit. If this command is not issued, then the rest of the program sequence is ignored.

Note:

  1. The contents of Cache Register dont reset when Program Random Load (84h) command and RESET (FFh) command.
  2. When Program Execute (10h) command was issued just after Program Load (02h) command, the 0xFF is output to the address that data was not loaded by Program Load (02h) command.
  3. When Program Execute (10h) command was issued just after Program Load Random Data (84h) command, the contents of Cache Register are output to the NAND array.
  4. The Program address should be in sequential order in a block.
  5. Program Load x4 is only available with the QE enable.

9.2 Program Load (PL) (02H)

The command sequence is shown below.

Figure 9-1. Program Load Timing Diagram

text_image

CS# SCLK SI Command Dummy<3:0> A11-A0 02H 0 0 0 0 1 10 3 2 1 0 CS# SCLK SI 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 Data byte 0 Data byte 1 Data byte N MSB

Note: When internal ECC disabled the Data Byte is 2176, when internal ECC enabled the Data Byte is 2112.

9.3 Program Load x4 (PL x4) (32H)

The Program Load x4 command (32H) is similar to the Program Load command (02H) but with the capability to input the data bytes by four pins: SIO0, SIO1, SIO2, and SIO3. The Quad Enable bit (QE) of feature (B0[0]) must be set to enable the program load x4 command. The command sequence is shown below.

Figure 9-2. Program Load x4 Timing Diagram

Note: When internal ECC disabled the Data Byte is 2176, when internal ECC enabled the Data Byte is 2112.

9.4 Program Execute (PE) (10H)

After the data is loaded, a PROGRAM EXECUTE (10H) command must be issued to initiate the transfer of data from the cache registers to the main array. PROGRAM EXECUTE consists of an 8-bit Op code, followed by a 24-bit address. After the page/block address is registered, the memory device starts the transfer from the cache register to the main array, and is busy for tPROG time. This operation shown in Figure 9-3. During this busy time, the status register can be polled to monitor the status of the operation (refer to Status Register). When the operation completes successfully, the next series of data can be loaded with the PROGRAM LOAD command.

Figure 9-3. Program Execute Timing Diagram

9.5 Program Execute Background (10h + address + 15h)

A “Cache Program” function has been implemented in SPI series to improve the overall program throughput. It is possible to program the data from Data Register to array the simultaneously while a Load Data command is being performed to write data to the Cache Register.

When multiple pages of data is to be program sequentially, the host should issue a “Program Load (02h)” command followed by a Column Address and data written. When the command is accepted, the host should use Program Execute Background10h+address+15hto initial the internal program operation, then the CBSY becomes 1.

Once the CBSY becomes 0, user can issue again the “Program Load (02h)” command followed by a Page Address and data written. Then user can send Program Execute Background command to continue the cache program.

When the last page of one block to be program and the OIP bit is 0, the program execute command (10h+address) should be used to finish the last program operation.

The program execute command (10h+address+15h) is allowed to cross blocks before reaching the last block.

Figure 9-4. Program Execute Background Operation Flow Chart

flowchart
graph TD
  Start(["Start cache Program"]) --> PageN["Page N"]
  PageN --> PageLoad["Page Load\n(Page N)"]
  PageLoad --> Background["Program execute background"]
  Background --> CBSY{"CBSY = 0 ? (tCBSYW)"}
  CBSY -->|N| Background
  CBSY -->|Y| PageN1["Page N+1"]
  PageN1 --> LastPage{"Last Page"}
  LastPage -->|N| PageLoad
  LastPage -->|Y| PageLoad
  PageLoad --> OIP{"OIP = 0 ?"}
  OIP -->|N| PageLoad
  OIP -->|Y| ProgramExecute["Program Execute"]
  ProgramExecute --> Done["Done"]

Figure 9-5. Program Execute Background Timing

text_image

CS# SCLK SI 02H 22 23 Command Dummy<3:0>,A11-A0 Data 0 Data N SO High-Z CS# SCLK SI 10H 23 22 30 31 32 33 38 39 Command 24-bit address Page addr M Command tCBSYW Command 15H 02H SO High-Z CS# SCLK SI 8 9 22 23 Dummy<3:0>,A11-A0 Data 0 Data N Wait OIP Ready 0 1 4 5 6 24-bit address Page addr N tPROG SO High-Z CS# SCLK SI 10H 23 22 30 31 Command 1 0 1 0 SO High-Z

9.6 Internal Data Move

The INTERNAL DATA MOVE command sequence programs or replaces data in a page with existing data. The INTERNAL DATA MOVE command sequence is as follows:

• 13H (PAGE READ to cache)
• Optional 84H/C4H/34H (PROGRAM LOAD RANDOM DATA)
• 06H (WRITE ENABLE)
• 10H (PROGRAM EXECUTE)
• 0FH (GET FEATURE command to read the status)

Prior to performing an internal data move operation, the target page content must be read out into the cache register by issuing a PAGE READ (13H) command. The PROGRAM LOAD RANDOM DATA (84H/C4H) command can be issued, if user wants to update bytes of data in the page. New data is loaded in the 12-bit column address. If the random data is not sequential, another PROGRAM LOAD RANDOM DATA (84H/C4H) command must be issued with the new column address. After the data is loaded, the WRITE ENABLE command must be issued, and then PROGRAMEXECUTE (10H) command can be issued to start the programming operation. Only the block with the same parity attribute can use the command.

9.7 Program Load Random Data (84H)

The Program Load Random Data command programs or replaces data in a page with existing data. This command consists of an 8-bit Op code, followed by 4 dummy bits, and a 12-bit column address. New data is loaded in the column address provided with the 12 bits. If the random data is not sequential, then another PROGRAM LOAD RANDOM DATA (84H) command must be issued with a new column address, see Figure 9-6 for details.

Figure 9-6. Program Load Random Data Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 22 23 SCLK Command Dummy<3:0> A11 - A0 SI 84H 0 0 0 0 1 1 10 3 2 1 0 CS# 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 SCLK Data byte 0 Data byte 1 Data byte N SI 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 MSB

9.8 Program Load Random Data x4 (C4H/34H)

The Program Load Random Data x4 command (C4H/34H) is similar to the Program Load Random Data command (84H) but with the capability to input the data bytes by four pins: SIO0, SIO1, SIO2, and SIO3. The command sequence is shown below. The Quad Enable bit (QE) of feature (B0[0]) must be set to enable for the program load random data x4 command. See Figure 9-7 for details.

Figure 9-7. Program Load Random Data x4 Timing Diagram

text_image

CS# SCLK Command Dummy<3:0> A11 - A0 Byte 0 Byte 1 SI(SIO0) C4H/34H 0 0 0 0 11 1 0 4 0 4 0 4 0 4 0 SO(SIO1) WP#(SIO2) HOLD#(SIO3) CS# SCLK 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 SI(SIO0) 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 SO(SIO1) 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 WP#(SIO2) 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 2 HOLD#(SIO3) 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3 7 3

10ERASE OPERATIONS

10.1 Block Erase (D8H)

The BLOCK ERASE (D8H) command is used to erase at the block level. The BLOCK ERASE command (D8H) operates on one block at a time. The command sequence for the BLOCK ERASE operation is as follows:

• 06H (WRITE ENBALE command)
• D8H (BLOCK ERASE command)
• 0FH (GET FEATURES command to read the status register)

Prior to performing the BLOCK ERASE operation, the WRITE ENABLE (06H) command must be issued. As with any command that changes the memory contents, the WRITE ENABLE command must be executed in order to set the WEL bit. If the WRITE ENABLE command is not issued, then the rest of the erase sequence is ignored. The WRITE ENABLE command must be followed by the BLOCK ERASE (D8H) command. This command requires a 24-bit address. After the row address is registered, the control logic automatically controls timing and erase-verify operations. The device is busy for tBERS time during the BLOCK ERASE operation. The GET FEATURES (0FH) command can be used to monitor the status of the operation.

Figure10-1. Block Erase Timing Diagram

11 RESET OPERATIONS

11.1 Soft Reset (FFH)

The RESET (FFH) command stops all operations and the status. For example, in case of a program or erase or read operation, the reset command can make the device enter the idle state.

During a cache program or cache read, a reset can also stops the previous operation and the pending operation.

Figure11-1. Reset Timing Diagram

text_image

CS# SCLK SI FFH SO High-Z CS# 0 1 2 3 4 5 6 7 SLK tCS get feature Status register address SI 0FH 7 6 5 4 3 2 1 0 SO High-Z MSB CS# 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 SCLK SI Status register data out Status register data out SO 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 MSB MSB

Note: The Register bit value after soft reset refers to Table 12-2. Register bit Descriptions.

11.2 Enable Power on Reset (66H) and Power on Reset (99H)

If the Power on Reset command is accepted, any on-going internal operation will be terminated and the device will return to its default power-on state and lose all the current feature settings.

The “Enable Reset (66H)” and the “Reset (99H)” commands can be issued in SPI mode. The “Reset (99H)” command sequence as follow: CS# goes low -> Sending Enable Reset command ->CS# goes high ->CS# goes low.->Sending Reset command ->CS# goes high. Once the Reset command is accepted by the device, the device will take approximately tVSL to reset. During this period, no command will be accepted. It is recommended to check the OIP bit in Status Register before issuing any other command sequence. The contents of the memory location being programmed or the block being erased are no longer valid.

Figure11-2. Reset Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 SCLK Command SI 66H Command 99H SO High-Z High-Z

12FEATURE OPERATIONS

12.1 Get Features (0FH) and Set Features (1FH)

The GET FEATURES (0FH) and SET FEATURES (1FH) commands are used to monitor the device status and alter the device behavior. These commands use a 1-byte feature address to determine which feature is to be read or modified. Feature such as OTP can be enabled or disabled by setting specific feature bits (shown in the below table).The status registers (C0H/F0H) is mostly read, except WEL, which is a writable bit with the WRITE ENABLE (06H) command.

When a feature (A0H/B0H/D0H) is set, it remains active until the device is power cycled or the feature is written to. Unless otherwise specified in the following table, once the device is set, it remains set, even if a RESET (FFH) command is issued.

Table 12-1. Features Settings

RegisterAddr.76543210
ProtectionA0HBRWDReservedBP2BP1BP0INVCMPReserved
FeatureB0HOTP_PRTOTP_ENReservedECC_ENReservedReservedReservedQE
StatusC0HReservedReservedECCS1ECCS0P_FAILE_FAILWELOIP
FeatureD0HReservedDS_IO[1]DS_IO[0]ReservedReservedReservedReservedReserved
StatusF0HReservedReservedECCSE1ECCSE0BPSReservedReservedCBSY

Note: 1. If BRWD is enabled and WP# is LOW, then the block lock register cannot be changed.
2. If QE is enabled, the quad IO operations can be executed.
3. All the reserved bits must be held low when the feature is set.
4. These registers A0H/B0H/D0H are write/read type, and Registers C0H/F0H are read only.
5. The OTP_PRT is non-volatile, others bits are volatile.
6. The Register Bit default value after power-up refers to Table 12-2. Register Bit Descriptions.

Table 12-2. Register Bit Descriptions

BitBit NameAfter Power up or Power on Reset(66H-99H)After Reset command (FFH)Description
BRWDBlock register write disable0No ChangeWhich is used combined with WP#, If BRWD is high enabled and WP# is LOW, then the Protection register cannot be changed
BP2Block1No ChangeUsed combination, refer to chapter Block Protection
BP11
BP0Protection1
INVbits0
CMP0
OTP_PRTOTP0No ChangeUsed combination, refer to chapter OTP Region
OTP_ENRegion0
bitsBefore OTP Set
ECC_ENECC1No ChangeThe device offers data corruption protection by offering optional internal ECC. READs and PROGRAMs with internal ECC can be enabled or disabled by setting feature bit ECC_EN. ECC is enabled by default when device powered on, so the default READ and PROGRAM commands operate with internal ECC in the “active” state when ECC enable.
Enable
Latch
QEThe Quad0No ChangeThis bit indicates that whether the quad IO operations can be executed. If QE is set to 1, the quad IO operations can be executed.
Enable bit
ECCS0ECC StatusPage 0 Status0ECCS provides ECC status as the following table. ECCS and ECCSE are set to 00b either following a RESET, or at the beginning of the READ. They are then updated after the device completes a valid READ operation. ECCS and ECCSE are invalid if internal ECC is disabled (via a SET FEATURES command to reset ECC_EN to 0). After power-on RESET, ECC status is set to reflect the contents of block 0, page 0.
ECCS10
ECCSE00
ECCSE10
P_FAILProgram Fail00This bit indicates that a program failure has occurred (P_FAIL =1). It will also be set if the user attempts to program a protected region, including the OTP area. This bit is cleared during the PROGRAM EXECUTE command sequence or a RESET command (P_FAIL = 0).
E_FAILErase Fail00This bit indicates that an erase failure has occurred (E_FAIL = 1). It will also be set if the user attempts to erase a locked region. This bit is cleared (E_FAIL = 0) at the start of the BLOCK ERASE command sequence or the RESET command.
WELWrite Enable Latch00This bit indicates the current status of the write enable latch (WEL) and must be set (WEL = 1), prior to issuing a PROGRAM EXECUTE or BLOCK ERASE command. It is set by issuing the WRITE ENABLE command. WEL can also be disabled (WEL = 0), by issuing the WRITE DISABLE command.
OIPOperation In Progress00This bit is set (OIP = 1) when a PROGRAM EXECUTE, PAGE READ, BLOCK ERASE, or RESET command is executing, indicating the device is busy. When the bit is 0, the interface is in the ready state.
DS_IO[0] DS_IO[1]Driven Strength register00No ChangeIO driver strength setting. Default is 00b.
BPSBlock Protection Status1No ChangeBlock protection statusBPS is 1, selected block is protectedBPS is 0, selected block is unprotected.
CBSYCache Busy status bit00CBSY is to indicate whether cache is busy, non-available for data read or data load. This bit is the status, which indicates if the cache is busy or ready, 1 is busy, 0 is ready.

Figure12-1. Get Features Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 SCLK SI Command 1 byte address 0FH MSB Data byte SO High-Z MSB 7 6 5 4 3 2 1 0 MSB

Figure12-2. Set Features Timing Diagram

text_image

CS# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 SCLK SI Command 1 byte address Data byte 1FH MSB MSB High-Z SO

12.2 Status Register and Driver Register

The NAND Flash device has the status registers (C0H/F0H) that software can read during the device operation for operation state query. The status register can be read by issuing the GET FEATURES (0FH) command, followed by the feature address C0H or F0H (see FEATURE OPERATION). The Output Driver Register can be set and read by issuing the SET FEATURE (0FH) and GET FEATURE command followed by the feature address D0H (see FEATURE OPERATION).

Table 12-3.ECC Error Bits Descriptions

ECCS1ECCS0ECCSE1ECCSE0Description
00xxNo bit errors were detected during the previous read algorithm
0100Bit errors(=1) were detected and corrected
0101Bit errors (=2) were detected and corrected.
0110Bit errors (=3) were detected and corrected.
0111Bit errors (=4) were detected and corrected.
11xxReserved
10xxBit errors greater than ECC capability(4 bits) and not corrected

12-4. Driver Register Bits Descriptions

DS_IO[1]DS_IO[0]Driver Strength
00100%
0175%
1050%
1125%

12.3 OTP Region

The serial device offers a protected, One-Time Programmable NAND Flash memory area. 4 full pages are available on the device. Customers can use the OTP area as they prefer, like programming serial numbers, or other data, for permanent storage. When delivered from factory, feature bit OTP_PRT is 0. To access the OTP feature, the user must set feature bits OTP_EN/OTP_PRT by SET FEATURES command. When the OTP is ready for access, only pages 00h03H can be programmed in sequential order by PROGRAM LOAD (02H) and PROGRAM EXECUTE (10H) commands (when not yet protected), and read out by PAGE READ (13H) command and output data by READ from CACHE(03H/0BH/3BH/6BH). When ECC is enabled, data written in the OTP area is ECC protected.

Table 12-5.OTP States

OTP_PRTOTP_ENState
x0Normal Operation
01Access OTP region, read and program data
111. When the device power on state OTP_PRT is 0, user can set feature bit OTP_PRT and OTP_EN to 1, then issue PROGRAM EXECUTE (10H) to lock OTP, and after that OTP_PRT will permanently remain 1.2. When the device power on state OTP_PRT is 1, user can only read the OTP region data

Note: The OTP space cannot be erased and after it has been protected, it cannot be programmed again, please use this function carefully.

Access to OTP data

• Issue the SET FEATURES command (1FH)
• Set feature bit OTP_EN
• Issue the PAGE PROGRAM (only when OTP_PRT is 0) or PAGE READ command

Protect OTP region

Only when the following steps are completed, the OTP_PRT will be set and users can get this feature out with 0FH command.

• Issue the SET FEATURES command (1FH)
• Set feature bit OTP_EN and OTP_PRT
• 06H (WRITE ENABLE)
• Issue the PROGRAM EXECUTE (10H) command.

12.4 Assistant Bad Block Management

As a NAND Flash, the device may have blocks that are invalid when shipped from the factory, and a minimum number of valid blocks (NVB) of the total available blocks are specified. An invalid block is one that contains at least one page that has more bad bits than can be corrected by the minimum required ECC. Additional bad blocks may develop with use. However, the total number of available blocks will not fall below NVB during the endurance life of the product.

Although NAND Flash memory devices may contain bad blocks, they can be used reliably in systems that provide badblock management and error-correction algorithms, which ensure data integrity. Internal circuitry isolates each block from other blocks, so the presence of a bad block does not affect the operation of the rest of the NAND Flash array.

NAND Flash devices are shipped from the factory erased. The factory identifies invalid blocks before shipping by programming the Bad Block Mark (00h) to the first spare area location in each bad block. This method is compliant with ONFI Factory Defect Mapping requirements. See the following table for the bad-block mark.

System software should initially check the first spare area location for non-FFH data on the first page of each block prior to performing any program or erase operations on the NAND Flash device. A bad-block table can then be created, enabling system software to map around these areas. Factory testing is performed under worst-case conditions. Because invalid blocks may be marginal, it may not be possible to recover the bad-block marking if the block is erased.

To simplify the system requirement and guard the data integration, GigaDevice SPI NAND provides assistant Management options as below.

Table 12-6. Bad Block Mark information (2Gb)

DescriptionRequirement
Minimum number of valid blocks (NVB)2008
Total available blocks per die2048
First spare area locationByte 2048
Bad-block mark00h(use non FFH to check)

12.5 Block Protection

The block lock feature provides the ability to protect the entire device, or ranges of blocks, from the PROGRAM and ERASE operations. After power-up, the device is in the “locked” state, i.e., feature bits BP0, BP1and BP2 are set to 1, INV, CMP and BRWD are set to 0. To unlock all the blocks, or a range of blocks, the SET FEATURES command must be issued to alter the state of protection feature bits. When BRWD is set and WP# is LOW, none of the writable protection feature bits can be set. Also, when a PROGRAM/ERASE command is issued to a locked block, status bit OIP remains 0. When an ERASE command is issued to a locked block, the erase failure, status bit E_FAIL set to 1. When a PROGRAM command is issued to a locked block, program failure, status bit P_FAIL set to 1.

To enable the Write Protection (WP#), the Quad Enable bit (QE) of feature (B0[0]) must be set to 0.

Table 12-7. Block Lock Register Block Protect Bits (2Gb)

CMPINVBP2BP1BP0Protect Row AddressProtect Rows
2Gb
xx000NONENone—all unlocked
000011F800h ~ 1FFFFhUpper 1/64 locked
000101F000h ~ 1FFFFhUpper 1/32 locked
000111E000h ~ 1FFFFhUpper 1/16 locked
001001C000h ~ 1FFFFhUpper 1/8 locked
0010118000h ~ 1FFFFhUpper 1/4 locked
0011010000h ~ 1FFFFhUpper 1/2 locked
xx1110000h ~ 1FFFFhAll locked (default)
010010000h ~7FFhLower 1/64 locked
010100000h ~FFFhLower 1/32 locked
010110000h ~ 1FFFhLower 1/16 locked
011000000h ~ 3FFFhLower 1/8 locked
011010000h ~ 7FFFhLower 1/4 locked
011100000h ~ FFFFhLower 1/2 locked
100010000h ~ 1F7FFhLower 63/64 locked
100100000h ~ 1FFFFhLower31/32 locked
100110000h ~ 1DFFFhLower 15/16 locked
101000000h ~ 1BFFFhLower7/8 locked
101010000h ~ 17FFFhLower3/4 locked
101100000h ~ 003FhBlock0
110010800h ~ 1FFFFhUpper 63/64 locked
110101000h ~ 1FFFFhUpper31/32 locked
110112000h ~ 1FFFFhUpper 15/16 locked
111004000h ~ 1FFFFhUpper7/8 locked
111018000h ~ 1FFFFhUpper3/4 locked
111100000h ~ 003FhBlock0

When WP# is not LOW, user can issue bellows commands to alter the protection states as want.
• Issue SET FEATURES register write (1FH)
• Issue the feature bit address (A0h) and the feature bits combination as the table

12.6 Internal ECC

The device offers data corruption protection by offering optional internal ECC. READs and PROGRAMs with internal ECC can be enabled or disabled by setting feature bit ECC_EN. ECC is enabled by default when device powered on, so the default READ and PROGRAM commands operate with internal ECC in the “active” state when ECC enable.

To enable/disable ECC, perform the following command sequence:

• Issue the SET FEATURES command (1FH) to set the feature bit ECC_EN:

  1. To enable ECC, Set ECC_EN to 1.
  2. To disable ECC, Clear ECC_EN to 0.

During a PROGRAM operation, the device calculates an ECC code on the 2k page in the cache register, before the page is written to the NAND Flash array.

During a READ operation, the page data is read from the array to the cache register, where the ECC code is calculated and compared with the ECC code value read from the array. If error bits are detected (error bits≤4 bits), the error is corrected in the cache register. Only corrected data is output on the I/O bus. The ECC status bit indicates whether or not the error correction was successful. The ECC Protection table below shows the ECC protection scheme used throughout a page.

The ECC protection format as follow:

• User meta data I is not protected by internal ECC and User meta data II is protected by internal ECC.

Any data wrote to the ECC parity data area are ignored when ECC enabled.

Table 12-8. The Distribution of ECC Segment and Spare Area in a Page

Main Area(2KB)Spare Area(128B)
User dataUser meta data(I+II)ECC Parity Data
Main0Main1Main2Main3Spare0Spare1Spare2Spare3Spare0Spare1Spare2Spare3
(512B)(512B)(512B)(512B)(4B+12B)(4B+12B)(4B+12B)(4B+12B)(16B)(16B)(16B)(16B)

Table 12-9. ECC Protection and Spare Area

Min Byte AddressMax Byte AddressECC ProtectedAreaDescription
000H1FFHYesMain 0User data 0
200H3FFHYesMain 1User data 1
400H5FFHYesMain 2User data 2
600H7FFHYesMain 3User data 3
800H803HNoSpare 0User meta 0 data I
804H80FHYesSpare 0User meta 0 data II
810H813HNoSpare 1User meta 1 data I
814H81FHYesSpare 1User meta 1 data II
820H823HNoSpare 2User meta 2 data I
824H82FHYesSpare 2User meta 2 data II
830H833HNoSpare 3User meta 3 data I
834H83FHYesSpare 3User meta 3 data II
840H84FHYesSpare 0ECC Parity Data
850H85FHYesSpare 1ECC Parity Data
860H86FHYesSpare 2ECC Parity Data
870H87FHYesSpare 3ECC Parity Data

Note

  1. 800H is reserved for initial bad block mark.
  2. When Internal ECC is enabled, user cannot program the Address 840H~87FH, but user can read the Address 840H~87FH.
    When Internal ECC is disabled, the whole page area is open for user. And we recommend the user to provide external ECC protection.

13POWER ON TIMING

Figure13-1. Power on Timing Sequence

line
Metric Description
Vcc(max) Maximum voltage threshold
Vcc(min) Minimum voltage threshold
VWI Minimum voltage threshold
tVSL Time-voltage duration between Vcc(min) and Vcc(max)
Device is fully accessible Accessible device status

Table 13-1. Power-On Timing and Write Inhibit Threshold for 1.8V/3.3V

SymbolParameterMinMaxUnit
tVSLVCC(min) To CS# Low1ms
VWIWrite Inhibit Voltage1.8V1.4V
3.3V2.5

14ABSOLUTE MAXIMUM RATINGS

Table 14-1.Absolute Maximum Ratings

ParameterValueUnit
Ambient Operating Temperature-40 to 105°C
Storage Temperature-65 to 150°C
Applied Input / Output Voltage-0.6 to VCC+0.4V
VCC(3.3V)-0.6 to 4.0V
VCC(1.8V)-0.6 to 2.5V

Figure14-1. Input Test Waveform and Measurement Level

Maximum Negative Overshoot Waveform

text_image

Vss 20ns 20ns Vss-2.0V 20ns

Maximum Positive Overshoot Waveform

text_image

Vcc + 2.0V 20ns 20ns 20ns

15CAPACITANCE MEASUREMENT CONDITIONS

SymbolParameterMinTypMaxUnitConditions
CINInput Capacitance6pFVIN=0V
COUTOutput Capacitance8pFVOUT=0V
CLLoad Capacitance30pF
Input Rise And Fall time5ns
Input Pulse Voltage0.1VCC to 0.8VCCV
Input Timing Reference Voltage0.2VCC to 0.7VCCV
Output Timing Reference Voltage0.5VCCV

Figure15-1. Input Test Waveform and Measurement Level

text_image

0.8VCC 0.7VCC 0.2VCC 0.1VCC AC Measurement Level Output timing reference level 0.5VCC

Note: Input pulse rise and fall time are<5ns

16DC CHARACTERISTIC

(T= -40℃~85℃/-40℃~105℃, VCC=2.7~3.6V)

SymbolParameterTest ConditionMin.Typ.Max.Unit.
$I_{LI}$ Input Leakage Current±2μA
$I_{LO}$ Output Leakage Current±2μA
$I_{CC1}$ Standby CurrentCS#=VCC, $V_{IN}$ =VCC or VSS50μA
$I_{CC2}$ Operating Current (Read)CLK=0.1VCC / 0.9VCCat 104MHz,Q=Open(*1,*2,*4 I/O)30mA
$I_{CC3}$ Operating Current (Program)30mA
$I_{CC4}$ Operating Current (Erase)30mA
$V_{IL}$ Input Low Voltage-0.50.2VCCV
$V_{IH}$ Input High Voltage0.8VCCVCC+0.4V
$V_{OL}$ Output Low Voltage $I_{OL}$ =1.6mA0.4V
$V_{OH}$ Output High Voltage $I_{OH}$ =-100μAVCC-0.2V

(T= -40℃~85℃/-40℃~105℃, VCC=1.7~2.0V)

SymbolParameterTest ConditionMin.Typ.Max.Unit.
$I_{LI}$ Input Leakage Current±2μA
$I_{LO}$ Output Leakage Current±2μA
$I_{CC1}$ Standby CurrentCS#=VCC, $V_{IN}$ =VCC or VSS50μA
$I_{CC2}$ Operating Current (Read)CLK=0.1VCC / 0.9VCCat 80MHz,Q=Open(*1,*2,*4 I/O)30mA
$I_{CC3}$ Operating Current (Program)30mA
$I_{CC4}$ Operating Current (Erase)30mA
$V_{IL}$ Input Low Voltage-0.50.2VCCV
$V_{IH}$ Input High Voltage0.8VCCVCC+0.4V
$V_{OL}$ Output Low Voltage $I_{OL}$ =1.6mA0.4V
$V_{OH}$ Output High Voltage $I_{OH}$ =-100μAVCC-0.2V

Note: Value guaranteed by design and/or characterization, not 100% tested in production

17AC CHARACTERISTICS

(T= -40℃~85℃/-40℃~105℃, VCC=1.7~2.0V/2.7~3.6V, CL=30pF)

SymbolParameter1.8V3.3VUnit.
Min.Max.Min.Max.
FC1Serial Clock Frequency80104MHz
FC2*Serial Clock Frequency for DTR4545MHZ
tCHSerial Clock High Time44ns
tCLSerial Clock Low Time44ns
tCLCHSerial Clock Rise Time (Slew Rate)0.20.2V/ns
tCHCLSerial Clock Fall Time (Slew Rate)0.20.2V/ns
tCHSHCS# Active Hold Time55ns
tSHCHCS# Not Active Setup Time55ns
tSLCHCS# Active Setup Time75ns
tCHSLCS# Not Active Hold Time55ns
tSHSL/tCSCS# High Time2020ns
tSHQZOutput Disable Time2020ns
tCLQXOutput Hold Time22ns
tDVCHData In Setup Time22ns
tCHDXData In Hold Time22ns
tHLCHHold# Low Setup Time (relative to Clock)55ns
tHHCHHold# High Setup Time (relative to Clock)55ns
tCHHLHold# High Hold Time (relative to Clock)55ns
tCHHHHold# Low Hold Time (relative to Clock)55ns
tHLQZHold# Low To High-Z Output1515ns
tHHQXHold# High To Low-Z Output1515ns
tCLQVClock Low To Output Valid119ns
tWHSLWP# Setup Time Before CS# Low2020ns
tSHWLWP# Hold Time After CS# High100100ns

Note:

  1. Value guaranteed by design and/or characterization, not 100% tested in production
  2. Please contact GigaDevice when there is a need to use the EEh command for DTR.

The max clock rate for DTR depends on the tCLQV (clock to data output valid). Per datasheet, with output load capacitance of 30pf, the tCLQV is about 11ns. This will limit the max rate to 45Mhz.

However, in general, most of PCB designs have output loading much less than 30pf. Lower output loading will in turn shorten the tCLQV and result in higher max clock rate.

GigaDevice recommend customers measure the tCLQV and then set the clock rate to match the SPI host data sampling data setup time and hold time.

18PERFORMANCE AND TIMING

SymbolParameterMin.Typ.Max.Unit.
tRSTCS# High To Next Command After Reset(FFh)500us
tRDRead From Array25us
tRD_ECCRead From Array with ECC4560us
tPROGPage Programming Time300600us
tPROG_ECCPage Programming Time with ECC400600us
tBERSBlock Erase Time35ms
tCBSYWCache busy time for Cache Program5tPROGus
tCBSYW_ECCCache busy time for Cache Program with ECC30tPROG_ECCus
tCBSYRCache busy time for Cache Read5tRDus
tCBSYR_ECCCache busy time for Cache Read with ECC30tRD_ECCus

Figure18-1. Serial Input Timing

text_image

CS# tCHSL tSLCH SCLK tDVCH tCHDX SI MSB LSB SO High-Z tCHSH tCLCH tSHCL tSHSL

Figure18-2. Output Timing

text_image

CS# SCLK tCLQV tCLQX tCLQV tCLQX SO LSB tCH tCL tSHQZ SI Least significant address bit (LIB) in

Figure18-3. Hold Timing

text_image

CS# SCLK tCHHL tHLCH tHHCH SO tHLQZ tCHHH tHHQX HOLD#

Sl do not care during HOLD operation.

19ORDERING INFORMATION


Note: (1) Industrial+: F grade has implemented additional test flows to ensure higher product quality than I grade.

20 PACKAGE INFORMATION

Figure 20-1.WSON8 (8*6mm)

Bottom View

text_image

C A1 A

Side View

Dimensions

SymbolAA1cbDD2EE2eL
Unit
mmMin0.700.000.1800.357.903.305.904.201.270.45
Nom0.750.020.2030.408.003.406.004.300.50
Max0.800.050.2500.458.103.506.104.400.55
InchMin0.02800.0070.0140.3110.1300.2320.1650.050.018
Nom0.0300.0010.0080.0160.3150.1340.2360.1690.020
Max0.0320.0020.0100.0180.3190.1380.2400.1730.022

Figure 20-2.TFBGA-24BALL (5*5-1 ball array)

Dimensions

SymbolAA1A2bDD1EE1eSESD
Unit
mmMin0.250.750.355.904.00 BSC7.904.00 BSC1.00 BSC1.00 TYP1.00 TYP
Nom0.300.800.406.008.00
Max1.200.350.850.456.108.10
InchMin0.0100.0300.0140.2320.157 BSC0.3110.157 BSC0.039 BSC0.039 TYP0.039 TYP
Nom0.0120.0310.0160.2360.315
Max0.0470.0140.0330.0180.2400.319

NoteBoth package length and width do not include mold flash.

Figure20-3. TFBGA-24BALL (4*6 ball array)

Dimensions

SymbolAA1A2bDD1EE1eSESD
Unit
mmMin0.250.700.355.903.00 BSC7.905.00 BSC1.00 BSC0.50 TYP0.50 TYP
Nom0.300.800.406.008.00
Max1.200.350.850.456.108.10
InchMin0.0100.0280.0140.2320.118 BSC0.3110.197 BSC0.039 BSC0.020 TYP0.020 TYP
Nom0.0120.0310.0160.2360.315
Max0.0470.0140.0340.0180.2400.319

Note: Both the package length and width do not include the mold flash.

21 REVISION HISTORY

Version NoDescriptionPage NumberDate
1.0Initial Release2019-08-01
1.1Modify the 03H command description in Figure 8-6.Page Read to Cache Timing Diagram.Add Note in Figure 8-6 Page Read to Cache Timing Diagram about Read From Cache command.Modify the “P_FAIL” “E_FAIL” default value after power up from Page 0 to 0.2525512019-08-13
1.2Add Note of EEH DTR command in 8.9 & 17 AC Characteristics..Modify the descriptions of Industrial+ F grade in Ordering information.Modify the descriptions of FFH command.Add the Register bit value after reset command (FFH).Move Table 12.2 Register bit description to 12.1Modify the Figure 3-1 Array Organization.29/617/6416/4649/5049102019-08-27
1.3Add tCBSYR_ECC and tCBSYW_ECC in 18 Performance and Timing.622019-09-11
1.4Update the tSLCH Value from 5ns to 7ns for 1.8V.Update the tVSL Value from 5ms to 1ms.Update the VWI Value from 1.7V to 1.4V.6157572019-11-15
1.5Update the tRD_ECC Max Value from 50us to 60usAdd Industrial 105° productModify the Storage Temperature to -65°C~150°CUpdate the 8.12 Parameter Page Table Byte137/138 and recalculate the CRC Byte 254/2556275835/362020-03-09
1.6Add the description of the OTP Area ECC protected.Modify the description of the initial Bad Block Mark with internal ECC on.Remove the description of the 84h/C4h/34h must be use in internal data move.Modify the error description “Program an invalid address will cause P_Fail”525616/43/44512021-11-13

Important Notice

This document is the property of GigaDevice Semiconductor (Beijing) Inc. and its subsidiaries (the "Company"). This document, including any product of the Company described in this document (the “Product”), is owned by the Company under the intellectual property laws and treaties of the Peoples Republic of China and other jurisdictions worldwide. The Company reserves all rights under such laws and treaties and does not grant any license under its patents, copyrights, trademarks, or other intellectual property rights. The names and brands of third party referred thereto (if any) are the property of their respective owner and referred to for identification purposes only.

The Company makes no warranty of any kind, express or implied, with regard to this document or any Product, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The Company does not assume any liability arising out of the application or use of any Product described in this document. Any information provided in this document is provided only for reference purposes. It is the responsibility of the user of this document to properly design, program, and test the functionality and safety of any application made of this information and any resulting product. Except for customized products which has been expressly identified in the applicable agreement, the Products are designed, developed, and/or manufactured for ordinary business, industrial, personal, and/or household applications only. The Products are not designed, intended, or authorized for use as components in systems designed or intended for the operation of weapons, weapons systems, nuclear installations, atomic energy control instruments, combustion control instruments, airplane or spaceship instruments, traffic signal instruments, life-support devices or systems, other medical devices or systems (including resuscitation equipment and surgical implants), pollution control or hazardous substances management, or other uses where the failure of the device or Product could cause personal injury, death, property or environmental damage ("Unintended Uses"). Customers shall take any and all actions to ensure using and selling the Products in accordance with the applicable laws and regulations. The Company is not liable, in whole or in part, and customers shall and hereby do release the Company as well as its suppliers and/or distributors from any claim, damage, or other liability arising from or related to all Unintended Uses of the Products. Customers shall indemnify and hold the Company as well as its suppliers and/or distributors harmless from and against all claims, costs, damages, and other liabilities, including claims for personal injury or death, arising from or related to any Unintended Uses of the Products. Customers shall discard the device according to the local environmental law.

Information in this document is provided solely in connection with the Products. The Company reserves the right to make changes, corrections, modifications or improvements to this document and the Products and services described herein at any time, without notice.