Regard to the cdc endpoint in usb composite ( cdc + msd )

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

Regard to the cdc endpoint in usb composite ( cdc + msd )

Jump to solution
2,556 Views
jimhuang2
Contributor III

Hello,

I create the usb composite cdc msc project, and I'm going  to see usb_device_descriptor.c/.h, I don't understand that Bulk IN and Bulk OUT endpoint number is same in the endpoint descriptor of Data Interface descriptor (below picture : Green wire).

pastedImage_4.bmppastedImage_3.bmp

I try to change Bulk OUT number 3 to number 5, This change will cause cdc to don't work. 

pastedImage_1.bmp

I think it is related to the driver(INF), but not very sure.

Why the Bulk IN and Bulk OUT endpoint number is same?

Best Regards,

Jim

Tags (1)
0 Kudos
Reply
1 Solution
2,366 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi Jim,

Please see the USB 2.0 specification. In section 5.3.1.2, it shows

"Functions can have additional endpoints as required for their implementation. Low-speed functions are
limited to two optional endpoints beyond the two required to implement the Default Control Pipe. Fullspeed
devices can have additional endpoints only limited by the protocol definition (i.e., a maximum of 15
additional input endpoints and 15 additional output endpoints)."

Regards,

Jing

View solution in original post

0 Kudos
Reply
4 Replies
2,365 Views
jimhuang2
Contributor III

Hi Jing,

I am going to see 5.3.1.2 Non-endpoint Zero Requirements, but the next chapter "5.3.2. Stream Pipes" have describe  

 

Stream pipes deliver data in the data packet portion of bus transactions with no USB-required structure on
the data content. Data flows in at one end of a stream pipe and out the other end in the same order. Stream
pipes are always uni-directional in their communication flow.

 

A stream pipe to a device is bound to a single device endpoint number in the appropriate direction (i.e.,
corresponding to an IN or OUT token as defined by the protocol layer). The device endpoint number for the
opposite direction can be used for some other stream pipe to the device.

 

Stream pipes support bulk, isochronous, and interrupt transfer types, which are explained in later sections.

 

So, I think an endpoints number only set one transmission direction.

 

Best Regards,

Jim

0 Kudos
Reply
2,365 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi,

No. For example, the pipe on endpoint 1 out and endpoint 1 in is different pipe, they are different endpoint.

Regards,

jing

0 Kudos
Reply
2,367 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi Jim,

Please see the USB 2.0 specification. In section 5.3.1.2, it shows

"Functions can have additional endpoints as required for their implementation. Low-speed functions are
limited to two optional endpoints beyond the two required to implement the Default Control Pipe. Fullspeed
devices can have additional endpoints only limited by the protocol definition (i.e., a maximum of 15
additional input endpoints and 15 additional output endpoints)."

Regards,

Jing

0 Kudos
Reply
2,365 Views
jimhuang2
Contributor III

Thank you for your reply, I tested that IN and OUT endpoint number is same to work. 

0 Kudos
Reply