2024-06-27 12:30 PM - edited 2024-06-28 02:20 PM
The STM32G4 I'm using supports up to 8 hardware USB endpoints. I'd like to it to enumerate as a composite device with 3 CDC-ACM channels (doing so would greatly simplify the host software).
Since each CDC-ACM class device requires 3 endpoints one each for data in/out, and one interrupt EP for control.,
I'm one endpoint short of success. However, the control endpoint is only used to signal the desired baud-rate to the MCU, which I can either ignore or set for all three channels uniformly. That is, I don't this endpoint for function, but the spec seems to require it.
The question is whether the USB spec actively would allow me to "bend the rules" in this way, by specifying a single end as shared by multiple interfaces. I suspect the device will fail to enumerate, since the OS will reject the descriptors as invalid.
Would appreciate anyone who has information to offer about this kind of hack.
Solved! Go to Solution.
2024-07-01 01:14 PM
In a single pair, there may be one in and one out endpoint, both of the same type. So three pairs may be used as bulk in+out for data traffic and three pairs may be used for providing one interrupt in ep each. There will be one pair left but no extra int in will be possible, needed for the fourth CDC VCOM.