Содержание
- Введение в разработку USB периферии
- Средства для определения VID и PID флешки
- Как узнать VID и PID флешки
- Как найти драйвер по коду оборудования ИД (ID, VEN/VID, DEV/PID)
- Поиск драйвера по коду оборудования
- 6. Исправлено: не удалось найти USB-устройство с vid=0x16c0 pid=0x5dc vendor=’www.fischl.de’ product=’USBasp’
- Change VID PID

❷ Если исполняемого файла setup.exe нет
Введение в разработку USB периферии
Последние полгода я участвую в разработке первого в собственной жизни USB-устройства и прикладного ПО к нему, и на данный момент желаю поделиться своим осознанием того, как там всё работает: микроконтроллер, драйвер, прикладное ПО. Также затрону вопрос о выборе идентификаторов VID/PID. Перечень нужных ссылок для желающих более тщательно разобраться в теме прилагается.
Контекст
Разрабатывается электрическое устройство, которое будучи присоединенным к датчику делает измерение микроперемещения и передаёт итог на ПК, где он выводится в комфортной для оператора графической форме. Область внедрения измерительного устройства — машиностроение.
Немного о том, как всё работает
На схеме показаны главные действующие лица, участвующие в жизни разрабатываемого устройства.
Микроконтроллер — основной элемент устройства, который подаёт управляющие сигналы на датчик и воспринимает отклик, по которому вычисляет итог измерения. При помощи реализованного стека USB обмен данными с хостом сводится фактически к работе с буферами чтения и записи. Ввиду того, что измерительный метод не просит огромных вычислительных мощностей и период 1-го измерения равен 100-150 мс избран микроконтроллер at90usb162 (8 бит, 16 МГц, 16 кБ). В этом МК есть аппаратная поддержка USB, что существенно упрощает программную реализацию стека USB. В прочем, реализовывать стек и заниматься инициализацией МК мне не пришлось благодаря примеру USB Generic HID Implementation из сопроводительного пакета ПО. Из альтернатив фирменным примерам для AVR есть фреймворк LUFA (лицензия MIT) для AT90USBxxxx и ATMEGAxxUx и вполне программная реализация стека V-USB (GPL либо коммерческая лицензия), позволяющая работать с AVR-овскими МК без аппаратной поддержки USB.
Чуть-чуть о аббревиатуре HID. Это класс USB-устройств, созданных для ввода данных человеком: клавиатура, мышь, игровые контроллеры. Подразумевается, что у таких устройств маленькой объем передаваемой инфы, как и у разрабатываемого устройства: пакеты по 8 б с интервалом в 100-150 мс. Главное удобство работы с устройствами этого класса — наличие стандартного драйвера в ОС, что высвобождает от написания собственного.
Хостом (мастером, ведущим) в моём случае является ПК, а поточнее интегрированный в материнку контроллер USB. Согласно дескриптору (описанию) моего устройства хост опрашивает его на предмет новых посылок с периодом приблизительно в 20 мс. Прикладное ПО собирает принятые хостом данные, проводит маленькую обработку и отрисовывают индикаторы, напоминающие авто спидометры, на которых показываются измеряемые величины. Выводится перечень присоединенных датчиков и их опции, которые можно поменять: конфигурации будут переданы на устройство и сохранены в энергонезависимой памяти.
Одна из мыслях приложения — кроссплатформенность, потому оно разрабатывается во фреймворке Qt на С++, а воззвания к ОС для считывания и передачи данных производятся через библиотеку libusb. Последние несколько месяцев идёт активная разработка бэкенда libusb v1.0 для виновс, уже пишут о предрелизном статусе и, что более принципиально, у меня с ней вроде всё работает. Также есть порт libusb v0.1 для винды — LibUsb-Win32. Тема работы через WinAPI подробно и с примерами на Visual Basic и Visual C# раскрыта в книге USB Complete (о книге). Я WinAPI попробовал и мне не понравилось.
VID и PID
- единовременно заплатить $2000 за vid
- или стать членом USB-IF за $4000 в год.
- Atmel. В faq перечислены правила, следуя которым можно использовать vid/pid чипа для своего устройства.
- FTDI. Кроме использования встроенных vid/pid, компания предлагает отправить запрос на бесплатное выделение pid.
- Microcip также предлагает отправить заявку на выделение pid.
- Silicon Labs. Вот что пишут на форумах:
- «SiLabs дает готовый пакет для генерации драйвера с вашим собственным описанием устройства, но vid/pid там будет от SiLabs (vid 10C4, pid EA60).»
- «Если адаптер usb-com — от Силабса, то у них же можно бесплатно получить vid/pid. Мы уже два получили. Надо написать письмо на английском, в ответ они вышлют анкету. Ответы на анкету — письмом опять в Силабс, и через два дня присылают vid/pid. Но надо, конечно, подробно расписать проект (дата старта, объемы) и сайт свой указать (на *.com желательно).»
- Чипы, которые реализуют usb-протокол исключительно аппаратно могут использовать встроенные в аппаратную часть vid и pid. Например, это касается чипов FTDI.
Основные источники информации
Отличное введение в USB (англ., р у с.) для разработчиков периферии – 30 страниц вместо многих сотен в стандарте. Более подробную информацию о разработке USB-периферии и драйверов к ней можно найти на сайте Lakeview Research, особенно хочу отметить книгу «USB Complete: The Developer’s Guide», Jan Axelson.
Средства для определения VID и PID флешки

