The iMX7D, iMX8M Mini or iMX8M Plus reference manuals state that each USB controller has 8 or 4 programmable bidirectional endpoints (iMX7D: page 3777, iMX8M Mini: page 2653, iMX8M Plus: page 2681)
Does this include the always mandatory control endpoint 0, so only 3 bidirectional endpoints are available for the USB device to function?
已解决! 转到解答。
Thank you for the clarification.
With that in mind, the 4 endpoints of the iMX8M Plus are not much.
We want to create a compound device that has at least a MTP and a WinUSB interface. Since MTP must have a Bulk-In, a Bulk-Out and an INT-In, that leaves just one bidirectional endpoint for the WinUSB interface.
I find this misleading. Vybrid family has "Up to 6 bidirectional endpoints" in reference manual, it has as well DEVEP=6 in read only USB HWDEVICE register. Which really means 6 TX endpoints plus 6 RX endpoints with dedicated bits for each RX and TX endpoints in ENDPTNAK and other registers. So 12 in total. Setup endpoint(s) is included in this count.
iMX7D has if not the same somewhat similar controller. It has "Up to 8 bidirectional endpoints" in RM, DEVEP=8. This as well means 8 TX endpoints plus 8 RX endpoints. 16 in total.
Can't say about iMX8M, please check reference manual yourself.
Edward