Перейти к содержанию
    

Работа с SD (Secure Digital)

Встала сейчас задача реализовать работу с SD карточкой на плате CyclonII Starter Kit - есть там карман для нее. Документацию прочитал, вроде разобрался, теперь хочу посоветоваться. Сам я в разработке цифровых устройств новичок, больше по другим направлениям, а этим занимаюсь для освоения и создания наработок на будущее. поэтому вопросы могут показаться странными. :)

 

Управлять работой с SD будет Nios, соответственно нужно делать компонент для него. А теперь основная проблема: никак не могу все это системно представить - какую часть задач возложить на ниос, а какую на компонент? Можно сделать компонент совсем простым - на уровне послать/принять один бит, а все остальные задачи оставить ниосу. Можно компонент усложнить. Протокол SD для меня, как новичка, достаточно сложный, посему пока не удается красиво разделить обязанности ниоса и компонента. Или я дурью маюсь? Поделитесь опытом/советом, пожалуйста! Если кто-нить имеет наработки в этой области и готов ими поделиться (r h n d [гав] m a i l . r u), то было бы вообще замечательно! :help: К сожалению, в слове SD всего две буквы, поэтому поиск по форуму затруднен. На опенкорес вообще ничего не нашел. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Совсем простым компонент делать я бы не стал. На него стоит, по крайней мере, возложить подсчет CRC (а он в четырехбитном режиме получается слишком навороченным для софта), работу с командами (послать команду - принять ответ) и блоками данных.

 

Можно посмотреть описания встроенных в МК SD-контроллеров - станет яснее, где "проложить границу".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно посмотреть описания встроенных в МК SD-контроллеров - станет яснее, где "проложить границу".

Интересная идея, спасибо!

 

Напомнить? => RHnd ;)

Спасибо за напоминание :), но в этой теме ответа нет. Зато поиск по SanDisc очень помог - открыл много нового, пошел читать. :)

 

 

 

Кто имеет опыт - поделитесь, а каковы реальные недостатки использования spi по сравнению с однобитным режимом? Ведь если они малы, то, наверное, будет проще сделать SPI и работать с картой с его помощью?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто имеет опыт - поделитесь, а каковы реальные недостатки использования spi по сравнению с однобитным режимом? Ведь если они малы, то, наверное, будет проще сделать SPI и работать с картой с его помощью?

По сравнению с однобитным режимом, у SPI особых недостатков, пожалуй, нет. Использовать можно, но это все-таки low-end решение, высокой производительности добиться не получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно посмотреть описания встроенных в МК SD-контроллеров - станет яснее, где "проложить границу".

to RHnd

отличный совет! прислушайтесь..

сам когда писал AES-core смотрел как сделаны ускоритель AES в SAM7X (в итоге позаимствовал оттуда разблюдовку регистров и значения конф.бит - и не маялся после с высасыванием из пальцев этих всех имён и значений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По сравнению с однобитным режимом, у SPI особых недостатков, пожалуй, нет. Использовать можно, но это все-таки low-end решение, высокой производительности добиться не получится.

Ну, учитывая, что я, как начинающий разработчик, сам нахожусь на уровне low-end, то вполне можно использовать более простые варианты для начала. А уже потом, разобравшись с карточкой по spi, делать SD-протокол. Или посоветуете сразу за полный протокол браться?

 

 

Можно посмотреть описания встроенных в МК SD-контроллеров - станет яснее, где "проложить границу".

А если конкретизировать, то кого именно и где именно посоветуете посмотреть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, учитывая, что я, как начинающий разработчик, сам нахожусь на уровне low-end, то вполне можно использовать более простые варианты для начала. А уже потом, разобравшись с карточкой по spi, делать SD-протокол. Или посоветуете сразу за полный протокол браться?

Разобраться, конечно, стоит. Можно даже на другой какой-нибудь железке отладить работу в режиме SPI - это очень поможет при реализации своего SD-host.

 

А если конкретизировать, то кого именно и где именно посоветуете посмотреть?

TMS320VC5509A, AT91SAM9261, еще можно посмотреть NXP (и бывший Sharp и собственные).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобраться, конечно, стоит. Можно даже на другой какой-нибудь железке отладить работу в режиме SPI - это очень поможет при реализации своего SD-host.

А зачем на другой?На этой же и сделаю. Сначала SPI - и с самой картой разберусь, не сильно зацикливаясь на возможных ошибках в интерфейсе (надеюсь :)), и решение готовое будет, ежели вдруг понадобится. А потом уже, поднабравшись опыта, и SD- интерфейс реализую. Вообщем, примерно так пока решил, так делать и буду, ежели не отговорят. :)

Образцов работы с SD по spi на форуме прилично, будет где посмотреть. Есть плюс, что spi-интерфейс буду делать чисто под SD, так что можно дополнительные опции в модуль добавить: поменять частоту на лету, ожидать нуля (стартового бита), ожидать отпускание бита busy. Ну и типовые типа передать команду и получить ответ. Вообщем, буду думать. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какую скорость чтения можно получить в четырехбитном режиме и SPI? Требуется 2 Мбайта/сек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какую скорость чтения можно получить в четырехбитном режиме и SPI? Требуется 2 Мбайта/сек.

4-х битный режим, частота 25 (или 50) МГц. если не учитывать расходы на команды, примерно 12,5 МБайт/с. но это только пропускная способность интерфейса. если внутри карточки запаяна медленная флешка, то скорость будет меньше. читайте доку на конкретную карточку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какую скорость чтения можно получить в четырехбитном режиме

8 - 9 MB/sec в режиме 4-bit SD, Read Multiple, при частоте тактирования 20MHz.

 

если внутри карточки запаяна медленная флешка, то скорость будет меньше. читайте доку на конкретную карточку.

Так а что читать, Speed Class крупно указан уже на упаковке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...