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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос по карте SD, У кого есть опыт - подскажите
RHnd
сообщение May 23 2007, 18:34
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Возник у меня вопрос по работе с SD. Карта памяти подключена к циклону в 1-битном режиме, он должен записать на нее 1Kb не более чем за 500 мкс. Успеет ли? Читал документацию на SDIO (ксатати, совсем запутался - SD и SDIO - одно и то же?), там есть фраза про 10 Mb/s, но она, как мне показалась, относится только к 4-х битном режиму. Документацию брал на сайте сандиска, она там упрощенная. Где искать полную?
PS: Если ошибся подфорумом, то направьте, плиз. smile.gif

Да, если не может, то какую карту лучше использовать? Главное - минимум места на плате. Второе - простота разработки. smile.gif

Сообщение отредактировал RHnd - May 23 2007, 18:35
Go to the top of the page
 
+Quote Post
InvisibleFed
сообщение May 23 2007, 23:54
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469



Цитата(RHnd @ May 24 2007, 05:34) *
Возник у меня вопрос по работе с SD. Карта памяти подключена к циклону в 1-битном режиме, он должен записать на нее 1Kb не более чем за 500 мкс. Успеет ли? Читал документацию на SDIO (ксатати, совсем запутался - SD и SDIO - одно и то же?), там есть фраза про 10 Mb/s, но она, как мне показалась, относится только к 4-х битном режиму. Документацию брал на сайте сандиска, она там упрощенная. Где искать полную?
PS: Если ошибся подфорумом, то направьте, плиз. smile.gif

Да, если не может, то какую карту лучше использовать? Главное - минимум места на плате. Второе - простота разработки. smile.gif


Случаем не эту брали? Эта вроде достаточно полна. Я тоже только сел разгребать SD. Как я понял, SDIO - интерфейс. Там по нему оказывается (я не знал) можно всякие мобильные тв-тюнеры и видеокамеры подключать.

Блин, чего-то не могу 1 Мб файл залить, система форума выкидывает. Поищите на этом же форуме (я делал запрос "SD") - в одной из тем есть ссылка на страничку с этим файлом, вчера грузил. Название файла ProdManualSDCardv1.9.pdf
Go to the top of the page
 
+Quote Post
RHnd
сообщение May 24 2007, 04:15
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(InvisibleFed @ May 24 2007, 03:54) *
Блин, чего-то не могу 1 Мб файл залить, система форума выкидывает. Поищите на этом же форуме (я делал запрос "SD") - в одной из тем есть ссылка на страничку с этим файлом, вчера грузил. Название файла ProdManualSDCardv1.9.pdf

Нет, у меня SD_SDIO_specsc1.pdf на 300 Kb. Если не сложно, то залейте свой мануал на rhnd(буква а в кружочке)mail.ru.
Go to the top of the page
 
+Quote Post
InvisibleFed
сообщение May 24 2007, 05:22
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469



Уже там.

Кстати. По какому интерфейсу у Вас подключена карта (SDIO или SPI)? Интерфейс сами писали или уже на циклонах был готовый? Если сами - я все понимаю, не поделитесь ли исходниками? Клянусь, что буду использовать их только в учебных целях - препод дал задание организовать обмен Amtel FPSLIC <-> SD. Причем надо интерфейс на программируемой логике реализовать, а не использовать готовый. Времени маловато просто.
Go to the top of the page
 
+Quote Post
Victor
сообщение May 24 2007, 06:00
Сообщение #5


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

Группа: Свой
Сообщений: 122
Регистрация: 21-02-05
Из: Питер
Пользователь №: 2 811



Математика такая:
По спецификации карточка работает на 25МГц -> на 500мкс - 12500 тактов.
(если High Speed - 50 МГц, множь на 2 smile.gif )

1кб - 8192 бит полезной нагрузки. + около 120-150 тактов на команду, ответ карты и прочий "обвес".
(NB! это только если карта поддерживает 1кб размер блока, если же блок 512 байт, то читай дальше smile.gif ).

Так что в идеале "проглотить" карточка успеет. Только вот после передачи блока карта "задумается" достаточно надолго - зависит от скорости записи карты, и пока не запишется блок, никаких операций не произвести.


--------------------
Dies diem docet.
Go to the top of the page
 
