Jump to content

    

OpenCores SD Card Controller

Здравствуйте! Всех разработчиков с прошедшими!

 

Прицепил данную корку (http://opencores.org/project,sdcard_mass_storage_controller). Программа зависает на стадии инициализации:

зацикливается посылка (CMD55 + ACMD41). Причем ответы на команды есть, но не снимается бит BUSY, т.е. инициализация не проходит.

 

шлются следующие команды:

CMD0

CMD8

while(BUSY)

{

CMD55

ACMD41

}

 

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

 

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

 

 

Share this post


Link to post
Share on other sites
кто-нибудь работал с SD?

 

 

Недавно делал, тоже были вопросы:тут спрашивал. После изучения кода, любезно предоставленного gk2 там же, все взлетело, заработало. Сейчас и файловая система пашет на этом ядре. Посмотрите, может полезно будет.

Share this post


Link to post
Share on other sites
Недавно делал, тоже были вопросы:тут спрашивал. После изучения кода, любезно предоставленного gk2 там же, все взлетело, заработало. Сейчас и файловая система пашет на этом ядре. Посмотрите, может полезно будет.

 

Спасибо)

Нашел свою ошибку:

ACMD41 нужно было посылать первый раз с нулевым параметром, а уже потом в цикле с указанием в параметре OCR напряжения питания.

 

Share this post


Link to post
Share on other sites

В общем и целом ядро работает. Единственная проблема, если между посылками команд не вставлять задержки порядка 20 us sd-карточка зависает. В спецификации ничего такого не нашел.

Share this post


Link to post
Share on other sites
В общем и целом ядро работает. Единственная проблема, если между посылками команд не вставлять задержки порядка 20 us sd-карточка зависает. В спецификации ничего такого не нашел.

Не наблюдал, команды шлю одну за другой, проц ниос на 80 МГц, всяко меньше 20us.

Share this post


Link to post
Share on other sites
Не наблюдал, команды шлю одну за другой, проц ниос на 80 МГц, всяко меньше 20us.

 

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

 

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

Хотелось бы по быстрее.

 

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

Share this post


Link to post
Share on other sites
Пока не разобрался с данным явлением. не понятно, кто зависает, ядро или sd-карта.

 

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

Хотелось бы по быстрее.

 

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

 

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

 

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

 

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

post-15968-1358437606_thumb.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this