FX3 Bulk streaming example

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi All,

   

I'm developing host side application using Bulk Streams (using an XHCI Intel controller, and also others for the host side). I would like to use the FX3 board for the device side.

   

I tried to run the USB 3 bulk streaming example (USBBulkStreams), but faced several difficulties:

   

In the USB control center application pressing transfer data for either bulk in or out results in error code 997.

   
    

BULK OUT transfer
BULK OUT transfer failed with Error Code:997

    

BULK IN transfer
BULK IN transfer failed with Error Code:997

   
   

What is this error?

   

How can I overcome it?

   

How did you test this firmware application on the PC?

   

 

   

Thanks!

0 Likes
4 Replies
Anonymous
Not applicable

Hi! The Concept of Bulk streams is newly added in USB3. In USB 2, a bulk endpoint can send only a single stream.

   

The CyUSB3 driver do not supports bulk streams. This is why you are getting the error with the Control Center utility.

   

To test the bulk streaming functionality, you need to use the Microsoft drivers and write your host application on top of that.

   

You can refer to this for more details :

   

https://msdn.microsoft.com/en-us/library/windows/hardware/hh450846(v=vs.85).aspx

0 Likes
Anonymous
Not applicable

Hi Dhritiman,

   

Thanks for your answer.

   

It would seem that writing such bulk application is not that easy, right?

   

Will streams work if I use the FX3 SDK in linux?

   

e.g. using your control center application in linux to send/received bulk stream data, with your linux USB driver.

   

Will that work?

   

Thanks,

0 Likes
Anonymous
Not applicable

No, CYUSB3 driver  do not supports bulk streams.

0 Likes
HariprasadP_06
Employee
Employee
First like received Welcome!

FX3 firmware supports ‘bulk streams’(multiple streams in same endpoint as in example USBBulkStreams) functionality in the firmware. But CYUSB3 driver(for windows) do not support this functionality. In Linux, we uses libusb driver even for FX3 code examples (vendor class devices). From the libusb documentations link given below ‘libusb_alloc_streams’ API uses the num_streams argument can be used to have multiple streams to a same endpoint. 

http://libusb.sourceforge.net/api-1.0/group__asyncio.html#ga2dd2597a76df55e8d2f3e67b9ccea959

So we can say that in Linux, multiple bulk streams can be supported. cyusb3.sys donot support this feature.

0 Likes