AVR + V-USB Как же оно работает!?

Обсуждаем контроллеры компании Atmel.
Ответить
elf32
Открыл глаза
Сообщения: 42
Зарегистрирован: Ср окт 13, 2010 15:25:50

AVR + V-USB Как же оно работает!?

Сообщение elf32 »

Никак не могу разобраться, как же оно должно правильно работать.?
Пересмотрел кучу статей и примеров, но до истины не добрался.
И так, по порядку, очень прошу разъяснить мне:
custom-class hid-custom-rq hid-data hid-mouse - какая существенная разница между ними? почему я не могу сделать мышку на custom-class или флешку/термометр на hid-mouse ? Или могу!? - тогда опять какая существенная разница между ними?
Какой класс выбрать для двустороннего обмена данными произвольной длинны, например для выгрузки eeprom/настроек на комп и запись обратно с компа.? Какие при этом нужно внести настройки в usbconfig.h? И почему именно такие (т.е. что какая настройка делает)?
Все примеры сводятся к передаче 1-2 байта для включения или выключения светодиода. И нет ни одного примера/статьи где бы было все разложено по полочкам, почему надо именно так, а не иначе.
Как передать 100500 символов? Смотрел так же примеры обмена большими данными, но там черт ногу сломит. Ну почему не привести пример выгрузки каких то настроек с мк на комп и обратно, что практичнее за эти светодиоды.
С английским дружу, перечитал usbconfig.h, usbdrv.h, vusb.wikidot.com, но от этого еще больше запутался.
три дня уже :cry:
Аватара пользователя
jakov1965
Родился
Сообщения: 17
Зарегистрирован: Сб май 30, 2015 16:55:45
Откуда: RUS M4 500км

Re: AVR + V-USB Как же оно работает!?

Сообщение jakov1965 »

Сюда надо заглянуть.
http://microsin.net/programming/avr-wor ... index.html
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: AVR + V-USB Как же оно работает!?

Сообщение ARV »

elf32 писал(а):почему надо именно так, а не иначе
все дело в драйверах.
все пользовательские классы USB-устройств должны быть поддержаны соответствующими драйверами. windows DDK у вас проблемы не вызывает? тогда вперед - пишите свой драйвер и свой USB-класс реализуйте. но что-то мне подсказывает, что это не ваш уровень.

а HID-устройства поддерживаются на уровне драйверов системой по умолчанию (и еще некоторые классы, например, порты и дисплеи). поэтому вам гораздо проще реализовать соответствующий класс. почему нельзя реализовать мышиный класс для обмена данными? можно, но учтите, что система автоматически подключит вашу "псевдомышь" и будет стараться работать с нею, как с мышью. соответственно, если на самом деле вы сделали не мышь - система будет очень недовольна, и последствия могут быть печальными...

поэтому делайте просто HID-устройство, и работайте с ним через обычные функции чтения-записи файлов (это я про винду). лучше всего этот класс устройств подходит для случая, когда надо обмениваться парой десятков байт с девайсом несколько раз в секунду, для передачи 100500 байт или для напряженного обмена данными он не подходит (но и V-USB в принципе для такого мало приспособлен).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
elf32
Открыл глаза
Сообщения: 42
Зарегистрирован: Ср окт 13, 2010 15:25:50

Re: AVR + V-USB Как же оно работает!?

Сообщение elf32 »

ARV писал(а):но что-то мне подсказывает, что это не ваш уровень.

А что это Вам подсказывает? :roll: У меня более 10 лет общего опыта программирования и только несколько дней под мк.
Но суть даже не в том как кодить устройство, а просто понять как оно должно быть/работать, то самое почему надо именно так, а не иначе.

Спасибо :lol:
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: AVR + V-USB Как же оно работает!?

Сообщение B@R5uk »

elf32 писал(а):У меня более 10 лет общего опыта программирования
Книга Павел Агуров «Интерфейс USB — практика использования и программирования» вам в помощь.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: AVR + V-USB Как же оно работает!?

Сообщение ARV »

elf32 писал(а):А что это Вам подсказывает?
что-то :)))
Спойлер- доктор, вы знаете... у меня голос в голове постоянно матом ругается...
- это не страшно, с вас 10000 рублей - и я вас быстренько вылечу!
- доктор, а хотите знать, что вот сейчас этот голос про вас сказал?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: AVR + V-USB Как же оно работает!?

Сообщение COKPOWEHEU »

В последних виндах вроде проблемы с неподписанными драйверами.
Что ж вы такое делаете что через vusb надо кучу информации слать?
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: AVR + V-USB Как же оно работает!?

Сообщение Siarzhuk »

elf32 писал(а):почему я не могу сделать мышку на custom-class или флешку/термометр на hid-mouse ? Или могу!?[/u]?

Почему, можете. Только потом придётся написать драйвер для операционной системы ПК, чтобы эта мшыка работала. А термометр такой разве что будет мышиным курсором открывать Paint и в нём температуру отрисовывать художественно.

elf32 писал(а):Какой класс выбрать для двустороннего обмена данными произвольной длинны, например для выгрузки eeprom/настроек на комп и запись обратно с компа.? Какие при этом нужно внести настройки в usbconfig.h? И почему именно такие (т.е. что какая настройка делает)?

CDC. Ибо для HID придётся описывать в hid репортах все варианты пакетов. И, вроде как ограничение на 64 байта максимум.

elf32 писал(а):Все примеры сводятся к передаче 1-2 байта для включения или выключения светодиода. И нет ни одного примера/статьи где бы было все разложено по полочкам, почему надо именно так, а не иначе.

Потому, что V-USB - это "велосипед для нищих". Забавная игрушка из серии доказательств что такое возможно, не более того. Открытость опенсорца компенсируется временем на его освоение и допиливание.

elf32 писал(а):Как передать 100500 символов? Смотрел так же примеры обмена большими данными, но там черт ногу сломит. Ну почему не привести пример выгрузки каких то настроек с мк на комп и обратно, что практичнее за эти светодиоды.

Из стандартных - делайте CDC - это serial port - минимум головной боли на клиентсой стороне. Но сначала прикиньте останется ли в камне ресурс произвести эти сотни пятихаток после того как в МК заселится толстая жаба эмулятора USB.

elf32 писал(а):С английским дружу, перечитал usbconfig.h, usbdrv.h, vusb.wikidot.com, но от этого еще больше запутался.

Вам по основам USB надо знания подтянуть. Большая часть вопросов просто отпадёт.

elf32 писал(а):три дня уже :cry:

Три дня вашей жизни стоили меньше чем современный МК с USB контроллером на борту?
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
elf32
Открыл глаза
Сообщения: 42
Зарегистрирован: Ср окт 13, 2010 15:25:50

Re: AVR + V-USB Как же оно работает!?

Сообщение elf32 »

COKPOWEHEU писал(а):Что ж вы такое делаете что через vusb надо кучу информации слать?

Я пока еще не знаю :music:

Siarzhuk писал(а):Вам по основам USB надо знания подтянуть. Большая часть вопросов просто отпадёт.
Три дня вашей жизни стоили меньше чем современный МК с USB контроллером на борту?

Да, действительно, более менее прояснилось после чтение специфики работы usb.
А вот три дня жизни, не зря, опыт. МК с USB вообще не проблема, но нужно учитывать поставленные задачи. А если это для производства? - в первую очередь компактность и себестоимость.

Siarzhuk писал(а):сначала прикиньте останется ли в камне ресурс произвести эти сотни пятихаток после того как в МК заселится толстая жаба эмулятора USB

Да, это так. Одновременно работать не получиться. Думаю, если сделать только бут загрузчик на этой либе, то проблем не будет.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: AVR + V-USB Как же оно работает!?

Сообщение ARV »

elf32 писал(а):А если это для производства?
имхо, худшая идея - применить V-USB для производства
elf32 писал(а):сделать только бут загрузчик на этой либе, то проблем не будет
еще как будут проблемы - область загрузчика не резиновая, V-USB туда не влезет

если я не путаю, все современные МК с аппаратной поддержкой USB во-первых, значительно дешевле связки AVR+V-USB (к слову: разновидность V-USB существует и для PIC-ов), а во-вторых, уже содержат внутри загрузчик, причем некоторые именно загрузчик через USB. про надежность таких решений в сравнении с V-USB говорить в принципе нельзя: это как сравнивать танковую броню с туалетной бумагой.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: AVR + V-USB Как же оно работает!?

Сообщение COKPOWEHEU »

Siarzhuk писал(а):Из стандартных - делайте CDC - это serial port

Где бы еще взять рабочие драйвера для CDC. Те что встроены в ядро (старше 3.16 вроде, а у меня сейчас 4.4) опознают устройство, но обмениваться данными не позволяют. Возможно, это связано с какими-то нарушениями спецификации usb 1.1.
Аватара пользователя
Siarzhuk
Потрогал лапой паяльник
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Re: AVR + V-USB Как же оно работает!?

Сообщение Siarzhuk »

elf32 писал(а):А вот три дня жизни, не зря, опыт. МК с USB вообще не проблема, но нужно учитывать поставленные задачи. А если это для производства? - в первую очередь компактность и себестоимость.

Серьёзно делать ставки на AVR МК при планировании производства в октябре 2016 года - это от недостатка информации, поскольку в силу недавних событий камни сии одномоментно стали для нового хозяина legacy, а по старой доброй привычке Микрочипа профитировать на приверженцах старины их нынешняя стоимость гарантированно не гарантирована. В общем разминайтесь с AVR и присматривайтесь к STM32. ;-)

Добавлено after 15 minutes 26 seconds:
COKPOWEHEU писал(а):Те что встроены в ядро (старше 3.16 вроде, а у меня сейчас 4.4) опознают устройство, но обмениваться данными не позволяют.

Речь о связке V-USB и Линукс? Это через cdc_acm работа? А майнтайнера попинать, или нету такового?
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: AVR + V-USB Как же оно работает!?

Сообщение B@R5uk »

Siarzhuk писал(а):В общем разминайтесь с AVR и присматривайтесь к STM32.
Плюсую этого товарища! STM на голову выше во всех аспектах и дешевле в разы.
elf32
Открыл глаза
Сообщения: 42
Зарегистрирован: Ср окт 13, 2010 15:25:50

Re: AVR + V-USB Как же оно работает!?

Сообщение elf32 »

Siarzhuk писал(а):В общем разминайтесь с AVR и присматривайтесь к STM32. ;-)

Почитал, сравнил - действительно, на порядок лучше. НО, для начинающих под вопросом, так как нужно смотреть по наличию готовых либ под конкретные задачи.
На AVR я уже нашел и прикрутил основную либу, все работает, особо проблем не было.. Попробую STM32, если получиться, будет здорово, перейду на него. :roll:
Спасибо.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: AVR + V-USB Как же оно работает!?

Сообщение oleg110592 »

elf32 писал(а):...нужно смотреть по наличию готовых либ под конкретные задачи

наличие присутствует: http://www.st.com/en/embedded-software/ ... 32092.html
Внутри архива присутствуют примеры под разные USB задачи.
Пример проекта на основе этой библиотеки: http://tomeko.net/miniscope_v2e/
примечание: микроконтроллеру STM32F042 кварц не требуется - внутри присутствует точный генератор
elf32
Открыл глаза
Сообщения: 42
Зарегистрирован: Ср окт 13, 2010 15:25:50

Re: AVR + V-USB Как же оно работает!?

Сообщение elf32 »

oleg110592 писал(а):наличие присутствует: ... Внутри архива присутствуют примеры под разные USB задачи.

Спасибо, но в моем случае основная задача это не USB.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: AVR + V-USB Как же оно работает!?

Сообщение YS »

А если это для производства? - в первую очередь компактность и себестоимость.


У-у-у... :facepalm: Это подход самого плохого производства. Для промышленного изделия важнее всего качество и надежность, чтобы не пришлось тратить время и деньги на замены по гарантии.

По теме.

1. V-USB не вполне соответствует стандарту (например, CDC на ней - чистый хак), это раз, и сильно грузит контроллер, это два, и потому может рассматриваться только как решение для совсем хоббийных проектов.

2. USB - не самый простой и не самый дешевый способ соединяться с ПК. Во-первых, сам протокол очень заморочен, во-вторых, чтобы официально использовать USB в устройстве надо купить VID (это дорого). Иначе могут быть коллизии с другими устройствами, да и просто могут подать в суд.

3. Проще всего организовать обмен с устройством через преобразователь USB-UART.

4. Лучшие материалы по USB, которые я читал, это USB in a Nutshell и USB Made Simple.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Ответить

Вернуться в «AVR»