User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 372
UG585 (v1.11) September 27, 2016
Chapter 13: SD/SDIO Controller
10. Wait for the transfer complete interrupt and DMA interrupt.
11. If Transfer Complete is set to 1, go to Step (14). If DMA Interrupt is set to 1 go to Step (12).
Transfer Complete has a higher priority than DMA Interrupt.
12. Write a 1 to the DMA Interrupt bit in the Normal Interrupt Status register to clear this bit.
13. Set the next system address of the next data position to the System Address register and go to
Step (10).
14. Write a 1 to the Transfer Complete and DMA Interrupt in the Normal Interrupt Status register to
clear this bit.
Note: Step (2) and Step (3) can be executed at same time. Step (5) and Step (6) can also be executed
at same time.
For example, if the host wants to transfer 4 KB of data to the card and assuming the maximum block
size is 256 bytes, the host driver programs the Block Size register as 256 and Block Count register
with the value 16. The AHB master and transmitter residing inside the SD2.0/SDIO2.0 host controller
get the information (how much data to transfer) from these registers. Using the above information,
the AHB master acts as a master and initiates a data read transaction (to read a block of data —
256 bytes from the system memory).
The following types of burst are used mainly to avoid hold of the AHB bus by the master for a longer
time.
Single transfer
4-beat incrementing burst
8-beat incrementing burst
The first block of data is received in the first half of the FIFO and the second block in the second half
of the FIFO. Similarly, the remaining blocks are received in alternate FIFOs. Whenever a block of data
is ready in FIFO, the transmitter starts transmitting the block of data (256 bytes) onto the SD bus.
After transmitting the entire block of data to the card, the transmitter waits for a status response
from the card. Transmitter sends the next block of data only when it receives a good status response
from the card for the previous block of data, otherwise the transaction is aborted and the host goes
for a fresh transaction.