Easyelectronics.ru

Электроника для всех
Текущее время: 24 сен 2019, 01:14

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 224 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 9  След.
Автор Сообщение
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 18 июн 2012, 22:23 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
Понаглею еще чуточку)) есть файлы для фат32?:)))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 19 июн 2012, 01:16 
Заглядывает иногда

Зарегистрирован: 31 июл 2010, 21:36
Сообщения: 65
Откуда: Киев
Я использовал библиотеку FatFs http://elm-chan.org/fsw/ff/00index_e.html. Вот на русском http://microsin.net/programming/ARM/fatfs-appnotes.html, ище еще http://code.google.com/p/stm32-codes/source/browse/trunk/#trunk%2FSDIO_MP3_FW3.x%2Ffilesystem%253Fstate%253Dclosed


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 19 июн 2012, 10:14 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
vrr писал(а):
Скажи, а зачем перед выходом из прерывания void DMA2_Channel4_5_IRQHandler(void), его запрещать DMA_ITConfig(DMA2_Channel4, DMA_IT_TC, DISABLE);?


Для обработки прерывания по ДМА необходимо в функциях мультизаписи или просто записи/чтения добавить разрешене прерывания по окончанию транзакции. По-умолчанию для библиотеки у них там прерывание по ДМА не разрешено.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 19 июн 2012, 12:02 
Заглядывает иногда

Зарегистрирован: 31 июл 2010, 21:36
Сообщения: 65
Откуда: Киев
Цитата:
Для обработки прерывания по ДМА необходимо в функциях мультизаписи или просто записи/чтения добавить разрешене прерывания по окончанию транзакции. По-умолчанию для библиотеки у них там прерывание по ДМА не разрешено.

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


Понятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 19 июн 2012, 19:43 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
vrr писал(а):


х_Х)) достал)) переделал с его SPI под SDIO) осталась мелочь) запустить все это))
мож написать в каком порядке какие функции вызывать с этой библиотеки? или кусочек кода залей, хотя бы что б смог отобразить коневую папку....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 19 июн 2012, 22:48 
Заглядывает иногда

Зарегистрирован: 31 июл 2010, 21:36
Сообщения: 65
Откуда: Киев
Сперва создаем переменные:
FRESULT CardStatusErr;//это для получения кода ошибки вывполнения текущей операции (0 - нет ошибки)
FATFS FATFS_Obj;//это сама FAT
далее:
CardStatusErr = disk_initialize(0); //инит
CardStatusErr = f_mount(0, &FATFS_Obj); //монтируем Fat Fs
CardStatusErr = f_mkdir ("0:DIR");//создаем директорию нс диске
CardStatusErr = f_mount(0, NULL); //Unmount Fat Fs
После это всего у тебя на карточке должна появиться папка под названием DIR. Вроде так.
Вот еще полезная статейка http://blog.adtl.cz/2011/10/13/chan-fatfs/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 23 июн 2012, 22:30 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
столкнулся с траблом... для SPI фат запустил, и он даже отображает файлы записаные на карточку)) а вот при SDIO все время читает какую-то ахинею, при том же коде обработки полученых от карты данных... хотя если взять SPI, записать на карточку в какойто сектор набор чисел (записывал банальное 0-255 два раза) то SDIO этот сектор нормально читает и выводит... Что б это могло быть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 24 июн 2012, 00:32 
Заглядывает иногда

Зарегистрирован: 31 июл 2010, 21:36
Сообщения: 65
Откуда: Киев
Там есть две функции disk_read и disk_write. Возможно в них проблема.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 24 июн 2012, 18:08 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
ну да... функции от SDIO возвращают масив типа uint32_t, а в фате используюется uint8_t масивы... но опять же не понимаю чего тогда одиночный блок с числами читает и отображает нормально


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 26 июн 2012, 01:04 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
нашел в чем проблема... у меня в структуре теряется 4 байта, от чего получается перекос данных... полазил по нету, пишут что вроде как надо "выровнять" структуру с помощью __packed (ИАР не ругается но ничего не меняется) struct или struct __attribute__ ((packed)) (ИАР ругается и вобще воспринимать не хочет) и еще #pragma pack(push, 1) ..... #pragma pack(pop) (ИАР не ругается но ничего не меняется). С таким никто не сталкивался?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 26 июн 2012, 13:31 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 08 сен 2011, 19:58
Сообщения: 74
Откуда: Украина, Харьков
Werman_Alex писал(а):
нашел в чем проблема... у меня в структуре теряется 4 байта, от чего получается перекос данных... полазил по нету, пишут что вроде как надо "выровнять" структуру с помощью __packed (ИАР не ругается но ничего не меняется) struct или struct __attribute__ ((packed)) (ИАР ругается и вобще воспринимать не хочет) и еще #pragma pack(push, 1) ..... #pragma pack(pop) (ИАР не ругается но ничего не меняется). С таким никто не сталкивался?
Возможно вы ставите эти директивы не там. Попробуйте сделать так :

