ADA007 0 7 мая, 2013 Опубликовано 7 мая, 2013 · Жалоба Поздравляю всех с майскими праздниками! Тема для тех, кто даже по праздникам не забывает об электронике :rolleyes: По Т.З. девайс должен собирать информацию с датчика...и когда собранный лог достигнет размера в 32 Мб - нужно это все передать на ПК, и так далее по циклу. Для решения задачи в качестве накопителя был выбран Samsung K9F1G08U0C. Ну а в качестве контроллера - stm32f103vct6. Поскольку у него имеется встроенный fsmc интерфейс. Передавать данные на ПК планируется через USB интерфейс (пока не знаю в каком режиме / было бы идеально, если бы доступ к данным осуществлялся, как у обычной usb флэшке). Посоветуйте, как лучше реализовать данную связку? Какие проекты взять за пример (не с нуля же писать :05: )? Возможно эти задачи уже кем-то частично или полностью решались... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 54 7 мая, 2013 Опубликовано 7 мая, 2013 · Жалоба по поводу выбора накопителя: у stm32f103 sdio же есть, не? за те же 5$ microSD карточка на 8ГБайт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
JohnSilver 1 8 мая, 2013 Опубликовано 8 мая, 2013 · Жалоба В первую очередь стОит обратить внимание на количество циклов записи на флешь. Если Вы хотите делать FAT на флеше, то это очень быстро убъет ее (наверно можно эмулировать FS в ОЗУ). Можно использовать специальные FS, но тогда появляются проблемы с виндой. А SD медленнее чем отдельная микросхема, современные карты большого объема имеют еще меньше циклов записи, а встроенный контроллер может делать выравнивание износа, а может и не делать, как дядюшка Ляо запилит... Если есть возможность поставить отдельную микросхему, я бы не использовал SD. Я делал логер, и флешь использовал просто как кольцевой буфер (равномерный износ). Связь с PC по Bluetooth (UART), так что насчет USB не подскажу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ADA007 0 8 мая, 2013 Опубликовано 8 мая, 2013 · Жалоба А SD медленнее чем отдельная микросхема, современные карты большого объема имеют еще меньше циклов записи... К тому же "+" в пользу паянного соединения для микросхемы памяти по отношению к разъемному соединению на SD. Т.е. городит FS нет смысла? Просто использовать как массив байт? Тогда остается вопрос, как в ПК передать по USB (виртуальный com - не хотелось бы \ в идеале было бы средствами самой операционки собирать данные в файл)? З.Ы. Только сейчас заметил, что тема-то = :bb-offtopic: ... да простят меня админы и перенесут тему в раздел (ARM) ... каюсь :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 8 мая, 2013 Опубликовано 8 мая, 2013 · Жалоба Какая у вас скорость поступления данных с датчика? Может достаточно будет SPI-флешки? Для USB, в качестве отправной точки, можно взять пример Mass Storage, который идет с библиотекой. И либо общаться с устройством как с RAW диском, тогда приложению потребуются админские привилегии (в win7) и система при подключении устройства будет предлагать отформатировать диск. Последнее обходится созданием фиктивной файловой системы - в начале диска, на десяток килобайт, лишь бы система увидела что раздел есть и не паниковала. Либо заюзать libusb. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 8 мая, 2013 Опубликовано 8 мая, 2013 · Жалоба Для решения задачи в качестве накопителя был выбран Samsung K9F1G08U0C. Подумайте о eMMC , вроде MTFC2GMVEA-0M Их используют в смартфонах. Поверх можно поставить даже FAT без последствий. Даташиты и спецификации открыты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gunner 0 8 мая, 2013 Опубликовано 8 мая, 2013 · Жалоба Подумайте о eMMC , вроде MTFC2GMVEA-0M Их используют в смартфонах. Поверх можно поставить даже FAT без последствий. Даташиты и спецификации открыты. Вариант интересный конечно, но надо учитывать, что при этом возрастают требования к самой печатной плате устройства (у eMMC BGA-корпус). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ADA007 0 8 мая, 2013 Опубликовано 8 мая, 2013 · Жалоба Какая у вас скорость поступления данных с датчика? Может достаточно будет SPI-флешки? Скорость ... около 64 байт в секунду Для USB, в качестве отправной точки, можно взять пример Mass Storage, который идет с библиотекой. И либо общаться с устройством как с RAW диском, тогда приложению потребуются админские привилегии (в win7) и система при подключении устройства будет предлагать отформатировать диск. Последнее обходится созданием фиктивной файловой системы - в начале диска, на десяток килобайт, лишь бы система увидела что раздел есть и не паниковала. Либо заюзать libusb. Мне этот вариант нравится. А в Lin будет сие чудо работать? to AlexandrY = и таки-да ... BGA не хотелось бы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vlad_new 1 8 мая, 2013 Опубликовано 8 мая, 2013 (изменено) · Жалоба Мне этот вариант нравится. А в Lin будет сие чудо работать? Звбавно. И куда Вы этот Lin прилепите? Ну USB и FS вроде бы понятно зачем. А Lin то тут каким боком вылез. Максимальная скорость Lin 38400 bod. плюс накладные расходы на протокол. И максимум что Вы получите 1 кбайт в сек, Вас устроит такая скорость ? Изменено 8 мая, 2013 пользователем vlad_new Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KnightIgor 2 8 мая, 2013 Опубликовано 8 мая, 2013 · Жалоба Скорость ... около 64 байт в секунду Мне этот вариант нравится. А в Lin будет сие чудо работать? Как Flexz и предложил, можно использовать Mass Storage Class в рамках библиотеки поддержки USB для STM32F. При этом PC "видит" устройство как обычный сменяемый носитель ("флэшку"). STM32F пишет через встроенную файловую систему (например, fatfs, на которой построены многие примеры для STM32F) на SD карту или eMMC файл протокола, и его можно будет считать в PC. Есть, однако, одна загвоздка. Не знаю, как Linux, но Windows кэширует FAT сменяемого носителя, в результате она не видит изменения на диске, если STM32F модифицирует его дальше. По крайней мере, мне не удалось еще заставить Windows понять, что носитель изменен "изнутри". Единственная возможность - сделать reconnect: как только STM32F заполнит очередной протокол (Ваши 32МБ), он делает connect (фактически - подает там 3V через 1.5К на D+ линию USB), Windows обнаружит USB устройство, смонтирует носитель, считает файл и должно затем размонтировать ("выбросить") устройство. STM32F это дело поймет (вроде поддержка Mass Storage Class это сообщит) и снова возьмет носитель под свою опеку. Конечно, на время, пока PC считывает диск, STM32F не следует на него писать, поэтому надо кэшировать Ваши 64 байта/сек. в ОЗУ, которое потом скинуть в файл, как только PC "отдаст" диск. Модификация варианта: STM32F создает ДВА виртуальных диска на одном носителе. Mass Storage Class монтирует один диск, а STM32F пишет через fatfs другой, и наоборот. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 9 мая, 2013 Опубликовано 9 мая, 2013 · Жалоба Берете eye wi карту и идти курить пиво. Работать китайцы должны Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 9 мая, 2013 Опубликовано 9 мая, 2013 · Жалоба я делал такой логер, флэшку сразу разметил на один огромный файл ФАТ, а внутри уже писал данные с метками. На компе можно было скачать файл целиком и читать его, либо для скорости чтобы по 4 гига файлы не читать, сделал утилитку которая разбирала метки. Внутри файла писал по кольцу через все тело файла это давало равномерный износ флэшки. Флэшку можно было читать обычным карт ридером, но если было бы усб, можно было спокойно сделать картридер-масторадже. А еще мы в качестве ОЗУ часто SPI - FRAM используем, но они 1 мегабайт макс... Но если поставить 32 штуки.... %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 9 мая, 2013 Опубликовано 9 мая, 2013 · Жалоба Модификация варианта: STM32F создает ДВА виртуальных диска на одном носителе. Mass Storage Class монтирует один диск, а STM32F пишет через fatfs другой, и наоборот. Тем более что если флешка смонтирована, то писать на нее другим нельзя. Может это попробовать? http://ru.wikipedia.org/wiki/Media_Transfer_Protocol Хотя я думаю что наиболее простой метод - написать свой софт под винду или там линух чтобы данные вычитывать. Можно даже подумать над какой экзотикой, типа USB 2 UART и сбрасывать данные через Xmodem к примеру. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 9 мая, 2013 Опубликовано 9 мая, 2013 · Жалоба Берете eye wi карту и идти курить пиво. Работать китайцы должны Это конечно шутка, но есть доля смысла. Зачем делать из USB mass storage если можно сделать RNDIS. И использовать для скачивания файлов либо внутренний FTP сервер дивайса либо HTTP сервер. Тогда не имеет значение какая файловая система в дивайсе хоть YAFFS, хоть SFFS или вообще без файловой системы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 9 мая, 2013 Опубликовано 9 мая, 2013 · Жалоба Зачем делать из USB mass storage если можно сделать RNDIS. И использовать для скачивания файлов либо внутренний FTP сервер дивайса либо HTTP сервер. Тогда не имеет значение какая файловая система в дивайсе хоть YAFFS, хоть SFFS или вообще без файловой системы. Сложнее наверное трудно придумать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться