История
Изначальная версия стандарта MMC была разработана в 1996 компаниями Siemens и SanDisk. MMC 2.0 появился в 1999, 3.0 — в 2001 году. На базе MMC был разработан стандарт Secure Digital; SD 1.0 был официально совместим с MMC 2.11.
В MMC 4.0 (2003 год) были введены режимы с 4-разрядной и 8-разрядной шинами, значительно увеличившие возможные скорости, однако 8-битная шина поддерживается крайне редко.
В 2008 году контроль над стандартом MMC полностью получила организация EIA JEDEC. В версии MMC 4.3 был представлен новый вариант eMMC (embedded MMC – встроенная ММС), предназначенный для применений, когда модуль памяти припаивается к печатной плате устройства. Несмотря на измененный форм-фактор, протокол и возможности у eMMC и MMC совпадают.
В марте 2009 года компания JEDEC опубликовала версию 4.4.
В марте следующего года JEDEC представила версию 4.41.
15 июня 2011 года компания JEDEC опубликовала версию 4.5.
В июне 2012 года компания JEDEC представила стандарт 4.51.
1 октября 2013 года JEDEC опубликовала стандарт 5.0.
24 февраля 2015 года компания JEDEC представила новый стандарт носителя 5.1.
Интерфейс
Для подключения используются следующие шины.
VSS (GND) - земля
VCC(VDDF) - питание ядра, нанд, микроконтроллера = 2.7v-3.6v
VCCQ(VDD) - питание интерфейса = 1.7v-1.95v или 2.7v-3.6v
CMD - двусторонняя шина передачи и приёма команд
CLK - тактовая, за один такт CLK , передаётся по одному биту (1X скорость передач данных) или по два ( двойная плотность передачи данных).
D0-D7 - шины передачи и приёма данных
RST - линия сброса. Может быть программно установлена зависимость микросхемы от этой шины - 162 бит в extCSD. Если там прописана 1, то на этой шине обязательно должна быть 1 - важно при подключении микросхемы в isp режиме. В большинстве случаев эта шина подтянута резистором к питанию, но встречаются аппараты, где этой шиной управляет процессор, в этом случае, для подключения в isp режиме нужно подавать штатное питание и останавливать процессор или переводить его в третье состояние через reset.
Режимы работы
После подачи питания, процессор инициализирует микросхему посылая  команду по шине CMD, и получает от микросхемы ответ в виде набора данных по этой же линии.
Основной набор команд, всегда можно подсмотреть в спецификации.
Нас, как пользователей интересуют  в первую очередь режимы загрузки и ширина шины.
Режим загрузки (PARTITION CONFIG)
Загрузчик может располагаться либо в USER области, либо в разделах BOOT1 или BOOT2. Как процессор узнаёт откуда ему считывать загрузчик?
Для начала операции загрузки , ХОСТ должен держать CMD линию в низком уровне на протяжении минимум 74 такта CLK
после включения питания или операции сброса командной cmd1. eMMC распознает
последовательность и начинает подготовку загрузочных данных внутри. ( BOOT1 , BOOT2 или MAIN раздел в зависимости от бита BOOT CFG
Операция загрузки заключается в отправке загрузочных данных на хост по DAT
линиям последовательно на большой скорости . ХОСТ должен удерживать линию CMD в низком уровне , чтобы получить все данные BOOT.
Установка регистра PARTITION_CONFIG позволяет eMMC карте получать подтверждение загрузки
Также загрузка может быть реализована софтом процессора, когда процу всё равно, что прописано в бут регистрах. Он будет читать USER раздел. На практике встречались аппараты где
PARTITION CONFIG = 0x0
Device not boot enabled
А загрузка всё равно происходила с USER области.
Ширина шины (BOOT BUS WIDTH)
Ширина шины данных во время загрузки.  Определяет, будут ли линии данных сконфигурированы для передачи  данных с одной скоростью с использованием обратного или высокоскоростного тайминга, или режима двойной скорости передачи данных во время загрузки.
Разделы
RPMB (Replay Protected Memory Block) -работать с этим разделом возможно только зная ключ.
BOOT1  и BOOT2 - могут не использоваться в зависимости от конфигурации
USER - пользовательский раздел, может делиться на 4 раздела GP0,GP1,GP2,GP3
Служебная информация
CID (Card identification data)- содержит данные, по которым можно идентифицировать карту памяти (серийный номер, ID производителя, дату изготовления имя микросхемы и.т.д.), длина 16 байт. Встречаются аппараты где в загрузчике прописано имя микросхемы, при замене микросхемы на не аналогичную, приходится прописывать CID от такой же микросхемы или от родной, если его удаётся вычитать.
CSD (Card-specific data)- содержит различную информацию о карте памяти (от размера сектора карты памяти до потребления в режиме чтения/записи). Длинна 16 байт.
extCSD (Extended Card-specific data) - содержит всевозможную информацию о карте памяти , которая не влезла в CSD. Длинна 512 байт. Достаточно длинный регистр - но основная его часть ReadOnly - никогда не меняются и прописаны еще на заводе. Именно в нём мы прописываем важные значения определяющие режимы работы eMMC.
Partition Config
Boot Bus Width
Rst_n_Function - будьте внимательны, при работе с этим пунктом, меняется только один раз.