837
32072H–AVR32–10/2012
AT32UC3A3
31.6.4.4
READ_MULTIPLE_BLOCK
1.
Wait until the current command execution has successfully terminated.
a.
Check that the SR.CMDRDY and the SR.NOTBUSY are set.
2.
Write the block length in the card. This value defines the value block_lenght.
3.
Write the MR.BLKLEN with block_lenght value.
4.
Program the DMA Controller to use a list of descriptors.
5.
Write the DMA register with the following fields:
– Write zero to the DMA.OFFSET
.
– Write the DMA.CHKSIZE.
– Write a one to the DMA.DMAEN bit to enable DMA hardware handshaking in the
MCI.
6.
Write a one to the IER.DMADONE bit.
7.
Issue a READ_MULTIPLE_BLOCK command.
8.
Wait for DMA end of chained buffer transfer interrupt.
31.6.5
SD/SDIO Card Operation
The MCI allows processing of SD Memory (Secure Digital Memory Card) and SDIO (SD Input
Output) Card commands.
SD/SDIO cards are based on the MultiMedia Card (MMC) format, but are physically slightly
thicker and feature higher data transfer rates, a lock switch on the side to prevent accidental
overwriting and security features. The physical form factor, pin assignment and data transfer
protocol are forward-compatible with the MultiMedia Card with some additions. SD slots can
actually be used for more than flash memory cards. Devices that support SDIO can use small
devices designed for the SD form factor, such as GPS receivers, Wi-Fi or Bluetooth adapters,
modems, barcode readers, IrDA adapters, FM radio tuners, RFID readers, digital cameras and
more.
SD/SDIO is covered by numerous patents and trademarks, and licensing is only available
through the Secure Digital Card Association.
The SD/SDIO Card communication is based on a nine-pin interface (Clock, Command,
four Data and three Power lines). The communication protocol is defined as a part of this speci-
fication. The main difference between the SD/SDIO Card and the MultiMedia Card is the
initialization process.
The SD/SDIO Card Register (SDCR) allows selection of the Card Slot (SDCSEL) and the data
bus width (SDCBUS).
The SD/SDIO Card bus allows dynamic configuration of the number of data lines. After power
up, by default, the SD/SDIO Card uses only DAT[0] for data transfer. After initialization, the host
can change the bus width (number of active data lines).
31.6.5.1
SDIO Data Transfer Type
SDIO cards may transfer data in either a multi-byte (1 to 512 bytes) or an optional block format
(1 to 511 blocks), while the SD memory cards are fixed in the block transfer mode. The
CMDR.TRTYP field allows to choose between SDIO Byte or SDIO Block transfer.
The number of bytes/blocks to transfer is set through the BCNT field in the BLKR register. In
SDIO Block mode, the field BLKLEN must be set to the data block size while this field is not
used in SDIO Byte mode.