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

посоветуйте преобразователь USB - I2C

20 minutes ago, Сергей Борщ said:

делает win-hid-dump

Он в exception падает при запросе CP2112.

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


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

2 часа назад, Сергей Борщ сказал:

Виндовс не дает сторонней программе прочитать report descriptors.

Шарик нормально смотрит все под 10кой. Просматриваю так инициализацию новых BT донглов из стека Win.

Подстыковали, настроили фильтр захвата. Вынули. Включаете запись только этого устройства и втыкаете. Всё на месте... 

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

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


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

47 минут назад, Gradient сказал:

Шарик нормально смотрит все под 10кой.

Я где-то писал обратное? Вы попробуйте любой программой спросить эти дескрипторы у виндовса или из своей программрй прочитать этот дескриптор средствами виндовса - вот тут вас будет ждать облом, потому что виндовс формирует неправильный запрос, на который любое устройство, соответствующее спецификации USB отвечать не будет.

Вот ответ от автора USB Tree View:

Цитата

that's a known problem. From UsbTreeView.txt:

About HID descriptors

HID descriptors usually cannot be read. Probably this is because they
must be requested from the interface rather than the device but the
IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION call doesn't offer the
choice. The parameters are ignored and filled by the USB stack:
MSDN says: "the USB stack ignores the value of bmRequest and inserts
a value of 0x80 which indicates standard USB device request".
https://msdn.microsoft.com/en-us/library/windows/hardware/ff539272(v=vs.85).aspx
For most devices the result is an ERROR_GEN_FAILURE or ERROR_INVALID_PARAMETER.
But some devices return the HID descriptor anyway.

I've tried to build the request manually and send it by means of IOCTL_USB_USER_REQUEST
but I did not get it work. Others tried before me and failed tool.

Regards,
Uwe Sieber

 

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


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

Не совсем понял трудности.. просто программа конечно не может подсесть к обмену, понятное дело. Шарик читает через драйвер уже за пределами user space. Затем, когда у вас уже есть дамп, открываете нужный драйвер и ему туда всё наливаете согласно протокола. У меня методика нормально работает. Ну и более того. Например кипарисным драйвером не родным рулю нормально любыми BT донглами. Картинку прицепил...  

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

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


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

25 минут назад, Gradient сказал:

просто программа конечно не может подсесть к обмену, понятное дело

Просто программа может попросить виндовс спросить у устройства все остальные дескрипторы. И только запрос HID report descriptor виндовс переиначивает по-своему. 

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


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

А если попробовать это сделать через драйвер типа libusbK или подобный?

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


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

Через WinUSB тоже прокатывает.  libusb сначала тоже пользовал, но он оказался очень медленным по сравнению с Кипарис и его пришлось удалить из сборки. Кипарис делает всех по производительности.

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


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

1 минуту назад, jcxz сказал:

А если попробовать это сделать через драйвер

Мне хватает lsusb -v -d <vid>:<pid>

А кто сидит под виндовсом - пусть сами решают, как кушать кактус .

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


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

К сожалению, все "мухи выбирают кактус и они не могут ошибаться". Чтоб что-то продать с горем пополам, приходится это хлебать.

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


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

7 минут назад, Gradient сказал:

Через WinUSB тоже прокатывает.  libusb сначала тоже пользовал, но он оказался очень медленным по сравнению с Кипарис и его пришлось удалить из сборки. Кипарис делает всех по производительности.

Я говорил про libusbK, а не libusb ! Это совершенно разные вещи.

http://libusbk.sourceforge.net/UsbK3/index.html

7 минут назад, Gradient сказал:

Кипарис делает всех по производительности.

Кипарис - кривой. Описывал это здесь: 

Поэтому - более его не использую.

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


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

Был libusb-win32, тот что Zadig ставит.

----

 

Вероятно и так, не пользую изохронный режим, все по прерываниям, короткими пакетами.

У кипариса есть цифровая подпись и нет трудностей с установкой. Остальные кроме WinUSB сложные для пользователя. Надо делать свой установщик, в 90% компаний это дело жестоко пресекают. Не дают запускать Сетап, и никто ваш софт потестить ставить не хочет, чтоб не нажить проблем с админами. С точки зрения "борьбы за солнце", пользователя напрягать нельзя, не будет шансов на успех.

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

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


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


