igorle 0 28 мая, 2013 Опубликовано 28 мая, 2013 · Жалоба Возникла потребность, для рабочих нужд, сделать на скорую руку накопитель информации на флэшке. В идеале результат вижу так: - Подключаем к устройству Diskonkey - Подключаем устройство к PC (USB) PC должен видеть флэшку, как будто она подключена к нему напрямую (или через хаб) Устройство должно иметь возможность записывать файлы в файловую систему. Цель - устройство пишет файлы на флэш, с компьютера данные считываются и стираются из флэшки. Устройство нужно для собственных нужд, пользоваться буду я сам и коллеги. Так что можно пережить отдельные неудобства. Например, я могу не трогать текущий файл, открытый на запись устройством. По сути, надо реализовать USB хост, USB устройство и файловую систему. Что-то подсказывает мне, что идея не нова, и есть готовые проекты для этого. Кто-то видел подобное и может дать ссылки? Чтобы не изобретать велосипед. По силам это, например STM32F1? PS. Я вот тут пораскинул мозгами. Может быть проще SD карточку приспособить, в качестве накопителя? Не надо будет USB хост городить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 28 мая, 2013 Опубликовано 28 мая, 2013 · Жалоба PS. Я вот тут пораскинул мозгами. Может быть проще SD карточку приспособить, в качестве накопителя? Не надо будет USB хост городить... Если есть какой-нибудь DevKit на ARM под Linux, то задача почти наверняка будет иметь гораздо простое решение ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 28 мая, 2013 Опубликовано 28 мая, 2013 · Жалоба Мне надо компактно и из имеющихся материалов. А имею STM32F103C8 Странно, но я не нашел готового примера с USB "стика" для моего чипа. Есть один старый 2009 года. Но он с моим кейлом уже не совместим. Не в смысле формата проекта, а в смысле используемых инклюдов. Старый проект использует stm32f10x_lib.h. Сейчас вместо него Кейл определяет stm32f10x.h. И просто замена одного файла другим не работает :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 29 мая, 2013 Опубликовано 29 мая, 2013 · Жалоба USB-USB на STM32F1 не получиться. У него только один интерфейс USB, и тот только Device. Если брать stm-ку, то начиная с F2 - у этих два USB, в т.ч. хост и с примерами все в порядке. Непосредственно по задаче, первое что приходит в голову - это тансляция запросов с хоста на девайс (т.е. с компа на флешку) на уровне, например, scsi команд, плюс встраивание своих запросов. И оно даже наверное будет работать, и даже почти всегда. Проблема возникнет в тот момент, когда и комп и сам девайс захотят записать что-то в один и тот же сектор, в таблице фат, например. Вообще задача видится довольно нетривиальной, имхо решением будет отказаться от файловой системы на флешке и работать с ней с компа как с RAW диском. Вспомните телефоны, при подключении к компу в режиме диска (для доступа к SD-шке) сам телефон теряет к ней доступ, так что даже для "взрослых" девайсов это не так просто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 68 29 мая, 2013 Опубликовано 29 мая, 2013 · Жалоба Проблема в том, что PC благополучно закэширует считанные данные, поэтому изменения, сделанные "изнутри" в то время, пока диск подключен, в лучшем случае окажутся незамеченными, а в худшем приведут к ошибкам работы с файловой системой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 29 мая, 2013 Опубликовано 29 мая, 2013 · Жалоба От идеи USB хоста я уже отказался. SD карта выглядит более реальным вариантом. А вот то, что таких проектов нет готовых - не ожидал. Надеялся что задача тривиальная и многократно решенная, в том числе и в открытых проектах. Жаль. Спасибо. Я все-же попытаюсь. Я видел на сайте ST несколько пакетов для работы с USB. Кто-нибудь делал/видел обзор? Кто-нибудь их использует и может порекомендовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 29 мая, 2013 Опубликовано 29 мая, 2013 · Жалоба Надеялся что задача тривиальная ... Задача весьма своеобразная. Я делал на ARM9 дивайс, который при подключении по USB к машине представлялся для нее флэшкой, а носителем там служила SD - карточка. Но мне не нужно было писать на карточку файлы со стороны МК. А вам нужно. Вопрос. Машина должна только читать данные с вашего дивайса, или может также и писать данные ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 29 мая, 2013 Опубликовано 29 мая, 2013 · Жалоба Задача весьма своеобразная. Я делал на ARM9 дивайс, который при подключении по USB к машине представлялся для нее флэшкой, а носителем там служила SD - карточка.... Я когда нашел для себя (год назад) MSP430 и пищал от восторга (сделал несколько проектов для себя и друзей), то слышал от "теоретиков", мол брось ты его. Осваивай АРМ, например STM32. Для АРМа, говорят, есть масса библиотек и готовых проектов. Практически любую задачу уже решили и выложили код. Костяк любого разумного проекта, мол, будешь брать готовый прямо с сайта ST. А сейчас я не могу найти даже готовый проект "Diskonkey". Чтобы PC видел стандартное USB устройство, а накопителем работала SD карточка. :( А ведь и USB, SPI и файловая система - стандартные вещи. То-ли все не так радужно, то-ли пока не разобрался, как искать. Вопрос. Машина должна только читать данные с вашего дивайса, или может также и писать данные ? Желательно чтобы машина (PC) могла удалять файлы. Но в крайнем случае от этого можно и отказаться. В принципе, контроллер может сам удалять старые файлы. Единственно, я хотел бы иметь возможность форматировать SD c PC, но и от этого можно отказаться. Вынимать карточку, ставить ее в адаптер и форматировать отдельно. Я могу сообщить контроллеру, что сейчас идет форматирование и писать ничего не надо. Но читать надо "на лету". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 29 мая, 2013 Опубликовано 29 мая, 2013 · Жалоба А сейчас я не могу найти даже готовый проект "Diskonkey". Чтобы PC видел стандартное USB устройство, а накопителем работала SD карточка. :( Для STM32F207 я такой проект на сайте ST находил, собирал в Кейле и запускал на реальном устройстве. Проект, что называется, ознакомительный, а не профессиональный, но вполне рабочий ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 30 мая, 2013 Опубликовано 30 мая, 2013 · Жалоба Проект, реализующий "USB-флешку" на SD карте лежит здесь Но в нем нет файловой системы, т.е дальше начинается самое интересное, чтобы чтото записать изнутри контроллера на карту памяти нужно прикрутить файловую систему, которая будет взаимодействовать с картой памяти через SCSI интерфейс или напрямую через SPi в то время пока PC не обращается к карте. Почитайте еще этот топик и вот этот Или поищите в сети что-нить по тегам STM32F103 + Fatfs + Mass Storage Device Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
igorle 0 31 мая, 2013 Опубликовано 31 мая, 2013 · Жалоба Спасибо. Эти выходные буду изучать тему по Вашим ссылкам. Кстати, у меня большая радость. Оказалось что в нашем здании и даже на нашем этаже есть представительство ST. И люди что сидят там - как раз и занимаются поддержкой разработчиков. Так что я договорился о встрече на следующей неделе. Обещали не только дать ссылки, но и совместно скомпилировать то что мне надо и проверить результат на моем борде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться