Эмуляция USB флэшки при подключении к ПК
- Войдите на сайт для отправки комментариев
Пнд, 17/04/2017 - 17:28
Все доброго времени суток.
Есть такая задача:
AVR (пусть будет Atmega328) с подключенной SD-CARD по SPI. Пришет и читает на нее в автомономном режиме
При подключении к компьютеру карточка работает как USB-флэшка (пусть даже не очень быстрая)
Есть ли готовое аппапатное или программное решение?
Пока приходит на ум расотрошить дешевый карт-ридер и коммутировать контакты SD-карточки с него на SPI шину контроллера и обратно. Может быть запиться параллельно и при подаче 5В на USB просто отрубать питание AVR-ки, чтобы не мешал работе кртридера.
Второй вариант, ковыртья V-USB. Но готового проекта под свою задачу не нашел.
Не проще тогда взять AVR с аппаратной поддержкой USB? (AT90USB, ATmega32U4 и т.д.)
Так-то гугл в помощь: avr usb mass storage , сходу нагуглил:
http://we.easyelectronics.ru/AVR/usb-fleshka-na-atmega8-i-v-usb-ot-idei-k-gotovomu-ustroystvu.html
http://microsin.net/programming/avr-working-with-usb/avr273-usb-mass-storage-implementation.html
http://elasticsheep.com/2010/04/teensy2-usb-mass-storage-with-an-sd-card/
http://www.atmel.com/Images/doc8229.pdf
http://www.atmel.com/Images/doc7631.pdf
https://github.com/flabbergast/enstix
Вариант с тенесси в принципе неплох.
Все таки мне кажется аппаратное проще и дешевле будет разобрать картридер за $1 и вывести контакты карточки на SPI МК
Никто готовой микросхемы не встречал?
sav13, в плеере за 1$ стоит микруха-ридер. Многие этого говна накупили после того обзора.. :)
Привутствую.
Тоже стоит похожая задача.
Нашёл решение на Атмега8,
http://we.easyelectronics.ru/AVR/usb-fleshka-na-atmega8-i-v-usb-ot-idei-k-gotovomu-ustroystvu.html
но к сожалению не понятно как этот проект портировать в Ардуино ИДЕ.
Всё разбросано по куче папок.
может у кого-то будут мысли по этому поводу.
sav13, если получится портировать в Arduino IDE, поделитесь результатом пожалуйста.
dimax, про микруху ридер понятно, лично у меня задача другая.
В идеале мне не нужно читать флешку,
нужно эмулировать её наличие и выдать в виртуальный фат
один единственный маленький текстовый файлик с конфигурацией устройства.
Т.е когда виндовс попытается прочитать "флешку" ей выдаст виртуальные параметры из переменных,
и один единственный "файл" config.txt содержащийся в string.
И я даже нашёл решение,
http://we.easyelectronics.ru/STM32/emulyaciya-nositelya-fat32-na-stm32f4.html
но оно для stm32, с которым у меня как то не складывается (как и у многих)
ps
Не смотря на то, что ARM чипы при аналогичной стоимости порой в разы навороченней, чем AVR
с AVR микроконтроллерами проще, всё программирование сводится именно к программированию,
с STM всё сводится к очень нудному конфигурированию чипа.
Это как вечное противоборство любителей Линукса и Виндовса.
Одни предпочитают комфортную работу и удобство, жертвуя быстродействием и какими то возможностями
другие вечное допиливание и поиски решения (порой надуманных) проблем,
но в итоге получая более продвинутый вариант использования компьютера.
zilibob4ik, насколько мне известно arduino-friendly библиотек для таких задач не существует в природе. Так что либо ищите аналогичные готовые реализации в инете, либо изучайте библиотеки V-USB / LUFA, на которых всё это возможно :)
PS: кстати с аддоном stm32 для Arduino IDE никакого нудного конфигурирования, всё просто как с обычными дуинами, хотя конечно со своими особенностями.