USB HS Module, Endpoint number confusion

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

USB HS Module, Endpoint number confusion

ソリューションへジャンプ
1,312件の閲覧回数
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

ラベル(2)
1 解決策
1,189件の閲覧回数
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.

元の投稿で解決策を見る

1 返信
1,190件の閲覧回数
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.