Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

STM32F - SDIO модул?
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=8531
Страница 1 от 1

Автор:  Цецо [ Сря Фев 09, 2011 2:28 pm ]
Заглавие:  STM32F - SDIO модул?

Някой подкаравал ли е SDIO модула на STM32F за работа с SD карти (FAT)?

На теория изглежда доста сложен, има купища възможности. Но досега само на SPI съм пускал и се чудя да се мъча или да си го карам как си знам :-k

Автор:  [ Сря Фев 09, 2011 2:44 pm ]
Заглавие: 

Провери на www.stm32circle.com, мисля имаше приложение mass storage с SD карта където го използваха

Автор:  Цецо [ Сря Фев 09, 2011 3:00 pm ]
Заглавие: 

То аз примери имам. Въпроса ми е по скоро дали някой вече се е главоблъскал с него - някакви бъгове или чудатости дали има. Щото като направя платката ще е само за SDIO и после няма как лесно да се прехвърля на SPI ако нещо не се получава.

Автор:  [ Сря Фев 09, 2011 4:40 pm ]
Заглавие: 

Е то твоето е мързелива работа, искаш всичко на готово, ако се поровиш по този сайт ще намериш, че има и форум, където се коментират доста неща, включително и тези приложения, които са качени там. Регистрираш се и питаш, не е сложно.

Автор:  juzisound [ Чет Фев 10, 2011 6:51 pm ]
Заглавие: 

Аз го ползвам SDIO модула с 4 бит интефейс и DMA., ама не ползвам FAT.
Мисля че това обаче няма да има значение.
Работи безпроблемно - ама има кусури из библиотеките... Трябва да се допреправят за максимална производителност. Има и малки проблеми с инициализацията - ама и това се оправя.
Работи еднакво добре и с 4ГБ карти и с по- малки. С по-големи не съм пробвал.
Няма нищо общо с SPI като скорост. Това е самолет...
Скоростта до голяма степен зависи и от картите и от това как четеш от тях - дали последователни сектори - дали разбъркано. Кингстън не са лидер - определено...

Автор:  [ Чет Фев 10, 2011 7:40 pm ]
Заглавие: 

juzisound, ползваш SDIO обаче по 4-битов интерфейс, докато SPI е 1-битов, така е нормално да е като самолет. Имаш ли наблюдения на SDIO по 1-битов интерфйес ? Там как стои положението спрямо SPI ?

Автор:  juzisound [ Чет Фев 10, 2011 8:09 pm ]
Заглавие: 

Правих такива проби в началото - ама не съм имал за цел да помня резултатите...
С 1 бит би трябвало да е колкото с 4 битов и делено на 4.
Иначе явно по-бързо от това не може да се работи с картата, защото клока към картата е 25 МХз или поне много близо до 25, колкото е по стандарт. При SPI май не може да имаш такъв клок... или това беше за някакъв конкретен пик който гледахме... Не помня вече и говоря на изуст малко. Ама според мене с SDIO и с 1 бид да е - пак ще е по бързо - и поне по неангажиращо от към софт гледна точка.
Иначе скоростта на трансфер е ясна - 25МХз по 4 бита. Зависи обаче и от карртата, щото трансфера става горе долу така:

Клока си върви...
Даваш заявказа сектор...
После чакаш картата да каже че е приела заявка. Това става бързо...
След това клока пак си върви - ама чакаш картата да каже че са готови данните. Е тука вече всяка марка карта дава разлика. От 4 ГБ които съм пробвал, най-добре са Панасоник.
Идват данните - със скоростта на клока...

Автор:  [ Чет Фев 10, 2011 11:08 pm ]
Заглавие: 

На PIC32 съм пуснал трансфера от картата през DMA канал по SPI на 20MHz честота, някои карти работят и на 30MHz. Не съм мерил обаче с каква скорост се прехвърлят секторите. На STM32F103VET6 гледам че SDIO сигналите са ми свързани към SD картата, ама дали се използва SDIO или SPI не знам, използвам каквото има в Circle OS наготово, не съм се дълбал да видя как са го реализирали на ниско ниво.

Само за статистиката, на пазара има 50MHz карти, не съм се сдобил с такива още, но ако ти трябва още скорост можеш да се поразровиш за тез пущини.

Автор:  Цецо [ Пет Фев 11, 2011 9:20 am ]
Заглавие: 

Щом са вързани SDIO сигналите - ползваш SDIO, там няма мапнат SPI. Или поне всичките които аз съм пробвал съм така.

Ами намерих разни примери из нета - не се оплаква никой.

juzisound, къде е тапата в библиотеките? Смисъл къде се дъни като пройзводителност?

Автор:  juzisound [ Пет Фев 11, 2011 9:50 am ]
Заглавие: 

Ами две са основно причините да се мотка из библиотеките:
1. Библиотеките са направени така, че да обслужват всички режими на трансфер - DMA, INTERRUPT, POLLING и т.н. Това налага всеки път да се проверавя в кой режим си и т.н. Доста се натрупва от това.
2. Другото е, че преди всеки трансфер - модула се конфигурира на ново - след това се връща в някакво стандартно положение, от което може да се конфигурира във всеки друг вид трансфер за следващата транзакция. После пак и пак и така всеки път. Е това е дори още по утежняващо.... Преправил съм го - конфигурирането още в началото в режима в който ми трябва - и после само ползвам. Съвсем друго е...

Другата беля с библиотеките е в самото инициализиране на картата. Направено е сякаш да обслужва техния си пример - като за кит някак си - не като за реална употреба. В смисъл, че на доста места може да забие при определени условия, и грешките няма да се обработят - все такива разни работи... Малко на "сляпо" все едно.

Недомислена е някак библиотеката, ама това е и щото модула е доста сложен и предоставя много и различни пътища да свършиш нещо. Иначе модула е добър. Подкараш ли го - после няма проблеми.

Относно трансфера, мисля даже че на чиповете с повечко крака има и 8 битов интерфейс. Не съм сигурен де. Тогава ще е съвсем бързо. То бързо бързо - ама пак основното закъснение идва от изчакването картата да приготви данните - после трансфера и така става за "нула време". На мен ми се налага да чета сектор по сектор и разбъркано. Ако се чете последователно - тогава вече самия трансфер може да има доста по-голям дял в цялото време за четене.

Автор:  miro_atc [ Пет Фев 11, 2011 10:12 am ]
Заглавие: 

Голямото предимство на SDIO според мен трябва да е в обработката на транзакцията. Не знам при ST, но при Атмел доколкото виждам мултимедиа контролера може да го пуснеш на ДМА и да четеше/пишеш колкото си данни искаш (последователно разбира се).

Докато при SPI е много накъсано - повечето библиотеки първо гледат дали е busy (1 байт трансфер) после пишат команда, параметър (5 байта трансфер), после token (един или повече пъти), после реалните данни после пак полиране...
Тъпо е, процесора чете по 1 или няколко байта и после трябва да видиш резултата. С полиране утрепваш процесора, а ако тръгнеш да сменяш контексти забавяш трансфера.

Друго си е да кажеш "метни 5 сектора" с ей тва ДМА и да не се занимаваш с глупости ;-)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/