Hey!
we got 2 V-USB driven USB-Devices, a CDC device and a costum device.
Our aim is now to get these two devices to one single composite device, but we actually don't have a real idea how
What we found out by now:
- We need to modify the descriptors to multiple interfaces
- We need to change the event-handler so the Packet with the right ID gets to the right Interface.
Now we have 2 problems:
- with the descriptor setting based on #define's i have no idea how to change the descriptor. Is there a way to change the descriptor directly? (well, beneath changing the lib itself )
- the event-handler bases on USB_Poll, how do we get the right data to the right interface?
Maybe it should have been the first question, but is it possible using the V-USB library?
The Wiki doesn't even know the word "composite"
Any help will be appreciated,
Thanks,
Kai
*edit* and one more thing:
it is correct that combining them in a composite is the right way as we don't want to change ANYTHING on the drive for the costum device, is it?
2 V-USB Devices merged to a Composite Device?
Re: 2 V-USB Devices merged to a Composite Device?
You can replace every USB descriptor with your own version by defining USB_CFG_DESCR_PROPS_DEVICE, USB_CFG_DESCR_PROPS_CONFIGURATION and so on. You can supply your own version in flash memory or as return value from a function call.
Don't know whether you actually need a composite device, though. You can easily send your custom requests to a CDC (or whatever) class device and they will arrive in usbFunctionSetup(). Just make sure that your request IDs don't conflict with the class requests.
Don't know whether you actually need a composite device, though. You can easily send your custom requests to a CDC (or whatever) class device and they will arrive in usbFunctionSetup(). Just make sure that your request IDs don't conflict with the class requests.