Ответы пользователя по тегу USB
  • Как считать с USB устройства больше чем размер конечной точки?

    @monah_tuk
    HIDAPI использует libusb (или usbraw) в бакенде, они сами умеют делать несколько запросов для заполнения буффера. Т.е. для вычитки буффера 4096 байт, оно разобьётся на 4096/64 запроса. Со стороны железа нужно уметь на такое реагировать.
    Ответ написан
    Комментировать
  • Какая есть простая утилита под linux для тестирования USB HID устройств?

    @monah_tuk
    HID достаточно многогранен. Что вы именно хотите и, главное, какие-то аналоги знаете (например под винду)?

    А так, я писал свою софтинку, используя hidapi:
    - www.signal11.us/oss/hidapi
    - https://github.com/signal11/hidapi
    там какой-то testgui есть, пользоваться не приходилось, можете его распотрошить.

    Либо, использовал бы WireShark для захвата и анализа USB пакетов. Либо что-то из снифферов отсюда:
    - www.linux-usb.org/tools.html

    Дескрипторы же можно посмотреть и при помощи обычного lsusb и графического usbview.

    По крайней мере, это то, что я использовал для разработки. Есть ещё всякие AnyHID - хорошая вещь, но под винду, но когда нужен продукт - тут не до принципов :) Ещё можно попробовать generichid.sourceforge.net, но мне использовать не довелось. Будет опыт - расскажите.
    Ответ написан
    2 комментария
  • Передать и считать данные с микроконтроллера с использованием libusb?

    @monah_tuk
    Изучите это руководство: habrahabr.ru/post/261955

    А по сути, без дескрипторов USB говорить о чём-то сложно (на Linux: lsusb -v, на Windows: UsbView). Ну и проверить, что у вас действительно используется interrupt трансферинг и на самом устройстве код правильный.

    А так, криминала не вижу: передача на устройство, а значит EP OUT, у вас это EP1, а значит 0x01. Так что, скорее всего, проблема на устройстве. Попробуйте, для начала, control transfering.
    Ответ написан
  • Как перенести QT проект с usblib-win32 на другой пк?

    @monah_tuk
    Не использовать libusb-win32. Использовать оригинальный libusb. Под виндой использовать стандартный драйвер WinUSB. Форсированно его назначить на устройство можно вручную при помощи Zadig или программно libwdi.
    Ответ написан
  • Как организовать алгоритм передачи по USB?

    @monah_tuk
    ты через отдельный EP планируешь передавать или использовать EP0? Если второе, то размер посылки - это часть setup пакета. Так же команду можно впихнуть в value или index поля setup реквеста. Я бы сделал так: если index == 1, значит это первая посылка - начинаем собирать данные, считываем сколько дали и так, пока весь пакет не вычитается. Размер всего пакета передать, к примеру в value - просто за один setup реквест может не получиться все данные передать.

    Признак начала посылки может пригодиться, что бы прервать накопление данных, если, к примеру, был какой-то сбой на удалённой стороне (комп ребутнулся и начал работать заново).

    А вообще, www.beyondlogic.org/usbnutshell/usb1.shtml и microsin.ru/content/view/1107/44 в помощь.
    Ответ написан
    Комментировать
  • Дескриптор USB_HID для Windows 10?

    @monah_tuk
    Для HID устройств драйвера не нужны. Поставьте usbview и посмотрите на какие дескрипторы ругань идёт. Скорее всего на Win7 проблема тоже присутствует, но отношение к ней более лояльное. Кроме того, на нашем устройстве было замечено разное поведение Win7 и Win8/Win10 - разные драйвера (разница была только на ASMedia USB 3.0 контроллере), так что попробуйте найти более свежие драйвера для USB контроллера (не для своего устройства).
    Ответ написан
    Комментировать
  • Как определить и устранить причину сбоя в работе USB 3.0 контроллера?

    @monah_tuk
    Сами разрабатывали UVC устройство для работы по USB 3.0, шишек набили. Вообще USB 3.0 до сих пор сырое и неотлаженное гуано, даже контроллеры Intel и AMD выделывают выкрутасы временами, не говоря уже о третьей (или второй - как посмотреть) по популярности - ASMedia. Проблем валом как в железе, так и в драйверах контроллеров.

    В вашем случае контроллер должен быть Intel, пока это наиболее работоспособные устройства и с ними минимум проблем. Подобной вашей мы даже не встречали на нём (на других было из-за того, что не тянули 650мА, допустимые для USB 3.0).

    Что могу посоветовать: из вашего описания видно, что вы пытались только жёсткий подключить. Попробовать другое устройство. Вполне вероятно, что срабатывает защита по питанию. И даже не спрашивайте, почему на 2.0 оно же работает - на ASMedia и NEС контроллерах такое было. Далее, это вполне может быть железный косяк - упустили какой нить pull-up резистор, тут очень сожалею, что нет гарантии. Ну и последний вариант, если есть слот Express Card, то подключить USB 3.0 контроллер к нему, типа такого: www.ulmart.ru/goods/230130 ну и долбить DNS напрямую.
    Ответ написан
  • Устройство USB, с чего начать?

    @monah_tuk
    Если будете делать своё USB устройство: изучить спеки, изучить спек HID устройства. На тостере есть советы по использованию либ для AVR для реализации USB стека и HID устройств как пример. Поищите.
    Ответ написан
    Комментировать
  • USB HID клавиатура. Что нужно знать?

    @monah_tuk
    В дополнение информации от DIHALT.

    Для HID можно ещё TinyUSB (https://github.com/hathach/tinyusb) и USBTiny (dicks.home.xs4all.nl/avr/usbtiny), сам только со второй баловался. Ну и спеки с usb.org, из раздела для разработчиков, в частности про классы устройств, среди которых и HID: www.usb.org/developers/docs/devclass_docs/. Плюс золото: www.beyondlogic.org/usbnutshell/usb1.shtml
    Ответ написан
    Комментировать