Learn Multi Media Card Library (MMC) In Pic Microcontrollers

Explain and How To Use Multi Media Card Library (MMC) and Interfacing With Pic Microcontrollers

Learn Multi Media Card Library (MMC) In Pic Microcontrollers


32 mins


Jul 2021

Last Update
Regular Price

Unlimited access to 30 000 Premium SkillShare courses

What you will learn

Multi Media Card (MMC) Library

Create any project using MMC/SD Card


Multi Media Card Library

The Multi Media Card (MMC) is a Flash memory card standard. MMC cards are currently available in sizes up to and including 32 GB and are used in cellular phones, digital audio players, digital cameras and PDA’s.
mikroC PRO for PIC provides a library for accessing data on Multi Media Card via SPI communication. This library also supports SD (Secure Digital) and high capacity SDHC (Secure Digital High Capacity) memory cards .

Secure Digital Card

Secure Digital (SD) is a Flash memory card standard, based on the older Multi Media Card (MMC) format.
SD cards are currently available in sizes of up to and including 2 GB, and are used in digital cameras, digital camcorders, handheld computers, media players, mobile phones, GPS receivers, video games and PDAs.

Secure Digital High Capacity Card

SDHC (Secure Digital High Capacity, SD 2.0) is an extension of the SD standard which increases card's storage capacity up to 32 GB by using sector addressing instead of byte addressing in the previous SD standard.
SDHC cards share the same physical and electrical form factor as older (SD 1.x) cards, allowing SDHC-devices to support both newer SDHC cards and older SD-cards. The current standard limits the maximum capacity of an SDHC card to 32 GB.

Important :

  • Routines for file handling can be used only with FAT16 file system.

  • Library functions create and read files from the root directory only.

  • Library functions populate both FAT1 and FAT2 tables when writing to files, but the file data is being read from the FAT1 table only; i.e. there is no recovery if the FAT1 table gets corrupted.

  • If MMC/SD card has Master Boot Record (MBR), the library will work with the first available primary (logical) partition that has non-zero size. If MMC/SD card has Volume Boot Record (i.e. there is only one logical partition and no MBRs), the library works with entire card as a single partition. For more information on MBR, physical and logical drives, primary/secondary partitions and partition tables, please consult other resources, e.g. Wikipedia and similar.

  • Before write operation, make sure you don’t overwrite boot or FAT sector as it could make your card on PC or digital camera unreadable. Drive mapping tools, such as Winhex, can be of a great assistance.

  • Library uses SPI module for communication. The user must initialize the appropriate SPI module before using the MMC Library.

  • For MCUs with multiple SPI modules it is possible to initialize all of them and then switch by using the SPI_Set_Active() function. See the SPI Library functions.

  • MMC FAT 16 Library works with PIC18 family only.

The SPI module has to be initialized through SPIx_Init_Advanced routine with the following parameters:

  • SPI Master

  • Primary prescaler 64

  • Data sampled in the middle of data output time

  • Clock idle low

  • Serial output data changes on transition form low to high edge


Multi Media Card Library (MMC)

1- Create New Projects in MicroC Program

2- What is The Multi Media Card Library (MMC)

3- What is The Secure Digital Card (SD)

4- What is Secure Digital High Capacity Card (SDHC)

5- Importants Before Using MMC Library

6- Library Dependency Tree

7- Explain Mmc_Init() Functions Or Routines

8- Explain Mmc_Read_Sector() Routines

9- Explain Mmc_Write_Sector() Routine

10- Explain Mmc_Read_Cid() Routine

11- Explain Mmc_Read_Csd() Routine

12- Explain Mmc_Multi_Read_Start() Routine

13- Explain Mmc_Multi_Read_Sector() Routine

14- Explain Mmc_Multi_Read_Stop() Routine

15- Explain Mmc_Fat_Init() Routine

16- Explain Mmc_Fat_QuickFormat() Routine


Udemy ID


Course created date


Course Indexed date
Course Submitted by