Hello,
I'm working with the K28F-Family which has an EHCI-compatible USB module (USBHS) and the USB Stack (2.0.1).
In general things work quite fine, I was able to implement my own composite devices successfully.
I am, however confused, when it comes to the number of endpoints the module supports. Te document I refer to is the Sub-Family Reference Manual Rev. 4 08/2017.
In 54.2.2 it states:
Supports eight programmable, bidirectional USB endpoints, including endpoint 0. See endpoint configurations. The following table 54-1 lists EP1-7 with type IN or OUT.
I did implement a dual CDC+1 generic HID which requires 5 IN-EP and 3 OUT-EP and that seems to run just fine. So I believe that I can have up to 7 IN-EP and 7 OUT-EP in parallel (+ EP0, of course).
In 54.3.14 the DEN field indicates that the module has 8 EP, but does not state whether these are single direction or not.
But then in 54.3.26 there are only four EP (0-3) listed, separated by direction. This also makes for 8 EP, but obviously only EP0IN t- EP3IN and EP0OUT - EP3OUT are available. This pattern repeats in similar registers like 54.3.35.
Since my device actually works I believe the USBHS module does have EP4-EP7 IN/OUT as well and the manual may be wrong.
Or do I miss something and the information is actually consistent?
Regards,
Mike
Solved! Go to Solution.
Hello,
I agree with you. Please be note that endpoint is just a buffer. Per USB spec, bidirectional endpoints should work as IN and OUT simultaneously. USB stack in KSDK2.0 allows you to use the same endpoint as IN and OUT. In previous USB stacks there was a limitation that avoided the usage of such functionality, but now in the latest version it was fixed.
Hello,
I agree with you. Please be note that endpoint is just a buffer. Per USB spec, bidirectional endpoints should work as IN and OUT simultaneously. USB stack in KSDK2.0 allows you to use the same endpoint as IN and OUT. In previous USB stacks there was a limitation that avoided the usage of such functionality, but now in the latest version it was fixed.