User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 351
UG585 (v1.11) September 27, 2016
Chapter 12: Quad-SPI Flash Controller
Example: Read Data Sequence
This example returns the four bytes of data at address 0 to the calling function.
1. Send the data read instruction. Write 0xA2A1_A003 to the qspi.TXD0 register.
a. Instruction includes command (0x03) plus address (A0, A1 and A2).
2. Send dummy data. Write 0xD0D1_D2D3 (dummy data) to the qspi.TXD0 register (second TxFIFO
entry).
a. The controller shifts 8 bytes out of the TxFIFO to the flash memory and receives 8 bytes in the
RxFIFO.
The content of the TxFIFO for this example follows. The byte sequence from controller to the device
is: 0x03, Y0, Y1, Y2, D0, D1, D2 and D3.
3. Read past the instruction word. Read the qspi.RXD register and receive 0xYYYY_YYYY:
a. YY = 0.
4. Read flash memory data. Read the RXD register again and receives 0xD3D2_D1D0.
a. For the second read, software remembers that four bytes are valid.
b. Example data: 0x2468ACEF.
c. Overall, software reads these bytes: 0x00, 0x00, 0x00, 0x00, 0x24, 0x68, 0xAC,
0xEF and returns the four bytes of data to the calling function.
The content of the RxFIFO for this example follows. The byte sequence from the device to controller
is: YY, YY, YY, YY, 0xEF, 0xAC, 0x68 and 0x24.
TxFIFO Entry MSB LSB
1
Invalid Invalid Invalid Invalid
0
0x3 0x00 Previous Previous
TxFIFO Entry MSB LSB
1
D3 D2 D1 D0
0
A2 A1 A0 0x03
RxFIFO Entry MSB LSB
1
0x24 0x68 0xAC 0xEF
0
YY YY YY YY