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

USB въпрос
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=14546
Страница 1 от 2

Автор:  Dimitar [ Сря Май 04, 2016 12:13 am ]
Заглавие:  USB въпрос

Някой наясно ли е дали е възможно едно устройство да се представя едновременно като CDC, HID и мас сторидж като се закачи на USB-то. Демек едновременно да може да приема/предава по CDC-то и HID-а и да можеш да си четеш/записваш върху SD картата, дето е закачена за него. Сега имаме една джаджа, дето едновременно се представя като CDC и HID но искаме да добавим и SD карта та преди да почнем да дълбаем на дълбоко ме интерисува дали въобще е възможно.

Автор:  4040 [ Сря Май 04, 2016 1:47 am ]
Заглавие:  Re: USB въпрос

Би трябвало да може. Май се води "usb composite device".

Автор:  palavrov [ Сря Май 04, 2016 1:53 am ]
Заглавие:  Re: USB въпрос

Правил съм такова нещо под линукс - с ethernet over usb, mass storage и т.н.
http://www.linux-usb.org/gadget/ - Linux-USB Gadget
Имай в предвид, че имаше някакви безумни патенти ако се изкушиш да си сложиш драйвери на масс сториджа :D

Автор:  Dimitar [ Сря Май 04, 2016 2:25 am ]
Заглавие:  Re: USB въпрос

Няма ли универсален мас сторидж драйвер също като HID-а и CDC-то?

Автор:  palavrov [ Сря Май 04, 2016 8:18 am ]
Заглавие:  Re: USB въпрос

Нямам идея дали преизползват в gadged другите драйвери - би било глупаво да не го правят.

Автор:  miro_atc [ Сря Май 04, 2016 9:12 am ]
Заглавие:  Re: USB въпрос

Dimitar написа:
Някой наясно ли е дали е възможно едно устройство да се представя едновременно като CDC, HID и мас сторидж като се закачи на USB-то.


По стандарт може, но трябва джелязото ти да поддържа достатъчно на брой ендпоинтове. Останалото е стек и дескриптори, но ти като си подкарал CDC и HID би трябвало да нямаш грижи да добавиш и MS.

Автор:  Dimitar [ Сря Май 04, 2016 2:07 pm ]
Заглавие:  Re: USB въпрос

Там е работата, че аз нищо не съм подкарвал иначе нямаше да питам :D .

Автор:  miro_atc [ Сря Май 04, 2016 2:21 pm ]
Заглавие:  Re: USB въпрос

Щото каза че имате джаджа аз си помислих че вие сте я правили...
Тъй де, виж само контролера дали има достатъчно ендпоинти, виж потенциалните стекове колко са гъвкави (дано да не е ST че техния стек е голЕма боза..)

Автор:  Цецо [ Сря Май 04, 2016 4:57 pm ]
Заглавие:  Re: USB въпрос

Може да не ти стигнат ендпоинтите за трипъл. Зависи колко е гъвкъв контролера. Трябват ти 3 за CDC, 2 за MSD и 2 за HID (може и 1). Демек абсолютния минимум е 6 броя.

По големия проблем ще ти е драйвера, т.е. inf файла. Едва ли ще имаш подписан такъв, а от боза 8 нагоре, неподписаните пак са наебани. Не че не става, ама е хакерия.

Автор:  ike [ Сря Май 04, 2016 5:16 pm ]
Заглавие:  Re: USB въпрос

А за виртуален USB хъб колко ендпоинта трябват? Защото пооделно ще може да ги подкара без подписване.

Автор:  Dimitar [ Чет Май 05, 2016 6:20 am ]
Заглавие:  Re: USB въпрос

Мисля да ползваме кинетис К26 серията. Пише че usb модула му има 16 байдирекшънъл енд пойнта във фул спийд режим и 8 ендпойнта в хай спий режим. Демек би трябвало да стане хватката, нали?

Автор:  Цецо [ Чет Май 05, 2016 8:49 am ]
Заглавие:  Re: USB въпрос

Ами така изглежда, ама трябва да го прочетеш внимателно да няма уловка. Другото което е незнам какви стекове дават от фрискеил. Аз имам опит (по скоро единствено и само главоболия), само с тия дето вървят в пакет с MQX. Пълен шит и отбиване на номера, общо взето неизползваем за нищо сериозно. Знам, че даваха и отделни плеин стекове без ОС, дано там нещата да са по читави.

И все пак мисля, че основния проблем ще ти е с драйвера, ако ще го пускате на боза 8 и нагоре. Тоест ако ви трябва за клиент де, ако е за вътрешна употреба ще мине.

Автор:  miro_atc [ Чет Май 05, 2016 9:49 am ]
Заглавие:  Re: USB въпрос

Dimitar написа:
байдирекшънъл


Това е ключовата дума... обикновено броят всяка посока за ендпоинт (ако може да се ползва така). Или пък казват че ендпоинта е байдирекшънъл, ама ако го ползваш като IN не може в същото време да го ползваш и OUT.
Примерно голо CDC става с един IN и един OUT, ако поддържа ACM или друга надстройка си трябват още по един OUT и IN. Общо стават 4 стрийма. Ако са истински biderectional са 2 ендпоинта, иначе отиват 4.
Освен това Цецо забрави да спомене нулевия ендпоинт. Той си е зает и в двете посоки и не може да се ползва, обаче производителите обикновено го включват в бройката, демек ти пък трябва да го извадиш.

В случая 16 ендпоинта двупосочни ако са истински означава 30 стрийма и звучи мнооого добре. Даже прекалено добре за да е истина, защото в "лошия" вариант са поне 14 стрийма, което пак е добре и е достатъчно за 3-те функции.
За сравнение STM32 full speed контролера освен нулевия (2 стрийма) има 3 IN и 3OUT стрийма. High speed версията им има 12 стрийма от които 2 за нулива + 5IN и 5OUT.

Автор:  ps66 [ Чет Май 05, 2016 11:08 am ]
Заглавие:  Re: USB въпрос

Kinetis K60 има 3IN + 3OUT HS и 16IN+16OUT FS
K26 май е по-нова серия и може да са повече (ако са 8 би-дир. - най-вероятно са 8IN+8OUT за HS)

Аз ползвам K60 3IN + 3OUT HS - постигам от 10MB/s до 20МB/s (при 3.0 hub) бареметал

EP0 - не го броя

Автор:  Dimitar [ Съб Май 07, 2016 6:47 pm ]
Заглавие:  Re: USB въпрос

Цецо, току що го закачих на Уиндоус 10 64 бит и даже не търси никакви драйвери и CDC-то и HID-а си тръгнаха веднага като пичове без никакви грижи. Ако същото стане и с мас сториджа направо ще е песен :D . Под Уиндоус 7 64 бит обаче си търси драйвери и за HID-а си намери, но за CDC-то нищо не намери и трябваше да му го инсталирам ръчно.

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