Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Composite USB device with STM32: HID+MIDI
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=10024
Страница 1 от 1

Автор:  tolstolob [ Чет Апр 05, 2012 2:52 pm ]
Заглавие:  Composite USB device with STM32: HID+MIDI

Значи поотделно всеки клас си работи екстра, но при опит да заработят като композитен дивайс удрям греда. Виндовс (7) не може да подкара HID-a ("Device cannot start"), а и MIDI-то върви куцо някакси, но се вижда като "working properly".
HID-a e custom (един 64-байтов репорт, по примера на баба Jan), MIDI-то си е класическа имплементация по клас спецификацията. Всичко е базирано на примерите оттук: http://www.microchip.com/forums/m189607-p3-print.aspx , конкретно постовете на xiaofan и chinzei. Първо в дескриптора ми е MIDI-то, след това е HID-а. Има и IAD, както си трябва.
Първо ми се стори странно, че ST не дават примери с композитни дивайси, за разлика от Атмел, но още не съм сядал да ги гледам тях.
Съчинението ми лежи на STM32_USB-FS-Device_Lib_V3.3.0.
Възможно ли е проблема да е в драйвера? Евентуално къде другаде?

Автор:  miro_atc [ Чет Апр 05, 2012 3:25 pm ]
Заглавие:  Re: Composite USB device with STM32: HID+MIDI

трудно е да се каже какво ти куца ;-)

Най-доброто решение е да трейснеш от страна на контролера какво се получава и страна на компютъра и да търсиш къде се разминавате...

За съжаление под WIndows аз така и не намериш читаво решение за снифване на USB. Пробвах какви ли не програми, кракове обаче или не тръгват или забиват или никаква работа не вършат.
Но ако имаш линукс машина слагаш Wireshark и си пускаш виртуалнa машина с Windows. Бачка супер, стига компютъра да е по-бърз ;-)

Автор:  tolstolob [ Чет Апр 05, 2012 7:36 pm ]
Заглавие:  Re: Composite USB device with STM32: HID+MIDI

Да, без детайлно гледане няма да мине.
Всъщност въпроса трябваше да е по-общ: изобщо за всякакви композитни дивайси с STM32, тъй като MIDI идва много частен случай за форума :mrgreen:
Иначе ако междувременно го преборя говедото, ще пиша.

Автор:  miro_atc [ Чет Апр 05, 2012 10:05 pm ]
Заглавие:  Re: Composite USB device with STM32: HID+MIDI

Не разбирам какво имаш предвид "общ въпрос"... Да не се опитваш да направиш универсален стек?

Според мен имаш съвсем конкретен бъг и съм сигурен че веднага ще хванеш след като видиш каква става. Затова ти препоръчвам Wireshark и жалко че под windows не може да подслушва USB.

Иначе проблемът при повечето стекове е, че са фиксирани за конкретна конфигурация и за да я промениш трябва да пипаш на много места. Съответно бъговете може да се навсякъде.
Може да имаш разминаване между това което пише в дескрипторите и това което правиш в софтуера. Примерно според дескрипторите имаш някакъв интерфейс и ендпоинти, обаче софтуера ти да ползва други ендпоинти. Аз затова при мен хоста като си избере конфигурация си сканирам дескрипторите и от тях си изграждам структури за текущите интерфейси и ендпоинти.
При теб вероятно е статично, но пак трябва да провярваш. В смисъл всеки request си има recipient, съответно трябва да проверяваш дали получателя е устройството, дали е конкретен интерфейс, съответно кой интерфейс - дали HID-а ти или Миди-то... Ако заявки към HID ги подадеш на MIDI и сам може да се сетиш, че ще стане боза ;-)
Така че това е единия клас проблеми с USB - да диспачнеш заяките към правилния клас/функция. Друг вид проблеми е да не обработваш правилно дадена заявка, но щом казваш че поотделно класовете работят, значи не е това. И накрая може да имаш обикновени бъгове дето нямат нищо общо с USB-то, но ти омазват комуникацията...

Автор:  loser [ Чет Апр 05, 2012 11:30 pm ]
Заглавие:  Re: Composite USB device with STM32: HID+MIDI

за windows7 на мен това:

http://blogs.msdn.com/b/usbcoreblog/arc ... stack.aspx

ми помогна да видя какво става; обаче поради някаква причина нещо не можах да видя bulk пакетите с данни, които пращам към устройството (на мен това ми трябваше), само идващите видях; вижда се и как вървят и разни контролни пакети; все пак може да е полезно, в статията накрая има продължение и човекът дава насоки как би могъл да се открие проблем в комуникацията

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/