Под Linux можно прочитать report descriptor командой
sudo usbhid-dump -d VID:PID
а конкретно для CP2112
sudo usbhid-dump -d 10C4:EA90

Просьба владельцам CP2112, пожалуйста, сделайте дамп под  Linux, а если он не установлен, загрузитесь с флешки или CD/DVD-R SystemRescue, которая и по прямому назначению может когда-нибудь пригодится.

https://www.system-rescue.org/Download/

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


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

20 minutes ago, firew0rker said:

можно прочитать

usbhid-dump -d 10C4:EA90
001:004:000:DESCRIPTOR         1631361903.939282
 06 00 FF 09 01 A1 01 85 01 95 01 75 08 26 FF 00
 15 00 09 01 B1 02 85 02 95 04 75 08 26 FF 00 15
 00 09 01 B1 02 85 03 95 01 75 08 26 FF 00 15 00
 09 01 B1 02 85 04 95 02 75 08 26 FF 00 15 00 09
 01 B1 02 85 05 95 02 75 08 26 FF 00 15 00 09 01
 B1 02 85 06 95 0D 75 08 26 FF 00 15 00 09 01 B1
 02 85 10 95 3F 75 08 26 FF 00 15 00 09 01 91 02
 85 11 95 3F 75 08 26 FF 00 15 00 09 01 91 02 85
 12 95 3F 75 08 26 FF 00 15 00 09 01 91 02 85 13
 95 3F 75 08 26 FF 00 15 00 09 01 81 02 85 14 95
 3F 75 08 26 FF 00 15 00 09 01 91 02 85 15 95 3F
 75 08 26 FF 00 15 00 09 01 91 02 85 16 95 3F 75
 08 26 FF 00 15 00 09 01 81 02 85 17 95 3F 75 08
 26 FF 00 15 00 09 01 91 02 85 20 95 01 09 01 B1
 02 85 21 95 09 09 01 B1 02 85 22 95 3E 09 01 B1
 02 85 23 95 3E 09 01 B1 02 85 24 95 3E 09 01 B1
 02 C0
 

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


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

Вставила вышеприведённый дамп в массив CUSTOM_HID_ReportDesc_FS.

C этим дескриптором такая ошибка:

Quote

Sep 28 08:38:27 alenchik-home kernel: [ 1831.125923] usb 5-1: new full-speed USB device number 3 using uhci_hcd
Sep 28 08:38:27 alenchik-home kernel: [ 1831.327731] usb 5-1: New USB device found, idVendor=10c4, idProduct=ea90, bcdDevice= 2.00
Sep 28 08:38:27 alenchik-home kernel: [ 1831.327735] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 28 08:38:27 alenchik-home kernel: [ 1831.327737] usb 5-1: Product: CP2112 HID USB-to-SMBus Bridge
Sep 28 08:38:27 alenchik-home kernel: [ 1831.327738] usb 5-1: Manufacturer: Silicon Laboratories
Sep 28 08:38:27 alenchik-home kernel: [ 1831.327740] usb 5-1: SerialNumber: 48FE606A3130
Sep 28 08:38:28 alenchik-home kernel: [ 1831.394557] cp2112 0003:10C4:EA90.0006: unbalanced collection at end of report description
Sep 28 08:38:28 alenchik-home kernel: [ 1831.394572] cp2112 0003:10C4:EA90.0006: parse failed
Sep 28 08:38:28 alenchik-home kernel: [ 1831.394580] cp2112: probe of 0003:10C4:EA90.0006 failed with error -22
 

 

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


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

4 часа назад, firew0rker сказал:

C этим дескриптором такая ошибка:

Вбейте этот дескриптор в HID Descriptor Tool. Он отступами покажет все коллекции и незакрытые будут видны невооруженным глазом. Также там можно в меню выбрать parse descriptor - может быть его отчет натолкнет на какие-то мысли. Или сохраните введенный дескриптор в файл и выложите сюда - подумаем вместе. 

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


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

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

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

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

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

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

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

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

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

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