NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
StarterWare MMC
Introduction[edit]
Multimedia card high-speed/secure data/secure digital I/O (MMC/SD/SDIO) host controller, which provides an interface between microprocessor and either MMC, SD memory cards, or SDIO cards. The salient features of the aforementioned HS-MMC host controller are:
- Full Compliance with MMC4.3 and SD/SDIO 2.0 command/response sets as defined in the Specification.
- 1-bit, 4-bit and 8-bit MMC/SD/SDIO modes. ('Note:' 8-bit mode is only for MMC)
- Built-in 1024-byte buffer for read or write
- 32-bit-wide access bus to maximize bus throughput
- Single interrupt line for multiple interrupt source events
- Two slave DMA channels (1 for TX, 1 for RX)
- Designed for low power and Programmable clock generation
- Maximum operating frequency of 48MHz
- MMC/SD card hot insertion.
Programming[edit]
Following are the steps to follow to initialize the controller for device access ---
- Check the presence of the card using HSMMCSDIsCardInserted()., If card is present, follow the below steps for controller inittialization.
- Reset the controller using HSMMCSDSoftReset().
- Reset the controller lines using HSMMCSDLinesReset.
- Set the supported voltages using HSMMCSDSupportedVoltSet().
- Enable the AutoIdle mode using HSMMCSDSystemConfig().
- Set the bus width using HSMMCSDBusWidthSet().
- Set the bus voltage using HSMMCSDBusVoltSet().
- Power on the bus using HSMMCSDBusPower().
- Set the output bus frequency using HSMMCSDBusFreqSet()
- Send the INIT stream to the card using HSMMCSDInitStreamSend().
- Enable the command completion, command timeout, data timeout and transfer completion interrupt using HSMMCSDIntrEnable()