Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

STM32 Mass Storage

Вс апр 11, 2021 16:34:17

Доброго времени суток, товарищи!


Нужна ваша помощь.
Сделал композитное устройство CDC+MSC под stm32l4. В качестве памяти использую SPI микруху. Оба класса CDC и MSC работают без проблем. Винда также видит флешку, форматирует и успешно пишет/читает файлы.

Проблема заключается в следующем:

отправляю данные через ком-порт, МК видит файловую систему, создает файл и успешно в него записывает данные. Однако, видна не видит созданного файла. Данный файл появляется только тогда, когда сделаю реконнет USB.

Хочется увидеть работу девайста такой:
Воткнул USB - > открыл флешку и допустим, проверил есть ли файл -> кинул данные через ком-порт (это будет делать пользовательское приложение) -> без реконнета USB проверил, что файл с данными создан на флешке

Есть подсказки, где и что искать?

Re: STM32 Mass Storage

Вс апр 11, 2021 20:15:16

По-человечески не выйдет. Протокол MSD подразумевает что устройство является просто хранилищем данных, сами по себе они не меняются. Соответственно ОС может и скорее всего будет буферизировать данные чтобы не изнашивать "флешку" попусту.
Чтобы это обойти, можно попробовать поискать настройки кэширования (отключить его), но это придется делать каждый раз.
Либо притвориться другим устройством и использовать такой протокол, который допускает именно обмен данными, а не просто хранение. Да тот же CDC или HID. При желании можно вокруг него написать "драйвер", который бы отображал данные в виде файловой системы.
Ну и самый кривой способ - разбираться с MTP-протоколом, по которому телефоны с компьютером общаются.
Ответить