Easyelectronics.ru

Электроника для всех
Текущее время: 20 июн 2018, 20:04

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: STM32 + SDIO + FatFS + USB MSC
СообщениеДобавлено: 02 июн 2018, 20:33 
Здравствуйте!

Зарегистрирован: 02 июн 2018, 20:03
Сообщения: 4
Здравствуйте. Разрабатываю устройство на STM32L433 со следующей логикой работы:
1) Нажал кнопку - запускается опрос датчиков (SPI, I2C), данные с них записываются на карту памяти через SDIO + FatFS
2) Нажал кнопку еще раз - останавливается запись, устройство можно подключить к USB как mass storage class и скопировать записанные ранее данные.
Связка SDIO + FatFS заработала, данные нормально пишутся, но никак не получается запустить MSC. Настраивал по примеру http://microtechnics.ru/stm32cube-i-usb-mass-storage-sd-card/ , только у меня версия cubemx 4.25.1 и у SDCardInfo нет атрибута CardCapacity, но есть BlockNbr/BlockSize и LogBlockNbr/LogBlockSize. При их использовании карта памяти определяется в системе без размера и при попытке ее открыть возникает ошибка: "Нет доступа к G:\. Неверная функция".
Show main.c

Show usbd_storage_if.c


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 + SDIO + FatFS + USB MSC
СообщениеДобавлено: 02 июн 2018, 22:19 
Здравствуйте!

Зарегистрирован: 02 июн 2018, 20:03
Сообщения: 4
Если добавить в функцию static void MX_SDMMC1_SD_Init(void) строчку HAL_SD_Init(&hsd1), то карточка нормально определяется и работает, но после этого перестает работать FatFS на контроллере. Как их связать вместе, чтобы не конфликтовали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 + SDIO + FatFS + USB MSC
СообщениеДобавлено: 06 июн 2018, 08:39 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 ноя 2010, 20:11
Сообщения: 56
Откуда: Омск
HAL-ом и кубом стараюсь не пользоваться. Уж очень много текста он генерит.
У меня получилось собрать (на другом кристалле, конкретно STM32F745, так что Вам придётся разобраться с пинами и тактированием) USB MSC + FatFS + SDIO.
Инициализация общая, USB корректно подключается / отключается в любой момент (хотя дёргать на записи я бы не стал).

Интересные Вам вещи скорее всего будут здесь:
USB ссылается на sdio_sd, где описана инициализация, а так же вычисление объёма карты памяти.
Объём считается правильно, но сохраняется в глобальных переменных.
Чтобы узнать полный объём карты памяти нужно умножить количество секторов на размер сектора.
Show usbd_storage_if.c


Show sdio_sd.c


Все обращения (FatFS и USB происходят через sdio_sd.c). Многопоточность не обязательно будет работать, потому лучше как-то ограничить чтение/запись если есть несколько потоков сразу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 + SDIO + FatFS + USB MSC
СообщениеДобавлено: 06 июн 2018, 16:57 
Здравствуйте!

Зарегистрирован: 02 июн 2018, 20:03
Сообщения: 4
-Alan- писал(а):
HAL-ом и кубом стараюсь не пользоваться. Уж очень много текста он генерит.
У меня получилось собрать (на другом кристалле, конкретно STM32F745, так что Вам придётся разобраться с пинами и тактированием) USB MSC + FatFS + SDIO.
Инициализация общая, USB корректно подключается / отключается в любой момент (хотя дёргать на записи я бы не стал).

Интересные Вам вещи скорее всего будут здесь:
USB ссылается на sdio_sd, где описана инициализация, а так же вычисление объёма карты памяти.
Объём считается правильно, но сохраняется в глобальных переменных.
Чтобы узнать полный объём карты памяти нужно умножить количество секторов на размер сектора.
Show usbd_storage_if.c


Show sdio_sd.c


Все обращения (FatFS и USB происходят через sdio_sd.c). Многопоточность не обязательно будет работать, потому лучше как-то ограничить чтение/запись если есть несколько потоков сразу.

А у Вас sdio_sd.c - тоже куб сгенерировал? Просто у меня такого файла вообще нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 + SDIO + FatFS + USB MSC
СообщениеДобавлено: 06 июн 2018, 19:28 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 ноя 2010, 20:11
Сообщения: 56
Откуда: Омск
Ещё раз намекну.
Я стараюсь не использовать ни куб, ни HAL.
sdio - большей частью взят из примеров работы с картой по интерфейсу SDIO. Если правильно помню - из готовых проектов, использующих библиотеку FatFS ChaN'а.
Часть функций была переписана, часть упрощена, некоторые добавлены.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 + SDIO + FatFS + USB MSC
СообщениеДобавлено: 09 июн 2018, 14:03 
Здравствуйте!

Зарегистрирован: 02 июн 2018, 20:03
Сообщения: 4
-Alan- писал(а):
Ещё раз намекну.
Я стараюсь не использовать ни куб, ни HAL.
sdio - большей частью взят из примеров работы с картой по интерфейсу SDIO. Если правильно помню - из готовых проектов, использующих библиотеку FatFS ChaN'а.
Часть функций была переписана, часть упрощена, некоторые добавлены.

Проблема решена, спасибо за помощь.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

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


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

Сейчас этот форум просматривают: Eddy_Em, forker


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

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

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