Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Команды управления SD/MMC картами?
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
Samodelkin
В доке на SD карты есть команды типа ACMD41. sad.gif
Понятно, что например команда CMD1 это стартовый седьмой бит "0", затем шестой бит напрвления "1", и затем нулевой бит "1". (0100 0001). Соответственно CMD2 это (01000010) и так далее.
А как должны выглядеть команды ACMD? В доке я ответа на этот вопрос не нашел.
Заранее спасибо всем кто откликнется.
globalist
Цитата
В доке на SD карты есть команды типа ACMD41.
Понятно, что например команда CMD1 это стартовый седьмой бит "0", затем шестой бит напрвления "1", и затем нулевой бит "1". (0100 0001). Соответственно CMD2 это (01000010) и так далее.
А как должны выглядеть команды ACMD? В доке я ответа на этот вопрос не нашел.
Заранее спасибо всем кто откликнется.


Команды ACMD имеют абсолютно тот же формат, что и CMD. ACMD означает application specific commands. Чтобы комманда стала ACMD перед ней должна быть передана комманда APP_CMD (CMD55).
Видимо Вы читали сокращенную версию. У меня есть полная (за которую денег просят), если хотите - могу прислать. А если поможете научить 80С51 или ARM7 эмулировать программно SDIO ( не host а контроллер устройства) - очень заинтересован в сотрудничестве.
Ниже цитата из полного описания SDIO по Вашему вопросу:

4.3.8 Application specific commands:
The SD Memory Card is defined to be protocol forward compatible to the MultiMediaCard Standard.
The SD Memory Card system is designed to provide a standard interface for a variety applications
types. In order to keep future compatibility to the MultiMediaCard standard together with new SD
Memory Card specific commands the SD Memory Card use the Application Specific commands feature
to implement its proprietary commands. Following is a description of the APP_CMD and
GEN_CMD as were defined in the MultiMediaCard spec.
• Application Specific Command – APP_CMD (CMD55)
This command, when received by the card, will cause the card to interpret the following command
as an application specific command, ACMD. The ACMD has the same structure as of regular
MultiMediaCard standard commands and it may have the same CMD number. The card will recognize
it as ACMD by the fact that it appears after APP_CMD.
The only effect of the APP_CMD is that if the command index of the, immediately, following command
has an ACMD overloading it, the non standard version will be used. If, as an example, a card
has a definition for ACMD13 but not for ACMD7 then, if received immediately after APP_CMD command,
Command 13 will be interpreted as the non standard ACMD13 but, command 7 as the standard
CMD7. In order to use one of the manufacturer specific ACMD’s the host will:
• Send APP_CMD. The response will have the APP_CMD bit (new status bit) set signaling to the
host that ACMD is now expected.
• Send the required ACMD. The response will have the APP_CMD bit set, indicating that the
accepted command was interpreted as ACMD. If a non-ACMD is sent then it will be respected
by the card as normal SD Memory Card command and the APP_CMD bit in the Card Status
stays clear.
If a non valid command is sent (neither ACMD nor CMD) then it will be handled as a standard SD
Memory Card illegal command error.
From the SD Memory Card protocol point of view the ACMD numbers will be defined by the manufacturers
with some restrictions. The following ACMD numbers are reserved for the SD Memory
Card proprietary applications and may not be used by any SD Memory Card manufacturer:
ACMD6, ACMD13, ACMD17-25, ACMD38-49, ACMD51.
Samodelkin
Цитата(globalist @ Sep 4 2006, 23:22) *
Команды ACMD имеют абсолютно тот же формат, что и CMD. ACMD означает application specific commands. Чтобы комманда стала ACMD перед ней должна быть передана комманда APP_CMD (CMD55).
Видимо Вы читали сокращенную версию. У меня есть полная (за которую денег просят), если хотите - могу прислать. А если поможете научить 80С51 или ARM7 эмулировать программно SDIO ( не host а контроллер устройства) - очень заинтересован в сотрудничестве.
Ниже цитата из полного описания SDIO по Вашему вопросу:


Большое спасибо, уже разобрался. Просто невнимательно читал доку. У меня дока с сайта призводителя версии 2.2.
А что значит "не host а контроллер устройства"? Имеете ввиду сэмитировать саму карту памяти? я думаю особых проблем быть не должно, только микроконтроллер прийдется брать с приличным обьемом памяти, ОЗУ и приличной тактовой, т.к. host долго ждать не будет пока контроллер выгрузит данные из своей памяти и передаст их в SPI.
globalist
Цитата
А что значит "не host а контроллер устройства"? Имеете ввиду сэмитировать саму карту памяти? я думаю особых проблем быть не должно, только микроконтроллер прийдется брать с приличным обьемом памяти, ОЗУ и приличной тактовой, т.к. host долго ждать не будет пока контроллер выгрузит данные из своей памяти и передаст их в SPI.


Именно. Хочу привязать АЦП к КПК. А на новых девайсах уже и CF слота нет (у меня, например, только SDIO и беспроводные, причем SDIO поддерживает собственно сам протокол SDIO и MMC, а SPI - шиш!). А я то губы раскатал - думал все элементарно. Короче, выход у меня один - заставить микроконтроллер изображать из себя карту SDIO или MMC, хоть с минимальным набором комманд , а это, как я понимаю, задача нетривиальная :-(
Samodelkin
Цитата(globalist @ Sep 6 2006, 23:24) *
Именно. Хочу привязать АЦП к КПК. А на новых девайсах уже и CF слота нет (у меня, например, только SDIO и беспроводные, причем SDIO поддерживает собственно сам протокол SDIO и MMC, а SPI - шиш!). А я то губы раскатал - думал все элементарно. Короче, выход у меня один - заставить микроконтроллер изображать из себя карту SDIO или MMC, хоть с минимальным набором комманд , а это, как я понимаю, задача нетривиальная :-(

Неужели нету какого-нибудь мини-USB?! Или аналога COM порта?!
Сэмулировать MMC или SD с минимальным набором команд особых проблем нет. Но КПК-шка может туда запрашивать кучу всяких данных и всевозможные каманды доступа, защиты и пр...! А это уже будет проблема, которая не стоит АЦП.
Можно между картой памяти и КПК проставить электронные ключи, на небольшое время переключать карту на контроллер с АЦП и в какойто файл класть измеренное значение АЦП, и возвращать карту в соединение с КПК. Делать это можно достаточно быстро! Не прийдется ничего эмулировать, не стоит АЦП того, чтобы из-за него так париться эмулировать SD\MMC карту!!!!
globalist
Цитата
Неужели нету какого-нибудь мини-USB?! Или аналога COM порта?!
Сэмулировать MMC или SD с минимальным набором команд особых проблем нет. Но КПК-шка может туда запрашивать кучу всяких данных и всевозможные каманды доступа, защиты и пр...! А это уже будет проблема, которая не стоит АЦП.
Можно между картой памяти и КПК проставить электронные ключи, на небольшое время переключать карту на контроллер с АЦП и в какойто файл класть измеренное значение АЦП, и возвращать карту в соединение с КПК. Делать это можно достаточно быстро! Не прийдется ничего эмулировать, не стоит АЦП того, чтобы из-за него так париться эмулировать SD\MMC карту!!!!


Увы, не все так просто. В последних КПК и комуникаторах под WinMobile 5.0 как правило есть только SDIO слот, даже CF перестали ставить. А USB только SLAVE для синхронизации с компом. А хотелось бы сделать устройство универсальным. В WinCE API самая "низкоуровневая" функция для SDIO, если не лезть в аппаратную реализацию - это послать комманду и получить ответ.
Если сама система пошлет что нибудь лишнее - можно просто игнорировать. Эмуляция MMC или SDIO программно - ИМХО практически невозможноая задача. Минимальная скорость CLK 400КГц, так что только линию переключать надо за 0,625uS, а при этом надо считать контрольную сумму и еще кучу разных вещей делать.
Переключать - мысль оригинальная, но здесь тоже есть сложности. Если карту загнать в SPI-mode (чтобы записать из АЦП) , то обратно карта выводится в SD (чтобы передать данные в КПК) только RESET'ом. Поэтому ключи будут переключаться быстро, а карта из режима в режим - долго. По моему так.
Наверное SDIO-MMC контроллер надо пробовать реализовать на ПЛМ. Кстати порылся в сети - похоже так и делают. Жаль что в этом сам не разбираюсь. Впрочем, попробую в соответствующий раздел сходить.
hserg
Народ, дайте, pls, ссылочку на MultiMediaCard system specification version 4.X
на мыло hserg@beholder.ru да и примеры какие желательно для PICа
Skyline
И мне тоже намыльте добрые люди на right506@gmail.com
Мухамёд
И мне помогите разобраться как с этими картами работать, что посоветуете прочитать?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.