| Микроконтролери и електроника 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 съм пускал и се чудя да се мъча или да си го карам как си знам
|
|
| Автор: | ¶ [ Сря Фев 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/ |
|