AnsweredAssumed Answered

BF609 Quad SPI Interface

Question asked by KAUSTUBH_IRDE on Jan 28, 2016
Latest reply on Feb 16, 2016 by Jithul_Janardhanan



i am using EZK-LITE development board of BF609.

On that board, there is serial flash memory - Winbond W25Q32BV. it supports quad spi communication with processor.


i have tried Dual spi communication from BF609 to this memory, and it is working.

now i am trying to use quad spi communication, but it is not working. Some fix value (238) is coming in output for manufacture/device id  reply.


sequence which i am following:


1. disable SPI interface

2. configure SPI clock, SPI_CTL register.

3. configure SPI_RX_CTL and SPI_TX_CTL registers for transmit initiate, SPI_TWC and receive initiate , SPI_RWC.

4. but SPI_RX_CTL.EN and SPI_TX_CTL.EN = 0. because in dual/quad IO mode at a time either receive or transmit channel should be in enable state.

5. enable SPI communication.


For SPI data write, sequence are:

1. enable SPI_TX_CTL.EN = 1

2. write number of data byte to be transfer, in SPI_TWC = buffer size.

3. Write data into transmit fifo.

4. wait for data transfer.

5. disable spi transmit channel.


for SPI data receive, sequence are:

1. enable receive channel

2. write number of data byte to receive, into SPI_RWC = buffer_size

3. if receive fifo is not empty, then read receive buffer

4. read required number of data bytes

5. disable spi receive channel.


** now in case of Dual SPI, let command for device id reading is 0x92. then it has to be divide into 2 parts --> 0x41, 0x04

i want to know that for quad spi, whether i have to divide the command 0x94 into 4 parts.


pls correct me..