+Quote Post
RHnd
сообщение May 24 2007, 19:18
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(InvisibleFed @ May 24 2007, 09:22) *
Уже там.

Кстати. По какому интерфейсу у Вас подключена карта (SDIO или SPI)? Интерфейс сами писали или уже на циклонах был готовый? Если сами - я все понимаю, не поделитесь ли исходниками? Клянусь, что буду использовать их только в учебных целях - препод дал задание организовать обмен Amtel FPSLIC <-> SD. Причем надо интерфейс на программируемой логике реализовать, а не использовать готовый. Времени маловато просто.

На сколько я успел разобраться, подключенна она по SPI. А вот поделиться нечем - ничего, кроме идей как оно должно быть, нету.

Цитата(Victor @ May 24 2007, 10:00) *
Математика такая:
По спецификации карточка работает на 25МГц -> на 500мкс - 12500 тактов.
(если High Speed - 50 МГц, множь на 2 smile.gif )
1кб - 8192 бит полезной нагрузки. + около 120-150 тактов на команду, ответ карты и прочий "обвес".
(NB! это только если карта поддерживает 1кб размер блока, если же блок 512 байт, то читай дальше smile.gif ).
Так что в идеале "проглотить" карточка успеет. Только вот после передачи блока карта "задумается" достаточно надолго - зависит от скорости записи карты, и пока не запишется блок, никаких операций не произвести.

Оппа. А на сколько она может задуматься?
Правильно ли я понимаю, что если я возьму какую-нить карточку Hi-speed с блоком 1024, то у меня уйдет на это дело порядка 160мкс? Если не хайспид, то 320? Кстати, не знаю, принципиально ли это, но FAT делать на карточке не планируется - совместимость со стандартными ридерами не предполагается, там отдельное устройство будет. Хватит ли оставшегося времени карточке, чтоб переварить эти данные? Если не хватит, то какое решение можете посоветовать в рамках моего проекта?
Описание проекта:
Задача такая - к нам поступают данные в параллельном 8-ми битном коде. Данные эти поступают со скоростью 5MHz, но тут есть одна особенность. Данные поступают пакетами по 2700 байт, однако полезных из них только 1024. Полезные байты сопровождаются разрешающим окном на отдельной ножке, причем изначально нельзя сказать где находятся эти байты среди всего пакета. На данный момент эти 1024 полезных символов идут подряд, но, в перспективе, это условие может нарушиться. Итого, длинна одного пакета - 2700*200нс=540мкс. Между пакетами есть пауза. Фактически она может достигать очень больших величин, вплоть до размера пакета, но в предельном случае можно гарантировать минимальную длительность паузы 2000нс. Итого, считаем пакет+пауза = 542 мкс. Эти данные нужно скинуть на карточку, а в качестве карточки была выбранна SD. Изначально планировалось эти данные кидать в SDRAM, а уже потом, когда пакеты кончатся (ориентировочное количество было - 2048 пакетов), закинуть на карту. Но тут заказчик выразил пожелание на такие количества пакетов подряд, что памяти надо под несколько сотен мегов. Была идея кидать пакеты впрямую на карту, в связи с чем вопрос и возник.
Я планировал сделать так: две фифошки по килобайту, пакеты пишутся в них по очереди. Соответственно, пока пишется в одну, из второй данные гонятся на карточку, потом наоборот - пишется в другую, а данные гонятся из первой. И так пока пакеты не кончатся. Так как опыта в проектирование циврофых систем на ПЛИС не имею (только микроконтроллеры), то даже не знаю, правильный ли подход или нет. smile.gif

Сообщение отредактировал RHnd - May 24 2007, 19:22
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 24 2007, 20:05
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(RHnd @ May 23 2007, 21:34) *
Возник у меня вопрос по работе с SD.

1. Про банальный SPI интерфейс забываем сразу - невероятно, что на этом интерфейсе поддерживается хоть какая-то не минимальная функциональность.
2. Читаем про SD Speed Class 2/4/6 и ищем маркированные таким образом карточки. Всякие Hi-Speed цифири скорость записи не нормируют - это скорость обмена.
3. Ну типа если SDIO удастся поднять и Class 4 можно и потробовать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
RHnd
сообщение May 24 2007, 20:24
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(zltigo @ May 25 2007, 00:05) *
3. Ну типа если SDIO удастся поднять и Class 4 можно и потробовать.

