|
|
Discussion Forum
USB: Multiple IADs in composite device?
Next Thread | Thread List | Previous Thread
Start a Thread | Settings
| Details |
Message |
|
Read-Only
Author Pavel Faltynek
Posted 13-Feb-2009 07:34 GMT
Toolset ARM
|
 USB: Multiple IADs in composite device?
Pavel Faltynek
Hi,
I would like to be able to construct composite USB device
encapsulating N serial ports. Having used CDC/ACM class and some
examples from Keil (Keil\ARM\Boards\Keil\MCB2300\USBCDC) for LPC2386
adopted to my target board, it is not a problem to have one port app
working.
Also after updating the descriptor to associate Comm and Data
classes into single IAD the device still seems to work ok (WinXP SP3,
usbser.sys 5.1.2600.5512, uspccgp 5.1.2600.5585).
When I duplicate whole IAD section once more in the config, the
device still operates and two IADs are recognized (USBlyzer SW), but
only one serial port instance is created.
Is there a need to update also the .inf file
(Keil\ARM\Boards\Keil\MCB2300\USBCDC\mcb2300-vcom.inf) to be able to
"install multiple drivers" for each function?
Regarding one of sources, I appended an MI_00, MI_01 to items on
[DeviceList], cleared the device manager, replugged the device, but
windows refuses "updated" inf.
Maybe wrong descriptors, maybe wrong inf (any resources to get
oriented in this magic?), maybe both.
Any help/advice/tips appreciated.
Thanks.
Resources I used:
https://www.usb.org/phpbb/viewtopic.php?t=13610
https://www.usb.org/phpbb/viewtopic.php?t=13308
http://www.cygnal.org/ubb/Forum9/HTML/001050.html
http://www.cygnal.org/ubb/Forum9/HTML/001572.html
http://www.techtalkz.com/microsoft-device-drivers/265030-implementing-multiple-cdcs.html
|
|
|
Read-Only
Author Tsuneo Chinzei
Posted 13-Feb-2009 10:41 GMT
Toolset ARM
|
 RE: USB: Multiple IADs in composite device?
Tsuneo Chinzei
"Regarding one of sources, I appended an MI_00, MI_01 to items
on [DeviceList], cleared the device manager, replugged the device,
but windows refuses "updated" inf."
The second interface is MI_02, instead of MI_01.
It matches to the interface number of Communication Class interface
of each unit.
[DeviceList]
%DESCRIPTION% = MCB2300USB, USB\VID_vvvv&PID_pppp&MI_00,
USB\VID_vvvv&PID_pppp&MI_02
Tsuneo
|
|
|
Read-Only
Author Tsuneo Chinzei
Posted 13-Feb-2009 11:01 GMT
Toolset ARM
|
 RE: USB: Multiple IADs in composite device?
Tsuneo Chinzei
Delete the device instance(s) of the VID/PID on Device Manager,
when you change
- device descriptor and/or configuration desc set on the firmware
- INF file
USBDeview is a helpful to delete (uninstall) the device
instances.
USBDeview
http://www.nirsoft.net/utils/usb_devices_view.html
You may need to delete the copy of old INF file.
The INF file is copied to C:\Windows\inf folder, which is invisible
(hidden) as the default.
- Make this inf folder visible using Toos > folder options,
display tab - "display all files and folders".
Copied INF file is renamed to oemNNN.inf (NNN = number) in this
folder
- Search the contents of *.inf files for the VID/PID
grep or Windows buit-in "Search" will do this work.
- Delete oemNNN.inf and oemNNN.pnf pair, which has the VID/PID
Tsuneo
|
|
|
Read-Only
Author Pavel Faltynek
Posted 13-Feb-2009 11:21 GMT
Toolset ARM
|
 RE: USB: Multiple IADs in composite device?
Pavel Faltynek
Tsuneo,
thanks for quick responses and patience answering the same things
again and again. Also I would like to thank you for all your
posts/examples/etc. in different forums. Very helpfull stuff.
I noticed lot of people still search for multiple virtual COM info,
so if you would consider this as an another subject for one of your
examples, I think many people would appreciate it.
Meanwhile in the continuous process of research and trying, I have
found few bugs in descriptors (e.g. had 0xfe instead of 0xef for MISC
class, forgot update total number of interfaces, ...).
Also found on some forum the MI_xx stands for multiple interface
and thus the number is interface number. So now looks like the
Windows determines the right device (composite one instead of single
CDC) and "installs" drivers per function. Your example .inf file
(from CDC/IAD & HID composite) helped me alot.
Regards Pavel
|
|
Next Thread | Thread List | Previous Thread
Start a Thread | Settings
|
|
|