Easyelectronics.ru

Электроника для всех
Текущее время: 16 дек 2019, 06:57

Часовой пояс: 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 Кб]
Скачиваний: 462
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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 часов


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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