Application Note Parallel Mode Programming Macronix 16M to 128M Serial Flash July 2005 What is “parallel mode programming”? Low density serial flash devices from Macronix are offered in an 8-pin SOP package which makes them very convenient to be used in space-restrained applications. These are 8Mb density and below. The higher density devices from 16Mb to 128Mb are offered in a 16-pin SOP package. For all these serial devices four functional pins are used for serial operation with the SPI interface: serial-in (SI), serial-out (SO), serial clock (SCLK), and chip-select (CS). Additional pins are used for VCC and GND. For 16Mb to 128Mb density devices in 16-pin SOP packages, instead of leaving the extra pins as no connect (NC), Macronix has utilized these extra pins to offer the “Parallel Mode Programming” feature. This feature saves precious programming time and customers can take advantage of the feature during production programming using a standard flash programmer. Stages: 1. Load data data to to internal Flash -byte Flash 256-byte 256 through buffer through PO0 -PO0 PO7 PO7 pins Serial Programmer HOLD# VCC NC PO2 PO1 PO0 CS# SO/PO7 MXIC SPI Flash Parallel 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 SCLK SI PO6 PO5 PO4 PO3 GND WP#/ACC pins 2. Flash Flash internal program internal program operation operation St ages: 1. Load data datato to Flash internal 256 Flash -byte - byte 256 through buffer through SI pin SI Programmer 2. Flash internal program operation internal operation AN 003.01 1 HOLD# VCC NC PO2 PO1 PO0 CS# SO/PO7 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 SCLK SI PO6 PO5 PO4 PO3 GND WP#/ACC Application Note Parallel Mode Programming Macronix 16Mb to 128Mb Serial Flash Operation Two major stages are required to program a serial flash using a programmer: Stage 1: load the program code from the programmer to a serial flash, Stage 2: perform internal programming on the serial flash. à à For “parallel mode”: For “serial mode”: load code via the PO0-PO7 pins in byte format. load code via SI pin in bit format. The major difference in programming time between serial mode and parallel mode is during Stage 1 when the mass code is loaded into the flash buffer. (see comparison table below) There will be no impact on PO0-PO7 pins while the chip is in serial mode. PO0-PO6 pins may be pulled high, low, or left floating, and PO7/SO pin acts as the SO pin when the chip is in serial mode. Table. Comparison between Programming a Serial by “Parallel Mode” vs. “Serial Mode” using a Programmer Programmer SPI clock rate Serial Write time ( to program one page) Parallel Write Parallel Writetime time ( to to program programone onepage) page) 235 KHz (4.25µ s) Stage 1: (load data to buffer) Stage 1: 1: (Load (load data data to tobuffer buffer) Write to buffer time (X) = byte+256 cycles write buffer Write buffertime time Write totobuffer = X= /X 8/8 ≅20.56mS / 8 = 1.1mS ≅8.84ms / 8 = 1.1 ms ≅ (1+3+256) x 8bit ≅ 8.84ms = X Stage 2: (Flash programming) Stage 2 :: (Flash (Flashprogramming) programming) Flash Page Page program programtime time~2.3ms ~2.3mS Flash Flash Page program time Flash Page program time ~2.3ms 11.14 ms 3.4ms Program time per page reduced 3.3 times Note: The above does not include verification stage on the programmer 2 www.macronix.com Application Note Parallel Mode Programming Macronix 16Mb to 128Mb Serial Flash Why do you need the “parallel mode programming” method? 235KHz 235KHzserial serialclock clockrate rateofofBP BPprogrammer programmermodel model#BP2700 #BP2700 second second 800 800 parallel parallel programming programming 700 700 600 600 serial serialprogramming programming 500 500 400 400 300 300 200 200 100 100 00 128M 128M 64M 64M 32M 32M 16M 16M The throughput of programming serial flash in the factory is a production bottleneck because the serial clock rate of the programmer is around 100KHz~300KHz. The programmer takes a long time to load code into a serial flash for programming because only one serial input pin DI, is used to transfer data into the serial flash. The serial clock is slow with one pin to transfer data (100K~300KHz) compared to the parallel clock (1MHz~30MHz) with 8 pins to transfer data. The situation gets worse when programming a high density serial flash by the programmer. The figure above shows the benefits of using Macronix serial flash “parallel mode programming”. The serial clock rate of the BP2700 programmer is calculated by testing a real 32Mb serial flash device and seeing the results. As the chart shows, when the higher density serial flash is programmed, a longer programming time is required. Please note that the “programming time” does not include “verify time” on the programmer. The programmer is set up automatically to perform verification (read) after the programming stage. This means that the time difference between “parallel mode” and “serial mode” on the p rogrammer is increased. For instance, to verify a 64Mb serial flash it takes roughly the following: - Serial mode (one bit to be read out at a time) = 67,108,864bit x 4.25uS (235KHz) = 285 seconds - “Parallel mode” (eight bits to be read out at a time) =67,108,864bit ÷ 8 x 4.25uS = 35 seconds. * Other names and brands are the property of the respective companies 3 www.macronix.com Application Note Parallel Mode Programming Macronix 16Mb to 128Mb Serial Flash How does it work? Flow Chart of Parallel Mode Programming Parallel mode programming provides Macronix serial flash with 8-bit inputs/outputs for increasing Start throughput of factory p roduction. A software command (55hex) activates the parallel mode, so Power On the serial flash may communicate with the programmer in byte mode via PO0 -PO7 pins of the Macronix serial flash. After writing the parallel Write Parallel mode command: 55H (via SI pin) mode command and then CS# going high, the Macronix serial flash is able to accept Set WEL bit (for write enable) read/program/read status/read ID/RES/REMS command as the normal writing command. The Write Page Program Command: 02H (via SI pin) Macronix serial flash will be in parallel mode until Vcc power is turned off. IInput 3-byte Address (via SI pin) Notes: a. Load 256-byte buffer data to SPI Flash (via PO0 PO7 pins) Only effective for Normal Read Array (not FAST_READ), Read Status, Read ID, Page Program, RES and REMS write data period. Serial Flash internal programming b. For normal write command (by SI)- no effect. c. Under parallel mode, the fastest access clock frequency will be changed to 1.5MHz(SCLK pin clock frequency.) d. For parallel mode, the tAA will be changed to Read Status Register (RDSR command) Bit0=0? (output via PO0 pin) (chip is not busy?) no 50ns. yes What is the benefit? (Bit6=0? output via PO6 pin) (program /erase/pass?) The major benefit is at the programming stage and verify stage on the programmer. A brief no yes Serial Flash Programming Finished flowchart of “parallel mode programming” is shown in the figure on the right. The “verify” flowchart is similar to the “programming” Exit Parallel mode when VCC is off fail flowchart, the difference is to write “read” th command instead of “program” command at the 4 stage of the flow. Conclusion Macronix provides 16Mb~128Mb serial flash with the “parallel mode programming” feature, which is highly recommended for increasing factory production throughput. By utilizing the pins that were originally “NC” on the 16-SOP package, Macronix creates more value with those pins being active by increasing programmer throughput. 4 www.macronix.com