реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> OpenCores SD Card Controller
Cont
сообщение Jan 7 2013, 20:37
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



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

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

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

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

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

Go to the top of the page
 
+Quote Post
alexPec
сообщение Jan 8 2013, 10:16
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



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



Недавно делал, тоже были вопросы:тут спрашивал. После изучения кода, любезно предоставленного gk2 там же, все взлетело, заработало. Сейчас и файловая система пашет на этом ядре. Посмотрите, может полезно будет.
Go to the top of the page
 
+Quote Post
Cont
сообщение Jan 9 2013, 08:41
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



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


Спасибо)
Нашел свою ошибку:
ACMD41 нужно было посылать первый раз с нулевым параметром, а уже потом в цикле с указанием в параметре OCR напряжения питания.
Go to the top of the page
 
+Quote Post
Cont
сообщение Jan 14 2013, 07:06
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



В общем и целом ядро работает. Единственная проблема, если между посылками команд не вставлять задержки порядка 20 us sd-карточка зависает. В спецификации ничего такого не нашел.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Jan 15 2013, 13:08
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



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

Не наблюдал, команды шлю одну за другой, проц ниос на 80 МГц, всяко меньше 20us.
Go to the top of the page
 
+Quote Post
Cont
сообщение Jan 17 2013, 07:15
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



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


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

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

Мост wishbone - avalon делали сами?
Go to the top of the page
 
+Quote Post
alexPec
сообщение Jan 17 2013, 15:59
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(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 раза повысить, если карта позволит, но мне хватает выше крыши, поэтому не стремился сделать быстро.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 13:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016