FLASH Memory IC and Quad I/O with Arduino

I needed a larger amount of non-volatile memory for my project and picked up a NOR FLASH IC chip (S25FL164K). I was able to get it working in single bit mode where my arduino sends a read command and the memory address to the chip with the MOSI pin and the chip sends the data back via the MISO pin. This setup is fine but I wanted to max out the speed at which I can access the data. In the datasheet(http://www.cypress.com/file/196886/download) on page 5, it lists the ability to do quad bit I/O data exchange which, as the name suggests, is significantly faster.

If I wanted quad output from the FLASH IC then I suspect I would use the MOSI pin to send the appropriate quad read command as well as the memory address to the chip and then use the MOSI pin and 3 other arduino pins as inputs to read the returned signal. Is this possible? Is it merely as easy as setting the MOSI pin’s pinMode to INPUT? I’ve never changed a pinMode in the loop before and was hoping someone more knowledgeable than myself could give me some guidance before I attempt this.

Moreover, the FLASH chip supports quad input and output. This mode confuses me even more. According to the timing diagrams on page 15 of the datasheet, it appears as though the command is sent by the MOSI pin but all four arduino pins are used to delineate the memory address. Is the MOSI pin only different from the other digital output pins in that it can give instructions?

Thanks so much to all you guys and girls in the community!
amartin7211

From what I can tell, "quad SPI" or "quad serial" must be supported by the actual hardware, AKA the MCU. Apparently, this feature is only available on more expensive MCU's made by Microchip, Renesas, or STMicroelectronics. Searching for QSPI on digikey returned 77 results in the microcontroller category ranging from around $10 and up. The ATMega which is used on the arduino uno is ~$1-2. I guess I will run some tests to see if I need speeds that high

amartin7211:
From what I can tell, "quad SPI" or "quad serial" must be supported by the actual hardware, AKA the MCU. Apparently, this feature is only available on more expensive MCU's made by Microchip, Renesas, or STMicroelectronics. Searching for QSPI on digikey returned 77 results in the microcontroller category ranging from around $10 and up. The ATMega which is used on the arduino uno is ~$1-2. I guess I will run some tests to see if I need speeds that high

The Uno and Mega families do not support DIO or QIO on the SPI bus.

The Max SPI bus speed is 4Mbits/s for the Uno, and the Mega's. The Due can run a 21Mbits/s.

So, for a Uno, your maximum theoretical transmit rate is 512KB/s. Actual data rates will be slower.

Chuck.

"The Max SPI bus speed is 4Mbits/s for the Uno, and the Mega's. "

Not true, they can do 8 Mbits/s with SPI clock divider set at 2.
With clever programming, just 17 clocks/byte, nearly 1 byte/us.