15-12 Intel® PXA26x Processor Family Developer’s Manual
MultiMediaCard Controller
—MMC_CLKRT
—MMC_SPI
— MMC_RESTO
4. Start the clock
5. Write 0x7b to the MMC_I_MASK register and wait for and verify the
MMC_I_REG[END_CMD_RES] interrupt
6. Read the MMC_RES FIFO and MM C_STAT registers
Some cards may become busy as the result of a command. The software may wait for the card to
become not busy by writing the MMC_I_MASK register and waiti ng for the
MMC_I_REG[PRG_DONE] interrupt or the software can start communication to anoth er card.
The software may not access the same card again until the card is no longer busy . Refer to the
MultiMediaCard System Specification, Version 2.1 for additional informati on.
15.3.2 Data Transfer
A data transfer is a command and response sequence with the addition of a data transf er to a card.
Refer to the examples in Section15.4, “MultiMediaCard Controller Operation”.
The software must follow the steps as described in Section15.3.1, “Basic, No Data, Command and
Response Sequence”. In addition, before starting the clock, the software must write the following
registers as necessary.
MMC_RDTO
MMC_BLKLEN
MMC_NOB
After the software writes the registers and starts the clock, the software must read the MMC_RES
as described above and read or write the MMC_RXFIFO or MMC_TXFIFO FIFOs.
After completely reading or writing the data FIFOs, the software must wait for the appropriate
interrupts. The status register, MMC_STAT, must be read to ensure that the transaction is complete
and to check the status of the transaction.
When using DMA request signals, the controller indicates to the DMA when a FIFO is ready for
reading or writing. It is expected that all FIFO reads and writes will empty and fill the FIFO to
which it is connected. If at any time the MMC_TXFIFO is not fill ed (32 by tes) by the so ftwar e, t he
software must notify the controller by setting the MMC_PRTBUF[BUF_ PART_FULL]. The
software can write more bytes of data than is needed into the MMC_TXFIFO, but the controller
will only transmit the number of bytes in the MMC_BLKLEN register.
At the end of any data transfer or busy signal on the MMC bus, the MMC controller waits e ight
MMC clocks before asserting the MMC_I_REG[DATA_TRAN_DONE] interrupt to notify the
software that the data transfer is complete. This guarantees that the specified minimum of eight
MMC clocks occurs between a data transfer and the next command.
On write data transfers, a card may become busy while programming the data. The software may
wait for the card to become not busy by writing the MMC_I_MASK regis ter and waiting for the
MMC_I_REG[PRG_DONE] interrupt or the software can start communication to anoth er card.
Refer to the MultiMediaCard System Specification, Version 2.1 for additional information.