USB-флешки – устройства надежные, но риск поломки есть всегда. Причиной тому может быть некорректная работа, сбой микропрограммы, неудачное форматирование и т.д.. В любом случае, если это не физическое повреждение, можно попытаться ее восстановить программными средствами.
Проблема в том, что не каждый инструмент подходит для восстановления конкретной флешки, и использование неправильной утилиты может окончательно вывести ее из строя. Но зная VID и PID накопителя, можно определить тип его контроллера и подобрать подходящую программу.
Как узнать VID и PID флешки
VID служит для идентификации производителя, PID – идентификатор самого устройства. Соответственно, каждый контроллер на съемном накопителе помечен этими значениями. Правда, некоторые недобросовестные производители могут пренебрегать платной регистрацией ID-номеров и присваивать их просто наугад. Но в главном это касается дешевой китайской продукции.
Для начала убедитесь, что флешка как-то определяется компьютером: слышен характерный звук при подключении, она видна в списке подключенных устройств, отображается в «Диспетчере задач» (возможно, как неизвестное устройство) и прочее. В противном случае шансов мало не только лишь на определение VID и PID, да и на восстановление носителя.
ID-номера можно быстро определить при помощи специализированных программ. Как вариант, можно использовать «Диспетчер устройств» или просто разобрать флешку и найти информацию на ее «внутренностях».
Направьте внимание, что карты MMC, SD, MicroSD не имеют значений VID и PID. Применяя к ним один из способов, Вы получите только идентификаторы кардридера.
Способ 1: ChipGenius
Прекрасно считывает основную техническую информацию не только лишь с флешек, да и со многих других устройств. Интересно, что ChipGenius имеет собственную базу VID и PID, чтобы выдать предположительную информацию об устройстве, когда по какой-то причине не удается опросить контроллер.
Чтобы воспользоваться данной программой, сделайте следующее:

- Запустите ее. В высшей части окна выберите флешку.
- Снизу напротив значения «USB Device ID» Вы увидите VID и PID.
Направьте внимание: старые версии программы могут работать некорректно – скачивайте последние (по ссылке выше можно найти именно такую). Также в некоторых случаях она отказывается работать с портами USB 3.0.
Способ 2: Flash Drive Information Extractor
Данная программа дает более подробную информацию о накопителе, конечно, включая VID и PID.
После того, как Вы загрузили программу, сделайте следующее:

- Запустите ее и нажмите кнопку «Получить информацию о флешке».

- Нужные идентификаторы будут в первой половине списка. Их можно выделить и скопировать, нажав «CTRL+C».

Способ 3: USBDeview
Основная функция этой программы – отображение списка всех устройств когда-либо подключаемых к данному ПК. Дополнительно можно получить подробную информацию о них.
Инструкция по использованию заключается в следующем:
- Запустите программу.
- Для того, чтобы быстрее найти подключенный накопитель, нажмите «Опции» и уберите галочку с пункта «Показывать отключенные устройства».

- Когда круг поиска сузился, дважды кликните по флешке. В открывшейся таблице направьте внимание на «VendorID» и «ProductID» – это и есть VID и PID. Их значения можно выделить и скопировать («CTRL» + «C»).

