Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MMC + AT91SAM9263 Не могу установить связь.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Amper25
Народ, у меня возникла такая проблема.

Необходимо привинтить MMC карту к данному MCU.
Уже 3 дня долбаюсь над тем, чтобы хотябы отправить хоть какую-то команду(CMD1 например) карточке и получить ответ.
Связь организовал не как обычно по SPI интерфейсу, а по встроенному MCI, специально предназначенному для работы с MMC и SD картами.

Я настроил все PIO, предназначеные для MCI на работу именно с MCI, а не с PIO.
Установил все конфигурационные регистры так как в datasheet указано.
А связи с карточкой нет. Тоесть при отправке на нее любой команды, ответ всегда 0x0000 0000.
На выводе Clock устанавливается меандр с той частотой, которую задал. А вот CMD линия стоит постоянно в "1".
Причем, даже если допускать, что карточка не реагирует на отправленную ей команду, CMD линия должна дергатся хотябы в момент запроса. А она стоит мертво в "1".

То-ли я скофигурировал что не правильно, то-ли полтергейст? smile3046.gif
Уже не знаю что делать, рвать волосы, и не только на голове? crying.gif

Может у кого есть примеры кода для MMC с применением MCI интерфейса?
Пусть даже криво работающие, но хоть как то.
Поделитесь, если не жалко?

--Компилятор: IAR for ARM V4.42
--Board: AT91SAM9263-EK - Evalution Kit.
--Карта MMCplus 2Gb. -( карт несколько, так что неисправность отпадает) То что она плюсовая тоже мало что меняет. Во первых, по документации они обратно совместимые. Да и вообще, я осциллом не вижу даже отправляемую команду не то что ответ.
--Слот для подключения MCI0 или MCI1 - без разнеицы.
--Частота Clock = 200kHz - для надежности.
Amper25
Ну что, неужели никто не пользуется MCI интерфейсом?
Все на SPI сидят? unsure.gif
etoja
Вот поэтому все на SPI и работают.
Amper25
Цитата
Вот поэтому все на SPI и работают.


Ну так MCI лучше(судя по описанию). Можно организовать передачу данныx в DMA режиме.
И пока интерфейс читает, проц занимается другими делами.
У меня как раз задача в том, чтобы обеспечить хорошую производительность, т.е. проц не может
постоянно отвлекатся на SPI + еще высчитывать CRC.

Или вы имеете в виду, что MCI - изначально мёртвый и по этому его не пользуют?
Хотя в Errata об этом ни слова не сказано. Странно ... unsure.gif
etoja
В режиме SPI ненужно вычислять CRC.
Карточки MMC+ умеют работать на тактовых частотах до 50МГц и прием/передачу можно организовать по прерыванию.
Dron_Gus
Клок на периферию подать не забыли?
А вообще без Вашего кода - тыканье пальцем в небо.
Amper25
Цитата
Клок на периферию подать не забыли?

- Ну я же не полный идиот.

Ладно спасибо всем за внимание, буду делать все на SPI, уговорили. И проще и прозрачней все как-то.
Да и с портабельностью на другие MCU проблем меньше будет.

А, единственный, вопрос по SPI. Там все команды byte aligned? или не все?
Не возникнет ли ситуация когда ответ на команду приходит через 5 SCK клоков?
Если так, то это просто жопа получится. 07.gif

В документации время ожидания ответа указано в в формате не кратном 8.
NAC=
MIN: 1;
MAX: [10*((TAAC*f)+(100*NSAC))]*1/8;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.