Есть разница - однобитовый или 4-х битовый? Если 4-х битовый, то, читая упрощенную спецификацию SDIO, вижу, что DAT[1] и DAT[2] помечены как optional. Если их нет, то на сколько это повлияет на скорости в моей задаче? Просто на макетной плате они not connected, так что протестировать их использование я не смогу. На реальной плате их можно подключить, но прежде чем пойдет реальная плата, я должен на макете показать работоспособность. sad.gif
Кстати, к ним можно припаяться и протянуть проводок до одного из пинов циклона, забитых на отладочной плате под всякую фигню типа лампочек или слотов расширения. Тогда контакт = трасса по плате, примерно равная трассе до остальных пинов SD-слота + проводок сантиметров 5-7 в воздухе. Заработает?

Сейчас подумал: пин, который в SDIO 4 bit mode помечен как DAT[1], на плате не подключен. Этот пин получается 8, а в режимах SDIO 1 bit и SPI он требуется для interrupt. Т.е. получается, что на данной плате я могу с SD работать только в SDIO 4 bit mode, так что ли?

Сообщение отредактировал RHnd - May 24 2007, 20:28
Go to the top of the page
 
+Quote Post
Victor
сообщение May 25 2007, 10:49
Сообщение #9


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

Группа: Свой
Сообщений: 122
Регистрация: 21-02-05
Из: Питер
Пользователь №: 2 811



Цитата
Есть разница - однобитовый или 4-х битовый?

Только в скорости передачи блока данных, т.к. команды и busy все равно идут по cmd и dat[0].
т.о. вместо 1024*8 = 8192 тактов на блок будет 1024*8/4 2048 тактов на блок - остальной обвес остается тем-же (16 тактов crc, команда+респонс и пр.). По большому счету, если тактовая высокая, то разница мало заметна - время "задумчивости" карты несколько больше времени записи одного блока. Если я правильно помню, то раз этак в 10.

Цитата
DAT[1] и DAT[2] помечены как optional

4-бит режим не будет работать без них smile.gif)) Данные в SD-4bit mode передаются по всем четырем линиям.

Цитата
Тогда контакт = трасса по плате, примерно равная трассе до остальных пинов SD-слота + проводок сантиметров 5-7 в воздухе. Заработает?

Для отладки протокола можно вообще слот SD на проводках подпаять к выводам ПЛИС. Только тактовую не задирайте сразу на 25МГц smile.gif Время записи можно и на маленькой скорости посмотреть - даже удобнее - тактов меньше smile.gif.

Цитата
Про банальный SPI интерфейс забываем сразу - невероятно, что на этом интерфейсе поддерживается хоть какая-то не минимальная функциональность.

в SPI режиме поддерживаются все функции, ну или я не увидел _какие именно_ функции не поддерживаются. Вопрос только в скорости и протоколе.

Цитата
Кстати, не знаю, принципиально ли это, но FAT делать на карточке не планируется

это не принципиально smile.gif

Цитата
Оппа. А на сколько она может задуматься?

это зависит от скорости записи во флэш-память на карточке smile.gif
high-speed и не high-speed четко отличаются только максимальной тактовой, это да 25 и 50 МГц. Точно можно сказать, что отправить блок данных на high-speed карте вы сможете в 2 раза быстрее, но на то, что она его запишет в 2 раза быстрее я бы не рассчитывал. Предлагаю взять и попробовать smile.gif завести карточку в любом режиме - отправить блок данных на запись и посмотреть сколько тактов она держит busy после заливки блока. Я точно не помню, а посмотреть смогу только к середине след. недели.

Цитата
к нам поступают данные в параллельном 8-ми битном коде. Данные эти поступают со скоростью 5MHz

Если я правильно понял, то предельная теоретическая скорость получения данных 5Мб/с. Speed class 6 должна обеспечить такую скорость записи (но не забывайте, что вобщем случае это скорость записи на пустую карту smile.gif ). Думаю, что если с перерывами, то и Speed class 4 может подойти, тут уж вопрос в разнице цены.


--------------------
Dies diem docet.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 25 2007, 11:20
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Victor @ May 25 2007, 13:49) *
в SPI режиме поддерживаются все функции, ну или я не увидел _какие именно_ функции не поддерживаются.

