fx3 isochronous loop programming at linux platfrom

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

cross mob
Anonymous
Not applicable

hello 

   

    i try to receive continue data from fx3 by usb isochronous at linux platform.

   

    have any sample code about this? thanks a lot

0 Likes
8 Replies
Anonymous
Not applicable

Please try with USBIsoSourceSink firmware in the FX3 SDK

0 Likes
Anonymous
Not applicable

hi Nishant

   

        thanks for your reply.

   

        where can i found the USBIsoSourceSink firmware? and how could I test the transmition is OK by linux user space program?

   

 

   

          i have some development problem on Linux, can I send email to you?

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Please download the FX3 SDK for Linux. The example is present here:  firmware\basic_examples\cyfxisosrcsink

   

​You can test using cyusb_linux application provided by Cypress (I am attaching the latest version here)

0 Likes
Anonymous
Not applicable

hi Nishant

   

the file need password to unzip.

   

but i use cyusb_linux_1.0.4.zip which download from cypress website.

   

i use sample code named cyisoread_sample to read isochronous packet to test transfer if is OK.

   

it seem's GOOD.

   

When i try to build this firmware.

   

first i buid firmware/basic_example/cyfxisosrcsink, and got cyfxisosrcsink.img(1).

   

but this firmware is a little different from cyusb_linux_1.0.4/fx3_image/cyfxisosrcsink.img(2)

   

the image(2) max packet size is 1024B, but image(1) is 3072B.

   

and use image(1) , the cyisoread_sample will crash, when get endpoint information.

   

where can i got the source code of image(2) ?

   

 

   

thanks a lot

0 Likes
Anonymous
Not applicable

The password is: CYPRESS

   

I suggest you install this new version of cyusb_linux. We have added a new tab for streaming the data.

   

You can use the same source (image 1) just be changing the number of packets set to 1 (CY_FX_ISO_PKTS)

0 Likes
Anonymous
Not applicable

hi Nishant

   

thanks for your reply.

   

the usb_linux_1.0.5/gui_src/streamer.cpp is really helpful for me to implement user space streaming program.

   

I have an another question about "Number of ISO descriptors".

   

When i use cyusb_linux/streamer function and sniffer usb raw data by wireshark. I found the cyfxisosrcsink image will send 32 iso descriptors per urb packet. But My custom image will send 10 iso descriptors per urb packet.

   

Do you know why ? and which configuration at firmware will affect the number of iso descriptors?

   

the Number of iso descriptors will affect data streaming performance??

0 Likes
Anonymous
Not applicable

In Isoc, the number of burst and mult changes the streaming rate. Please compare the EP descriptors and let me know what is the burst and mult setting for both the firmware images.

0 Likes
Anonymous
Not applicable

HI Nishant

   

thank's for your reply.

   


Unfortunately, i can't get the custom image's source code.

   

I can get GOOD performance on USB2.0 port at Ubuntu 16.04.

   

But, when I use USB3.0 , the performance is not well.

   

when i insert into usb2.0 port at Ubuntu, the ISOC EP IN max packet size is 3072Bytes.

   

But when i insert into usb3.0 port at Ubuntu, the ISOC EP IN max packet size is become 1024Bytes.

   

At Windows 7 usb3.0 got the ISOC EP IN max packet size is 9216Bytes.

   

Why Linux got the different result from WINDOWS?

   

The Max Packet Size will effect the transfer performance?

0 Likes