Способ 4: ChipEasy
Интуитивно понятная утилита, которая позволяет получить исчерпывающую информацию о флешке.
Способ 5: CheckUDisk
Простая утилита, которая выводит основную информацию о накопителе.
Способ 6: Изучение платы

Когда ни один из способов не помогает, то можно пойти на радикальные меры и вскрыть корпус флешки, если это возможно. VID и PID Вы, может, там и не обнаружите, но маркировка на контроллере имеет такую же ценность. Контроллер – важнейшая часть USB-накопителя, имеет черный цвет и квадратную форму.
Что делать с этими значениями?
Теперь можно заняться применением полученной информации и найти эффективную утилиту для работы с Вашей флешкой. Для этого следует использовать онлайн-сервис iFlash, где пользователи сами формируют базу данных таких программ.
- Введите VID и PID в соответствующие поля. Нажмите кнопку «Search».

- В результатах Вы увидите общую информацию о флешке и ссылки на подходящие утилиты.

Способ 7: Свойства устройства
Не такой практичный метод, но зато возможно обойтись без стороннего софта. Он подразумевает следующие действия:
- Перейдите в список устройств, нажмите правой кнопкой по флешке и выберите «Свойства».

- Перейдите во вкладку «Оборудование» и дважды кликните по названию носителя.

- Перейдите во вкладку «Сведения». В выпадающем списке «Свойство» выберите «ИД оборудования» или «Родитель». В поле «Значение» можно будет разобрать VID и PID.

То же самое можно сделать через «Диспетчер устройств»:
- Для его вызова введите devmgmt.msc в окне «Выполнить» («WIN» + «R»).

- Найдите флешку, кликните по ней правой кнопкой и выберите «Свойства», а дальше все по приведенной выше инструкции.

Направьте внимание, что неработающая флешка может отображаться как «Неизвестное USB-устройство».Быстрее всего, конечно, будет использовать одну из рассмотренных утилит. Если обходиться без них, то придется покопаться в свойствах запоминающего устройства. На крайний случай VID и PID всегда можно найти на плате внутри флешки.
Напоследок скажем, что определение этих параметров будет полезным для выполнения восстановления съемных накопителей. На нашем сайте можно найти подробные инструкции для представителей самых популярных брендов: A-Data, Verbatim, SanDisk, Silicon Power, Kingston, Transcend.
Как найти драйвер по коду оборудования ИД (ID, VEN/VID, DEV/PID)


Д оброго времени суток!
Проблема поиска драйверов с выходом Windows 10/11 — существенно облегчилась (т.к. большую часть из них, обычно, находит и устанавливает сама ОС). Однако, в ряде всевозможных случаев — драйвер система не находит, и, разумеется, это придется делать самостоятельно.
В сегодняшней статье я хотел более подробно описать вариант поиск драйвера по его коду (ID*, идентификатор оборудования). Этот способ универсален, и может выручить даже в самых сложных случаях.
Что такое ID (код оборудования)
Если упростить некоторые моменты, то это обычная текстовая строка, в какой зашифрована информация о производителе (VEN/VID), о модели устройства (DEV/PID), и пр. информация. Пример такой строки приведен ниже (прим.: для Bluetooth адаптера) .
Благодаря подобному коду (ID) — можно найти и установить драйвер практически для любого оборудования. Причем, это позволит избежать кучи проблем (конфликтов, несовместимости и пр.) и установить конкретно тот драйвер, который нужен вашему устройству.
Теперь о том, как найти этот код и как при помощи него установить драйвер.
Поиск драйвера по коду оборудования
ШАГ 1: узнаем ID-код оборудования
Для определения ИД (ID) оборудования необходимо открыть диспетчер устройств. Универсальный способ для этого: нажать сочетание Win+R (должно появиться окно «Выполнить») , ввести команду devmgmt.msc и нажать OK.

6. Исправлено: не удалось найти USB-устройство с vid=0x16c0 pid=0x5dc vendor=’www.fischl.de’ product=’USBasp’
Запуск диспетчера устройств — devmgmt.msc
Альтернативный вариант запустить диспетчер устройств: нажать сочетание кнопок Win+X , и в появившемся меню выбрать нужное (см. скрин ниже, способ актуален для Windows 8/10/11) .