В документе, в котором Вы не увидели разницы есть хотя-бы уже поминание "SD Speed Class" ?
А что, получая десяток другой мегабит в секунду карточка будет налкту во Flash писать? Полагаю, что в буфер и пока она будет меееедленно получать по SPI блок данных она будет просто терять время и говорить о скоростях записи полагаю не придется.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Victor
сообщение May 25 2007, 13:45
Сообщение #11


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

Группа: Свой
Сообщений: 122
Регистрация: 21-02-05
Из: Питер
Пользователь №: 2 811



Цитата(zltigo @ May 25 2007, 15:20) *
В документе, в котором Вы не увидели разницы есть хотя-бы уже поминание "SD Speed Class" ?

Speed Class Specification
As opposed to SD mode, the card cannot guarantee its Speed Class. In SPI mode, host shall treat the
card as Class 0 no matter what Class is indicated in SD Status.

cannot guarantee еще не значит, что карта будет писАть со скоростью 100Кб/с...

еще одна цитата:
The Class 0 card provides no guarantee to be compliant to the Speed Class Specification. It does not report performance parameters even if the cards can achieve performance of higher speed classes.

Цитата
А что, получая десяток другой мегабит в секунду карточка будет налету во Flash писать?

А вы полагаете, что в SD-4bit режиме она будет налету во флэш писАть? Будет точно так же после записи блока выдавать busy пока идет запись во флэш.

Цитата
Полагаю, что в буфер и пока она будет меееедленно получать по SPI блок данных она будет просто терять время и говорить о скоростях записи полагаю не придется.

Прошу вас объяснить подробнее, что значит "меееедленно"?

Bus timing is identical to SD mode. The timing of the CS signal is the same as any other card input.
25МГц тактовая может позволить и по SPI передать блок данных сравнительно быстро.

Еще один вопрос созрел - вы только документы изучали или реально работали с SD?


--------------------
Dies diem docet.
Go to the top of the page
 
+Quote Post
RHnd
сообщение May 25 2007, 14:11
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Victor @ May 25 2007, 14:49) *
4-бит режим не будет работать без них smile.gif)) Данные в SD-4bit mode передаются по всем четырем линиям.

А почему же тогда у меня в мануале написано optional? И на демоплате эти ножки N/C?

Цитата(Victor @ May 25 2007, 14:49) *
Предлагаю взять и попробовать smile.gif завести карточку в любом режиме - отправить блок данных на запись и посмотреть сколько тактов она держит busy после заливки блока. Я точно не помню, а посмотреть смогу только к середине след. недели.

Если сможете посмотреть и не сложно, то буду очень признателен. Я сам все равно еще неделю, если не больше, до этого проекта не доберусь. Можно сюда, можно в личку, можно в асю 306651679.
Спасибо за консультации.

Сообщение отредактировал RHnd - May 25 2007, 14:37
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 25 2007, 17:41
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Victor @ May 25 2007, 16:45) *
As opposed to SD mode, the card cannot guarantee its Speed Class. In SPI mode, host shall treat the
card as Class 0 no matter what Class is indicated in SD Status.

cannot guarantee еще не значит, что карта будет писАть со скоростью 100Кб/с...

Ну цитата подтверждает отличие SD Mode от SPI. Ну не гарантируют они скоростных характеристик записи sad.gif. Не гарантируют.
Цитата
А вы полагаете, что в SD-4bit режиме она будет налету во флэш писАть? Будет точно так же после записи блока выдавать busy пока идет запись во флэш.

Не будет, но время остающееся после передачи блока для записи возрастает многократно. На 25MHz SPI запихивание блока данных со скоротью 2Mайта в секунду элементарно съедает практически все время только на процесс передачи.
Цитата
Прошу вас объяснить подробнее, что значит "меееедленно"?
Bus timing is identical to SD mode. The timing of the CS signal is the same as any other card input.
25МГц тактовая может позволить и по SPI передать блок данных сравнительно быстро.

При этом, как уже писал выше "быстро" съест все время. sad.gif
Цитата
Еще один вопрос созрел - вы только документы изучали или реально работали с SD?

Реально работал. Через SPI на своем железе и в Palm. За скоростью в своих разработках не гнался абсолютно. Но разброс быстродействия у карточек абсолютно дикий sad.gif. Карточек с нормированной скоростью записи в глаза невидел, но всякие маркировки Hi-Speed x150 как правило имеют самое отдаленное отношение к скорости работы в SPI Mode (в других не пробовал).
Опосредовано опробывал имеющиеся карточки в "черных ящиках" типа видеокамер, кардридеров...
Результаты сильно зависят от индивидуальной совместимости и очень неожиданные порой. Пик экспериментов был 2-4 года назад, может с тех пор что-то изменилось к лучшему.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Victor
сообщение May 29 2007, 15:19
Сообщение #14


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

Группа: Свой
Сообщений: 122
Регистрация: 21-02-05
Из: Питер
Пользователь №: 2 811



Попробую подвести итоги:
Я признаЮ, что придираюсь к формулировкам. Думаю, что объяснив свою точку зрения на дискуссию мы придем к одному и тому же выводу smile.gif. Я начал возражать только по причине несогласия с фразой
Цитата(zltigo @ May 25 2007, 21:41) *
1. Про банальный SPI интерфейс забываем сразу - невероятно, что на этом интерфейсе поддерживается хоть какая-то не минимальная функциональность.

Суть возражения такова: я не вижу большой разницы в SPI и SD-1bit режимах работы карточки, ни с точки зрения быстродействия ни с точки зрения функциональности (последнее меня больше всего и задело). А вот 4-битный интерфейс, это другой разговор smile.gif

Цитата(zltigo @ May 25 2007, 21:41) *
Не будет, но время остающееся после передачи блока для записи возрастает многократно.

Если быть дотошным, и сравнивать SD-1bit и SPI, то время записи блока почти идентичное smile.gif
А вот если SD-4bit, то почти в 4 раза возрастает, это да.
А если сравнивать сумму времени записи и времени передачи блока (правда только 512байт), то судя по моим сегодняшним экспериментам она составит около 30% sad.gif.

Цитата(RHnd @ May 25 2007, 18:11)
Если сможете посмотреть и не сложно...

Собственно, результаты такие: около 350мкс - карточка пишет 512байт блок. Карта Transcend 512Mb 80x.

Действительно, при тактовой 25МГц, время записи блока 512б составляет около 4200 тактов (однобитный интерфейс), а 4-бит позволяет записать за, примерно, 1150 тактов. Что с учетом 350мкс времени записи блока даст разницу около 30%.

И действительно, если смотреть время записи 1кб блока по SPI, то оно сравнимо (почти одинаково) с "задумчивостью" карты. Но я снова подчеркиваю, что возражал только относительно сравнения SPI и SD-1bit smile.gif


Цитата(zltigo @ May 25 2007, 21:41) *
Пик экспериментов был 2-4 года назад, может с тех пор что-то изменилось к лучшему.

Будем надеяться smile.gif

Удачи!


--------------------
Dies diem docet.
Go to the top of the page
 
+Quote Post
RHnd
сообщение May 29 2007, 16:46
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Victor @ May 29 2007, 19:19) *
Действительно, при тактовой 25МГц, время записи блока 512б составляет около 4200 тактов (однобитный интерфейс), а 4-бит позволяет записать за, примерно, 1150 тактов. Что с учетом 350мкс времени записи блока даст разницу около 30%.


На всякий случай хочу уточнить: 350мкс это чисто запись 512байт? Т.е. дополнительно к этому еще 4200 тактов по 40 нс (25МГц) дает нам в сумме 508мкс? А на килобайт получится окло 1 мс? Плохо, получается для моей задачи SD не подойдет. sad.gif А если блоки карточки будут по 1024, как это скажется на времени? Такие бывают ведь?
И еще, не подскажете, на какой носитель информации стоит смотреть, чтобы успевать писать? А то придется расстраивать заказчика и ограничивать поток данных размерами оперативки. sad.gif


Цитата(Victor @ May 29 2007, 19:19) *
И действительно, если смотреть время записи 1кб блока по SPI, то оно сравнимо (почти одинаково) с "задумчивостью" карты. Но я снова подчеркиваю, что возражал только относительно сравнения SPI и SD-1bit smile.gif


Как же так. задумчивость - 350мкс*2захода по 512 байт = 700мкс. Передача по SPI 4200 тактов*2 захода по 512 байт на частоте 25МГц = 336мкс. Почти в два раза ниже. Или 350 это задумчивость на 1 кб?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th July 2025 - 19:52
Рейтинг@Mail.ru


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