Перейти к содержанию
    

Да это странности USBLyzer-а.

Ендпоинты конфигурируются... ПРосто с нестартующим устройством до них (кроме нулевого) не доходит дело.

 

...

 

Забил все строковые дескрипторы для ясности нулями.

ПОведение не поменялось - нестартующий единственный CDC EEM и нормально работающие остальные варианты.

Даже такой как непоставившийся драйвер CDC-ECM и работающий при этом CDC-EEM. Непоказывающийся MAC в ECM это тоже глюк USBLYZER

 

EEM.pdf

2xCDC_ACM_1xCDC_EEM.pdf

eem_ecm.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может VID или PID поменять? Например те VID и PID которые есть, вызывают драйвер, которому единственное устройство EEM не нравится... Попробуйте заменить их, чтоб винда заново драйвер для устройства поставила.

Или, если не менять VID/PID - удалить драйвер комбинированного устройства, и попробовать поставить с теми-же VID/PID устройство единственное. Может винда чего напишет новое.

 

А если нет, то я тоже склоняюсь к тому, чтобы посмотреть дескрипторы от рабочего устройства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Менять vid/pid пробовал... Но это и не нужно - драйвер нашелся, в диагностике написано что запустить не может.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте в "Device Descriptor" для единственного устройства, в полях Class, Subclass, Protocol, поставить значения:

02, 06, 00

02, 06, 01

02, 00, 00

02, 00, 01

Вдруг какое-то заработает.

 

02, 06, 00 предлагают для ECM на MSDN https://msdn.microsoft.com/en-us/library/wi...7(v=vs.85).aspx

 

02, 00, 00 на каких-то сайтах про ECM https://sourceforge.net/p/contiki/mailman/message/25268923/

https://www.xmos.com/download/private/AN001...2.0.2rc1%29.pdf

Но если EEM работает на дескрипторах ECM, то можно значит пробовать и с другими настройками ECM что-то подбирать для EEM.

 

xx, xx, 01 это мой вариант для сохранения "Interface Association Descriptor", который вроде бы и не влияет, но вдруг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

EEM работает на дескрипторах EEM. Не ECM. Если я получу устройство ECM (которое хоть и без драйвера, но опознается корректно - в device manager соответствующее composite device появляется, в отличии от EEM одиночного) - что толку? Тем более, что дескриптор EEM сильно от ECM отличается - в ECM два интерфейса, например вместо одного у EEM. В той строке на которую я сослался в своих исходниках, видно все функции, которые могут поддерживаться в enumerate.

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

EEM работает на дескрипторах EEM. Не ECM.

Согласен. Но поскольку вы используете Class, SubClass от ECM для EEM (0xef, 02) - значит можно для EEM попробовать и другие допустимые для ECM значения Class, SubClass. По моему логично.

дескриптор EEM сильно от ECM отличается - в ECM два интерфейса, например вместо одного у EEM.

Согласен полностью. Но т.к. работающие комбинированные интерфейсы начинаются с Class 0xef (miscellaneous), и в принципе так и должно быть, раз "замешано" несколько устройств, то может быть для единственного EEM нужен простой Class?

 

Пока ищутся оригинальные дескрипторы EEM, можно попробовать подобрать свои варианты :laughing: (если они хоть как-то логически обоснованы)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

0xef, 02, 0x01 - это означает, что информация о классах берется не из device descriptor, а устройство составное, в нем много разных функций может быть... Эти значения и для аудио и для компортов...

 

может быть для единственного EEM нужен простой Class

А почему он не нужен для единственного компорта (было), аудиоустройства, ECM наконец?

 

В аттачменте документ с картинками про составные устройства.

iadclasscode_r10.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему он не нужен для единственного компорта (было), аудиоустройства, ECM наконец?

На сайте MSDN если (я правильно понял), как раз для ECM и предлагается 02, 06, 00. Если конечно ECM и ENCM это одно и то же.

 

Вот ещё вариант. В этот раз точно для EEM http://www.usb.org/developers/docs/devclas...s/CDC_EEM10.pdf

стр.13-14, Class, SubClass, Protocol: 02, 0x0C, 07

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Класс/подкласс и протокол в случае составного устройства берутся оттуда, где им и положено быть - или из interface association descriptor каждой функции или из interface descriptor функции с одним интерфейсом (вольный пересказ документа).

Жаль, что DiMonster последний раз был тут

Последнее посещение: 11th November 2016 - 22:37

 

Вот ещё вариант. В этот раз точно для EEM http://www.usb.org/developers/docs/devclas...s/CDC_EEM10.pdf

стр.13-14, Class, SubClass, Protocol: 02, 0x0C, 07

А я какой еще мог использовать, как не этот?

post-28634-1484077084_thumb.png

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Класс/подкласс и протокол в случае составного устройства берутся оттуда, где им и положено быть - или из interface association descriptor каждой функции или из interface descriptor функции с одним интерфейсом (вольный пересказ документа).

Да. Но вы же делаете из составного устройства простое, в случае с единственным EEM. Наверное для него нужен и дескриптор простого устройства (хотя бы Device Descriptor). Почему бы нет?

Для простых устройств можно указывать Class, Subclass, Protocol прямо в "Device Descriptor".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но вы же делаете из составного устройства простое, в случае с единственным EEM

Нет, это составное устройство с одной функцией. Работает со всеми типами, что я проверял, кроме EEM.

У составного и "простого" разные форматы device descriptor для начала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не видел дескриптора EEM "в глаза", и могу только гадать что там должно быть. В даташите от USB.org написано, что эти значения можно применять не только для "Interface Descriptor", но и для "Device Descriptor".

Если 02, 0С, 07 можно поставить прямо в "Device Descriptor", значит возможна и такая конфигурация.

Потому и предложил это рассмотреть.

 

Но если дело точно не в дескрипторах, тогда я пока ничего больше предложить не могу.

post-45309-1484079847_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот такие тоже не работают...

Если 02, 0С, 07 можно поставить прямо в "Device Descriptor", значит возможна и такая конфигурация

zzz1.pdf именно такой случай.

zzz.pdf

zzz1.pdf

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Применил тяжелую артиллерию...

На другом процессоре (Renesas RZA1L) на USB HS интерфейсе одиночный CDC EEM нормально опознался!

Однако, соответствующее USB composite device в дереве device manager-а не появилось...

При этом, на USB FS так же с ошибкой о неудачном запуске.

Если добавлялись иные функции, так же нормально работает и на FS и на HS.

 

ps: в endpoint дескрипторах с типом bulk поле bInterval не игнорируется, а имеет вполне конкретное назначение.

USB_CDC_EEM_HS_working.pdf

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Под линуксом что UAC+ECM, что EEM отдельно опознается нормально. Десятки нет и не будет. Под семеркой - код 28, "нет драйвера".

Пробовал покупную сетевуху на ASIX..178 - она вообще vendor defined class. Драйвер подгрузился автоматом из интернета. Может быть, рабочий дескриптор EEM на симках/смарткартах можно увидеть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...