В хидере, при объявлении структуры
Код:
#pragma pack(push, 1)

typedef struct {
uint8_t someVal1;
uint16_t someVal2;
uint32_t someVal3;
uint8_t someVal4;
}someStructForPack;

#pragma pack(pop)

а уже в сишном файле используйте её как обычно.

С другой стороны, я не встретил проблем с выравниванием данных при работе с FatFs, в какой именно структуре теряются байты?

_________________
Лучше жалеть о том, что сделано, чем о том, что не сделано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 26 июн 2012, 16:56 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
Сенк. Структуры пофиксил)) Теперь новый глупый вопрос, как-то можно сделать поддержку длинных имен (свыше 8 символов)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 26 июн 2012, 18:09 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 08 сен 2011, 19:58
Сообщения: 74
Откуда: Украина, Харьков
Werman_Alex писал(а):
Сенк. Структуры пофиксил)) Теперь новый глупый вопрос, как-то можно сделать поддержку длинных имен (свыше 8 символов)?
В файле ffconf.h
#define _USE_LFN 0 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
Первый устанавливаете на 1-3, второй 255. А вообще в этом файле хранится много того, что стоит настроить, чтобы не ловить глюки, не понимая откуда растут ноги :-)

_________________
Лучше жалеть о том, что сделано, чем о том, что не сделано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 01 июл 2012, 03:50 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
vrr писал(а):
Сперва создаем переменные:
FRESULT CardStatusErr;//это для получения кода ошибки вывполнения текущей операции (0 - нет ошибки)
FATFS FATFS_Obj;//это сама FAT
далее:
CardStatusErr = disk_initialize(0); //инит
CardStatusErr = f_mount(0, &FATFS_Obj); //монтируем Fat Fs
CardStatusErr = f_mkdir ("0:DIR");//создаем директорию нс диске
CardStatusErr = f_mount(0, NULL); //Unmount Fat Fs
После это всего у тебя на карточке должна появиться папка под названием DIR. Вроде так.
Вот еще полезная статейка http://blog.adtl.cz/2011/10/13/chan-fatfs/



а от чего все может банально зависать после того как раз выполнил функцию f_mkdir ("0:DIR"); ?
уже приделал длинные имена, читает корневую директорию нормально. фалый с нее (txt wav) тоже читает нормально... а если делаю f_mkdir все напрочь зависает... хотя если потом перепрошить с f_unlink ("DIR"); вместо f_mkdir то снова начинает нормально работать....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 01 июл 2012, 10:16 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 08 сен 2011, 19:58
Сообщения: 74
Откуда: Украина, Харьков
А просто f_mkdir ("DIR"); работает?

_________________
Лучше жалеть о том, что сделано, чем о том, что не сделано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 01 июл 2012, 12:18 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
Yanichar писал(а):
А просто f_mkdir ("DIR"); работает?


не) и f_mkdir ("0:/DIR"); тоже виснет. не зацикливается где-то, а именно зависает (если б зацикливало, то таймер часов работающи по прерыванию выводил бы время...)
йопть, зависает после функции которая пытается отобразить содержимое scan_files ("0:/"); , но только если перед этим пытался создать директорию. если сделать f_unlink ("DIR"); то выводить начинает. Это по ходу вроде как директорию криво наверно создает, от чего ее потом не может прочитать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 01 июл 2012, 12:41 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
А все, нашел ошибку)) Последний пост натолкнул на мысль проверить фунцию чтиения директории и там нашел косяк...
Код:
if (fno.fattrib & AM_DIR) {                 /* It is a directory */
              type = "DIR ";
                //sprintf(&path[i], "/%s", fn);  -- было не коментировано
                //res = scan_files(path);         -- было не коментировано (зависало на этом момете...)
                Fill_File_Menu(type, fn, k++);  --моя собственная ф-ция.
                //if (res != FR_OK) break;        -- было не коментировано
                //path[i] = 0;                        -- было не коментировано


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 10 июл 2012, 16:05 
Здравствуйте!

Зарегистрирован: 10 июл 2012, 16:02
Сообщения: 3
Werman_Alex, а не мог бы ли ты выложить пожалуйста проект под IAR с прикрученым фатом для STM32F4?
Заранее спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 12 июл 2012, 20:19 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
eembedder писал(а):
Werman_Alex, а не мог бы ли ты выложить пожалуйста проект под IAR с прикрученым фатом для STM32F4?
Заранее спасибо.


тут все что касается карты, банально прикрутишь SPI и можно работать


Вложения:
SD_SPI.rar [54.06 Кб]
Скачиваний: 459
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 12 июл 2012, 21:12 
Здравствуйте!

Зарегистрирован: 10 июл 2012, 16:02
Сообщения: 3
Спасибо, но я с картой через SDIO работаю))) Под SDIO хотелось бы если можно....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 12 июл 2012, 23:10 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
eembedder писал(а):
Спасибо, но я с картой через SDIO работаю))) Под SDIO хотелось бы если можно....


х_Х) к сожалению с SDIO пока еще до конца не сложилось... он у меня постоянно зависает (читает 2 блока и потом зацикливается на какм-то прерывании) + переписать функции для фат модуля еще не получилось(они изначально под SPI написаны и переделывать не оч удобно)... если выйдет когда-то то залью, а пока приходится мучить SPI, благо его скорости пока еще мне хватает...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 12 июл 2012, 23:27 
Здравствуйте!

Зарегистрирован: 10 июл 2012, 16:02
Сообщения: 3
Цитата:
х_Х) к сожалению с SDIO пока еще до конца не сложилось... он у меня постоянно зависает (читает 2 блока и потом зацикливается на какм-то прерывании) + переписать функции для фат модуля еще не получилось(они изначально под SPI написаны и переделывать не оч удобно)... если выйдет когда-то то залью, а пока приходится мучить SPI, благо его скорости пока еще мне хватает...


Спасибо и на том))) Я вот почти уже домучал. Если всё ОК, то тогда сюда выложу, а то ещё негде пока нормального работающего примера не встретил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 12 июл 2012, 23:32 
Заглядывает иногда

Зарегистрирован: 07 май 2012, 13:32
Сообщения: 33
eembedder писал(а):
Цитата:
х_Х) к сожалению с SDIO пока еще до конца не сложилось... он у меня постоянно зависает (читает 2 блока и потом зацикливается на какм-то прерывании) + переписать функции для фат модуля еще не получилось(они изначально под SPI написаны и переделывать не оч удобно)... если выйдет когда-то то залью, а пока приходится мучить SPI, благо его скорости пока еще мне хватает...


Спасибо и на том))) Я вот почти уже домучал. Если всё ОК, то тогда сюда выложу, а то ещё негде пока нормального работающего примера не встретил.


а у тебя сам SDIO нормально работающий есть? в принцыпе этот фат модуль можно переделать просто заменив 3 или 4 функции написаные для SPI на аналогичные под SDIO. мне просто срочно нужно было на работу запустить карточку хоть как-то, то оставил разборки с SDIO на потом, и прикрутил как попроще))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 12 окт 2012, 15:34 
Здравствуйте!

Зарегистрирован: 12 окт 2012, 15:27
Сообщения: 2
Скажите, а DM368 никто с SDIO не подключал? Сижу, изучаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SDIO interface for SD card
СообщениеДобавлено: 28 дек 2012, 20:09 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 10 фев 2012, 16:40
Сообщения: 197
Откуда: Украина г.Кировоград
Добрый день! долбаюсь с microSD
Скажите с какой скоростью практически должны прописываться данные на карту MicroSD с библиотекой SDIO если их загонять без FAT, а просто писать произвольные данные в память карты?
Пересмотрел свой проект и оказалось, что скорость записи с использованием библиотеки sdio для STM32F100-STMf103 составила 41 кб за сек.
Как? Ведь эта скорость должна теоретически быть равной порядка 2 МБ за сек как для обычной флешки!
Если я не прав поправьте. Объясните пожалуйста.
Спасибо


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 224 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 9  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Oxford


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB