Страница 3 из 3

Re: Ручная настройка USB

Добавлено: Чт окт 15, 2015 11:39:44
YS
Может кто-нибудь уже знает такие решения?
У ST есть примеры USB CDC для STM32 (именно USB-UART).

Re: Ручная настройка USB

Добавлено: Чт окт 15, 2015 22:51:12
B@R5uk
YS, а можете ссылочку кинуть?

Re: Ручная настройка USB

Добавлено: Пт окт 16, 2015 08:35:50
Siarzhuk
B@R5uk писал(а):Я видел довольно извращённый вариант на 8-ой меге с ногодрыгом, но он страдает нарушением стандартов: мега не способна держать никакой режим, кроме самого медленного, а в нём не поддерживается (по стандарту) Bulk-отправка. Поэтому изобретатели этого чудесного решения нашли в дровах винды дыру и заэксплойтили её. Разумеется, для других систем/более новых версий винды такое решение не прокатит.
Это не про V-USB речь? А подробностей про это "дырявое решение" не вспомните? Хочется посмотреть из академического интереса. Про доступ через hid.dll знаю - но где там bulk - В HID общение всё больше control запросами идёт.
B@R5uk писал(а):Хотелось бы что-нибудь грамотное либо с аппаратным USB, либо на более быстром контроллере (хотя за счёт быстроты МК ногодрыг извратом быть не перестанет).
Всякое уменьшение Энтропии в Подлунном - суть дело богоугодное и извратом быть не может по определению - речь скорее о осмысленности такого мучительно способа извлечения адреналина из недр межушного пространства, когда, к примеру, можно взять бюджетный PIC и, не приходя в сознание, собрать готовый пример из MLA, на любой вкус - CDC, MSD, HID, Audio. Или из Атмеловских с железной реализацией как вам уже подсказали. ;)

Re: Ручная настройка USB

Добавлено: Пт окт 16, 2015 12:27:00
YS
YS, а можете ссылочку кинуть?
У ST есть инструмент под названием STM32 CubeMX. Это кодогенератор, который позволяет настроить большинство периферии, включая USB, совершенно не используя мозг. В нем есть опция генерации кода USB HID и USB CDC.

Еще есть STM32Cube USB Device Library, тоже поддерживает CDC.

Re: Ручная настройка USB

Добавлено: Сб окт 17, 2015 12:19:19
B@R5uk
Так ведь одной инициализации мало. Виртуальный последовательный порт должен принимать данные по UART (это я знаю как делается), формировать из них пакеты каким-то образом и отправлять по USB. Причём он делает это не когда заблагорассудится а по запросу хоста. То же самое и с приёмом. Хотелось бы разобраться в готовом решении, тем более, что оно типовое и востребованное.

Re: Ручная настройка USB

Добавлено: Сб окт 17, 2015 14:00:35
Siarzhuk
B@R5uk писал(а):Причём он делает это не когда заблагорассудится а по запросу хоста.
Если это намёк на poll-природу USB коммуникаций, то, с точки зрения программы в устройстве, когда ему заблагорассудится оно и отдаст используемой USB библиотеке эти данные на отсылку, последняя запишет в interrupt endpoint соотвествующую статус-информацию, драйвер USB контроллерa на PC при следующем цикле опроса считает этот статус и дёрнет обработчик соответствующщего прерывания в драйвере устройства - драйвер-же устройства с урчанием в животе подорвётся читать пришедшие данные с bulk endpoint устройства. Иными словами, хотя опустошение ближайшего почтового яшика и производится раз в день по приезде почтовой машинки - это никоим образом не мешает нам опустить письмо в ящик когда нам заблагорассудится. Но, поскольку в названии темы речь о "ручной настройке", видимо подразумевается, что такой машинки (библиотеки) нету - значит придется самим звонить на почту (выставлять прерывание) и собственноручно передавать посылку приехавшему почтальону. ;)

Re: Ручная настройка USB

Добавлено: Сб окт 17, 2015 18:31:59
YS
Так ведь одной инициализации мало.
Вы, однако, недооцениваете мощь костыля под названием STM32 CubeMX.

Я уже писал выше, что готовый пример HID есть в поставке USB FS Device Lib. Окей, вот вам прямая ссылка на страницу. Но имейте в виду, что прямые ссылки на страницы сайта ST имеют свойство портиться со временем.

STSW-STM32121 - сама библиотека. Там есть пример CDC.
STSW-STM32102 - драйвер для Windows.
Хотелось бы разобраться в готовом решении, тем более, что оно типовое и востребованное.
Я вам сразу сочувствую, это будет непросто. К сожалению, вся политика STMicroelectronics построена на продвижении разнообразных протезов для мозга и никак не поощряет изучение того, как их продукция работает внутри. У них нет нормальных туториалов. Документация делится на два типа - это либо хардкорные мануалы (которые они, похоже, выкладывают только потому, что не выкладывать их было бы совсем некрасиво), либо красочные буклеты про то, как натыкать код мышкой. Промежуточное звено отсутствует совершенно.

Re: Ручная настройка USB

Добавлено: Вс окт 18, 2015 09:24:19
B@R5uk
YS писал(а):драйвер для Windows.
Как так? Вроде же должно со стандартным работать?

Блин, оно там ещё не через CMSIS, а через HAL делается. Ненавижу эту хрень.

Re: Ручная настройка USB

Добавлено: Вс окт 18, 2015 10:04:10
YS
Вроде же должно со стандартным работать?
Как уже было писано, Windows надо объяснить, что к данным VID/PID надо привязать имеющийся драйвер.
Блин, оно там ещё не через CMSIS, а через HAL делается.
Про политику ST я тоже уже писал. :)))

Хотя, кстати, ядро USB там написано на основе прямого доступа к регистрам. Каша, короче.