USB HS Module, Endpoint number confusion

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USB HS Module, Endpoint number confusion

Jump to solution
704 Views
michaelhermann0
Contributor III

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

Labels (2)
1 Solution
581 Views
miduo
NXP Employee
NXP Employee

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.

View solution in original post

1 Reply
582 Views
miduo
NXP Employee
NXP Employee

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.