Для вызова этого меню — нажмите сочетание Win+X

В помощь!
Еще несколько вариантов, как открыть диспетчер устройств — https://ocomp.info/kak-otkryit-dispetcher-ustroystv.html
Change VID PID
В диспетчере устройств найдите нужное оборудование, кликните по нему правой кнопкой мышки и в контекстном меню выберите опцию «Свойства» .
Направьте внимание, что устройства, для которых нет драйвера в системе — помечены желтым восклицательным знаком как неизвестное устройство, см. скрин ниже (также они могут быть во вкладке «Другие устройства») .
Неизвестное устройство

Диспетчер устройств — свойства
Далее перейдите во вкладку «Сведения» , в графе «Свойство» выберите «ИД оборудования» . Перед вами должен предстать список строк (их количество может быть разным, но, если направьте внимание — данные в них повторяются).

Сведения — ID оборудования
Чтобы скопировать строку, просто выберите ее и кликните правой кнопкой мышки, в контекстном меню выберите «Копировать» (или просто воспользуйтесь сочетанием Ctrl+C) .
Примечание : рекомендую сначала скопировать и искать по короткой строке, в какой содержится только VID и PID (VEN, DEV). Пример ниже.

Копировать ID оборудования
Теперь ID оборудование нам известно ( USB\VID_0BDA&PID_B00B ).
ШАГ 2: где искать драйвер для оборудования, зная его код ID
Сайт с множеством драйверов (на нем собраны десятки тысяч драйверов для самого разного оборудования). Единственный минус — обилие рекламы. Все же, не порекомендовать не могу!

Поиск драйвера на Devid.info
Аналогичный сайт. На мой взгляд, он даже поудобнее, т.к. предлагает сразу загрузить архив с драйвером (без пред-просмотра лишней рекламы).
Строку с ИД можно просто вставить в любую поисковую машину и произвести поиск. При поиске драйверов к оборудованию от малоизвестных китайских брендов — нередко драйвер можно загрузить только с очень «специфичных» сайтов.

Дополнение!
После загрузки архива (исполняемого файла) с драйверами — рекомендую проверить его при помощи спец. инструментов: https://ocomp.info/onlayn-antivirusyi.html#___URL
ШАГ 3: как установить драйвер, если нет исполняемого файла setup.exe / install.exe
❶ Если драйвер запакован в архив ZIP, RAR и пр.
Сначала извлеките содержимое архива (лучшие архиваторы). Как привило, в архиве содержится каталог с большим количеством «мелких» файлов и исполняемый файл setup.exe , который и нужно запустить для установки драйвера.

Извлечь файлы / Кликабельно
❷ Если исполняемого файла setup.exe нет
Тогда откройте диспетчер устройств (как это сделать), затем кликните правой кнопкой мышки по оборудованию и выберите в меню «Обновить драйвер» .

Диспетчер устройств — обновить драйвер
После выберите вариант «Выполнить поиск драйверов на этом компьютере» .

Выполнить поиск драйверов на этом компьютере
И укажите папку, куда были сохранены (извлечены из архива) файлы драйвера. После нажмите «Далее» .
Поиск драйвера на этом компьютере
Далее Windows проверит папку и предложит выбрать драйвер для установки. В общем-то, осталось только дождаться окончания установки.

Выбор драйвера для этого устройства
PS
Если вышеприведенный алгоритм вам показался сложным — попробуйте автоматический вариант поиска и установки драйверов. Для этого необходимо использовать спец. утилиты. О них я рассказывал в этой статье: https://ocomp.info/update-drivers.html

Обновить сейчас — 21 устройство! (обновление драйверов в 1 клик мышкой в Driver Booster)
На этом пока всё. Удачной работы!
Первая публикация: 21 Февраля 2019
Похожие статьи
-
Содержание Исправить код ошибки 43 для USB в Windows 10 и восстановить данные Исправляем ошибку Код 43 на USB/внешнем жестком диске в Windows 10 Ошибка:…
-
Win 10 диспетчер устройств как найти
Содержание Открываем Диспетчер устройств в Windows 10 Запуск Диспетчера устройств в Виндовс 10 Способ 1: Меню «Пуск» Способ 2: Окно «Выполнить» Способ 3:…