Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: OpenCores SD Card Controller
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Cont
Здравствуйте! Всех разработчиков с прошедшими!

Прицепил данную корку (http://opencores.org/project,sdcard_mass_storage_controller). Программа зависает на стадии инициализации:
зацикливается посылка (CMD55 + ACMD41). Причем ответы на команды есть, но не снимается бит BUSY, т.е. инициализация не проходит.

шлются следующие команды:
CMD0
CMD8
while(BUSY)
{
CMD55
ACMD41
}

напряжение +3.3

кто-нибудь работал с SD?

alexPec
Цитата(Cont @ Jan 8 2013, 00:37) *
кто-нибудь работал с SD?



Недавно делал, тоже были вопросы:тут спрашивал. После изучения кода, любезно предоставленного gk2 там же, все взлетело, заработало. Сейчас и файловая система пашет на этом ядре. Посмотрите, может полезно будет.
Cont
Цитата(alexPec @ Jan 8 2013, 14:16) *
Недавно делал, тоже были вопросы:тут спрашивал. После изучения кода, любезно предоставленного gk2 там же, все взлетело, заработало. Сейчас и файловая система пашет на этом ядре. Посмотрите, может полезно будет.


Спасибо)
Нашел свою ошибку:
ACMD41 нужно было посылать первый раз с нулевым параметром, а уже потом в цикле с указанием в параметре OCR напряжения питания.
Cont
В общем и целом ядро работает. Единственная проблема, если между посылками команд не вставлять задержки порядка 20 us sd-карточка зависает. В спецификации ничего такого не нашел.
alexPec
Цитата(Cont @ Jan 14 2013, 11:06) *
В общем и целом ядро работает. Единственная проблема, если между посылками команд не вставлять задержки порядка 20 us sd-карточка зависает. В спецификации ничего такого не нашел.

Не наблюдал, команды шлю одну за другой, проц ниос на 80 МГц, всяко меньше 20us.
Cont
Цитата(alexPec @ Jan 15 2013, 17:08) *
Не наблюдал, команды шлю одну за другой, проц ниос на 80 МГц, всяко меньше 20us.


Пока не разобрался с данным явлением. не понятно, кто зависает, ядро или sd-карта.

Так же хотелось бы поинтересоваться какая у вас получилась скорость чтения/записи. (у меня порядка 1Мб/c - чтение и 200Кб/с - запись).
Хотелось бы по быстрее.

Мост wishbone - avalon делали сами?
alexPec
Цитата(Cont @ Jan 17 2013, 11:15) *
Пока не разобрался с данным явлением. не понятно, кто зависает, ядро или sd-карта.

Так же хотелось бы поинтересоваться какая у вас получилась скорость чтения/записи. (у меня порядка 1Мб/c - чтение и 200Кб/с - запись).
Хотелось бы по быстрее.

Мост wishbone - avalon делали сами?


Ну если это мост, то сам sm.gif (картинка)

Когда отлаживал на ките 3С25 ядро - был стабильный случай: При старте кит загружается своим приложением - application loader, оно ищет файлы на sd-карте. Если после того, как китовское приложение поищет файлы питание с флешки не снимешь (не выткнешь-воткнешь) то у меня инициализация не проходила ни за что (нет ответа карты). Если апликэйшн лодеру не давать лезти к карте (втыкать карту после того как сконфигурируешь ПЛИС), то все ок. И так на трех картах разных одно и то же. Залазит в какой-то режим видимо и перестает на все отвечать... Не разбирался глубже, потому как при работе глюков не наблюдал.

Запись не тестировал, а чтение - 500 кбайт/сек. Не оптимизировал ничего. Сюда входит: отправка команды чтения сектора, чтение данных сектора в служебный буфер, копирование данных из служебного буфера в пользовательский. Все без ДМА. Командами memcpy. Проц 80 МГц, память внешняя 16бит асинхронная, хотя сделал подключение ядра к сопцу тупо - использую только 8 бит слова, остальные нули. Если причесать/прилизать - можно в 4 раза повысить, если карта позволит, но мне хватает выше крыши, поэтому не стремился сделать быстро.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.