Difference in FX2/FX2LP reported pipe order between USB 2.0 and USB 1.1 hosts

Question: In dscr.a51, my pipes are defined as:  pipe0: endpoint 2 OUT pipe1: endpoint 1 OUT pipe2: endpoint 2 IN pipe3: endpoint 1 IN  On a computer with USB 2.0, everything is okay (i.e. all pipes are reported correctly and in the right order), but on a computer with USB 1.1, the pipe order changed to:  pipe0: endpoint 1 OUT pipe1: endpoint 1 IN pipe2: endpoint 2 OUT  No matter how I change the dscr.a51 (different order, less endpoints), there are always 3 pipes and endpoints reported on a USB 1.1 host. What could be the problem?

 

Answer:

The order of the pipe number is defined by the order in which the endpoint descriptors are described in each configuration descriptor in dscr.a51. There is a full-speed configuration and high-speed configuration section. You should have the following defined in the full-speed configuration (which is reported when the FX2/FX2LP connects to a USB 1.1 host):

pipe0: endpoint 1 OUT
pipe1: endpoint 1 IN
pipe2: endpoint 2 OUT