I want to dig into the USB interface. The goal is to have a high data rate interface with easy host driver implementation.
I'm not sure if I should use HID class or 'generic' interrupt endpoint implementation.
For the HID class:
If I understand HID class correctly, the specification only allows one IN and one optional OUT endpoint. Is this correct?
So the speed is limited to 64kB per HID. Now, I'm struggling with IAD (interface association descriptor). The IAD allows to collect endpoints into a single device. Is this also allowed for HID class ? So I could e.g. have a single HID with 4/4 IN/OUT endpoints on a PSoC 5LP? The benefit is that HID is supported on all main OS.
For the 'generic' interrupt endpoints:
If the above is not allowed by HID class, is it possible to use 4/4 interrupt IN/OUT endpoints without writing a custom host driver? From the SuiteUSB documentation, I couldn't get the information if this is supported. I assume that only a correct INF file is neccessary, is this true? If so, is there something like a INF file generator or at least a good manual how to do it?
Can you please have a look at the application notes,
For HID device class, driver is not required, OS driver support will be there. I belive that if you have a proper .inf file, it should get enumerated automatically. However we have not tested the exact use case 4/4 interrupt IN/OUT endpoint configuration.
I know those application notes, that's why I asked about IAD (composite device). According to AN58726 there should be an application note about creating/editing INF files, but I didn't find any application notes.