Yuricsson 0 2 апреля, 2016 Опубликовано 2 апреля, 2016 · Жалоба Понимаю, что не по спецификации живу, но: насколько я буду неправ, если в устройстве, в котором установлена микросхема philips pdiusbd12 (поддерживает спецификацию usb 1.1), пропишу в дескрипторе bcdUSB == 0x0200? Почему это хочу: хочу, чтобы устройство отдавало UsbOsStringDescriptor, который запрашивается только начиная с версии 0x0200. По сути usb2.0 устройства используют hi-speed режим только с набором особенных дескрипторов. Если у меня останется набор обычных full-speed дескрипторов, насколько я пойду на сделку с собственной совестью? На other_speed_descriptor и всякие квалифаеры честно обязуюсь stall pid. Может кто-нибудь аргументировано отговорить меня от предательства основ профессии или, наоборот, склонить к бессовестному обману операционной системы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 51 15 апреля, 2016 Опубликовано 15 апреля, 2016 (изменено) · Жалоба Понимаю, что не по спецификации живу, но: насколько я буду неправ, если в устройстве, в котором установлена микросхема philips pdiusbd12 (поддерживает спецификацию usb 1.1), пропишу в дескрипторе bcdUSB == 0x0200? Не знаю, по каким спецификациям живут разработчики логитеч, но их это не смущает, там даже не full, а low speed. Изменено 15 апреля, 2016 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuricsson 0 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба Спасибо! Ещё по собранной информации понял, что идентификация устройства как high-speed происходит на этапе pull-up на d+, там некий протокол задействован, не вдавался в подробности. А информация в дескрипторе в поле bcdUSB скорее нужна для отсекания лишних заведомо неподдерживаемых запросов. В общем, прописал везде в своих устройствах 0x0200, и всё вроде нормально работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться