uriy 4 12 октября, 2018 Опубликовано 12 октября, 2018 · Жалоба Делаю USB HID host на STM32F105. Не вижу в описании хоста никаких аппаратных средств для формирования периодических IN запросов на чтение эндпойнтов. Надо самому заводить таймер чтобы делать запросы через интервалы указанные в дескрипторе устройства? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 15 октября, 2018 Опубликовано 15 октября, 2018 · Жалоба Делал на Ф105 USB мышу, всё пашет, ни в какие дебри с эндпоинтами и прочим не лез. Но есть один значительный нюанс. Функцию USB_HostProcess обязательно вызывать не реже того периода, который задан в дескрипторах мыши. Типовая величина этого периода - 10 мс. Проще говоря, Вы обязаны дёргать эту функцию не реже одного раза в 10 мс. Можно чаще. Иначе драйвер класса будет отбраковывать приходящие пакеты. Я пробовал убрать отбраковку - курсор мыши прыгает, как пьяный заяц по дороге. Возможно именно это Вы и имели в виду. USB_HostProcess можно вызывать и в таймере (проверял на ф439, должно и на ф105 работать), но лично мне этот способ не нравится. Почему - не знаю. Просто не нравится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Да именно это я имел ввиду. USB_HostProcess вызывается в бесконечном цикле без всяких пауз. В итоге USB шина забита под завязку бесполезными данными. Раньше уже делал USB host на F4 на чистых булках, как-то легче там все пошло. C HID оказывается немало заморочек. Еще и клавы с USB хостами бывают. К тем пока даже не знаю как подступиться. Мышки почему-то заработали сразу, клавы работать не хотят, к тому же большинство проводных похоже на low speed работают. Пока разбираюсь с логическим анализатором. STM постоянно просит данные из нулевого эндпойнта, а винда читает из первого, что собственно и написано в дескрипторе. Возможно это связано с режим работы bios mode или boot mode. Не помню как правильно. Пока еще каша в голове. А что за отбраковку вы имеете ввиду? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 16 октября, 2018 Опубликовано 16 октября, 2018 · Жалоба Проблема моя оказалась абсолютно такая же как здесь http://forum.easyelectronics.ru/viewtopic.php?f=35&t=23447 и решение такое же. Вы там похоже тоже отметились Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 октября, 2018 Опубликовано 26 октября, 2018 · Жалоба On 10/16/2018 at 9:12 PM, uriy said: Проблема моя оказалась абсолютно такая же как здесь http://forum.easyelectronics.ru/viewtopic.php?f=35&t=23447 и решение такое же. Вы там похоже тоже отметились угу, было дело ... On 10/16/2018 at 8:01 AM, uriy said: А что за отбраковку вы имеете ввиду? пришедший мышиный пакет с данными отбрасывается как невалидный, если он старее периода, указанного в дескрипторах мыши. Драйвер HID класса просто уходит на следующий цикл опроса и не передаёт пакет на дальнейшую расшифровку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 октября, 2018 Опубликовано 26 октября, 2018 · Жалоба On 10/16/2018 at 8:01 AM, uriy said: Мышки почему-то заработали сразу, клавы работать не хотят, к тому же большинство проводных похоже на low speed работают. Пока разбираюсь с логическим анализатором. Странно, я использовал старые, докубовые ST-шные либы, там в одном флаконе мышь+клава, у меня и те и те работали. Но ассортимента клав у меня нет, потому по стабильности я сказать не могу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 26 октября, 2018 Опубликовано 26 октября, 2018 · Жалоба On 10/16/2018 at 8:01 AM, uriy said: Еще и клавы с USB хостами бывают Нужна голая клава, разные радиогибриды с мышами и прочей хренью скорее всего работать не будут, т.к. там другие протоколы. А ST-шный драйвер очень примитивный, он такого не понимает. Например, комплект клава+мышь это уже не простой HID девайс, а композитное устройство из 2-х девайсов, драйвер должен такое понимать. Но он даже на простой радиомыше скорее всего споткнётся, не говоря уж про радиокомплект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 27 октября, 2018 Опубликовано 27 октября, 2018 · Жалоба Именно радиомышки заработали сразу с исходниками из коробки. Проверял на двух. Клавы без хаба тоже заработали. Вся проблема была как по ссылке выше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 31 октября, 2018 Опубликовано 31 октября, 2018 · Жалоба Теперь надо разобраться как работать с клавой через USB Hub. Можете посоветовать что-то почитать об этом кроме спецификации USB? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 5 ноября, 2018 Опубликовано 5 ноября, 2018 · Жалоба Как я понимаю, сперва надо понять, как работать с хабами, чтобы проц: 1. Распознал хаб 2. Понял, что к хабу подключена клавиатура. Но лично я этим пока не занимался. Как по мне гораздо более актуальны радиомыши (они отличаются от проводных) и комплекты клавиатура+мышь (составной USB-девайс, ST-шная "фиговинка" их вообще не понимает). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 32 5 ноября, 2018 Опубликовано 5 ноября, 2018 · Жалоба 18 минут назад, hd44780 сказал: (составной USB-девайс, ST-шная "фиговинка" их вообще не понимает). Там надо писать свою обработку, "забивать" работу сразу с двумя устройствами типа interrupt, давать им по 5 мсек интервал опроса минимум и парсить репорты от клавы и мыши. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 5 ноября, 2018 Опубликовано 5 ноября, 2018 · Жалоба Quote Как по мне гораздо более актуальны радиомыши У меня дома две радиомыши A4Tech разных моделей. Именно мыши не комплект клава+мышь. Но USBLyzer показывает что это составное устройство. Эти мышки у меня заработали сразу с исходниками из cubemx без каких-либо изменений. Вероятно USB свисток один и тот же просто для мышей и для мышь+клава. Самая обычная проводная клава не захотела сразу работать. Пришлось пошаманить. Quote Там надо писать свою обработку, "забивать" работу сразу с двумя устройствами типа interrupt, давать им по 5 мсек интервал опроса минимум и парсить репорты от клавы и мыши. В случае моей радиомышки это одно устройство с двумя эндпойнтами. Зачем по 5 мсек? Столько сколько указано в дескрипторе. Исходники cubemx читают два эндпойнта если это клава+мышка. Смотрел анализатором saleae. В случае работы с клавой с совмещенным хабом у меня проблема что адрес на шине получает только сам хаб. Он в своем составе имеет только один IN эндпойнт. Сама клава не просит адрес. Нашел пару статей об этом. Судя по всему через контрольный эндпойнт хаба нужно сделать программный сброс порта к которому подключена клава, затем он попросит от хоста провести энумерацию и именно с этим адресом надо будет работать напрямую. https://stackoverflow.com/questions/40934344/how-to-communicate-with-the-devices-behind-a-usb-hub https://www.microchip.com/forums/m523103.aspx#523499 На словах кажется все просто и понятно. Но еще не пробовал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться