cancel
Showing results for 
Search instead for 
Did you mean: 

Can USB endpoints be shared between Interface descriptors?

BarryWhit
Senior III

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.

 

- If a post has answered your question, please acknowledge the help you received by clicking "Accept as Solution".
- Once you've solved your issue, please consider posting a summary of any additional details you've learned. Your new knowledge may help others in the future.
10 REPLIES 10
gbm
Lead III

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.