cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

New Contributor II

Hi all,

I am stuck for a few days with this issue:

To begin with, my setup is the following:

Altera Cyclone V attached through GPIF 2 interface to FX3, which is connected to a windows desktop through USB 3.0 cable.

I validated the system with application note: 001-65974_AN65974_Designing_with_the_EZ-USB_FX3_Slave_FIFO_Interface

The only difference is that, my FPGA is the Cyclone V and the appnote was made to Cyclone III. Just made the porting and everything was up and running.

On the FPGA side, I just merged the two examples of streamIn and streamOut, because I wanted the system to be bidirectional. And when generating data to send to the desktop I was incrementing it, to be as follows: 32'd0000_0000, 32'd0000_0001, 32'd0000_0002, 32'd0000_0003, etc etc etc

On the FX3 is running the SlaveFIFOsync.img which setups the DMA to dispatch data in AUTO mode with two sockets.

On windows desktop I am using the streamer demo from cypress, to measure the XferRate and to watch the data coming through the USB 3.0.

Now, the issue is:

If I select one packet for transfer, I can see the data coming correctly like this:

32'd0000_0000,

32'd0000_0001,

32'd0000_0002,

32'd0000_0003,

....

If I select two packet for transfer, I can see the data coming correctly like this:

32'd0000_0000,

32'd0000_0002,

32'd0000_0004,

32'd0000_0006,

....

If I select four packet for transfer, I can see the data coming correctly like this:

32'd0000_0000,

32'd0000_0004,

32'd0000_0008,

32'd0000_000C,

....

I dont want to use just one packet for Xfer because the Xfer rate is xtremely low.

Maybe the data sampling on the streamer app is being done wrong. I think it is only printing the last 32-bit packet of each Xfer. I cannot access to all the packets in the Xfer.

Can anybody help me on this issue please ?

Thanks in advance,

Pedro

0 Likes
Reply
1 Solution
New Contributor II

Hi,

Just found the issue. There is a problem on the streamer application regarding the Display16Bytes which is printing data when the tick box "show transfered data" is selected. It only prints 16bytes of each packet in each transfer. If you got packets larger than 16 bytes, it won't print all the packet data.

Best regards,

Pedro

View solution in original post

0 Likes
Reply
5 Replies
Moderator
Moderator

Hello Pedro,

Can you please share the snapshots of the above cases of the streamer app?


Did you try scrolling upon the data in the text region in the streamer window?

If not, please try scrolling up to see if the data is actually not received or only the last 32-bits are printed.

Regards,

Yashwant

0 Likes
Reply
New Contributor II

Hello Yashwant,

So here it is for 1 packet per Xfer I can receive, all the data, although I think the streamer.exe function called display16bytes is printing the some 32bit-data four times...

pastedImage_3.png

(continue next reply)

0 Likes
Reply
New Contributor II

Here is for 32-bit data packets per Xfer.

pastedImage_0.png

Any idea of what is going wrong ?

Thanks in advance,

Pedro

0 Likes
Reply
New Contributor II

Hi,

Just found the issue. There is a problem on the streamer application regarding the Display16Bytes which is printing data when the tick box "show transfered data" is selected. It only prints 16bytes of each packet in each transfer. If you got packets larger than 16 bytes, it won't print all the packet data.

Best regards,

Pedro

View solution in original post

0 Likes
Reply
Moderator
Moderator

Hello Pedro,

Yes, you are correct.
But, you can go ahead and modify the Display16Bytes function to display the entire buffer, but this may lead to very less throughput (since a lot of time is needed to display the incoming buffer data on to the terminal).

And you can go ahead and use this custom streamer app for your use case.

Regards,
Yashwant

0 Likes
Reply