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

cross mob
MocciJ
Level 1
Level 1
First reply posted First question asked Welcome!

Hello,

We are upgrading the communication interface of our peripheal from USB2 to USB3 with an FX3 development kit CYUSB3KIT-003.

This peripheal will be connected to a Windows computer.

In our application, the peripheal must receive packets (size below 512Bytes) at the lowest latency possible (<200us).

Is this latency figure achievable with this configuration?

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.

Hello,

I have performed two tests to determine the latency. The same tests can also be done at your end to check latency as both the tests were done on CYUSB3KIT-003. Please find the details of the tests mentioned below:

1. Test 1:

Note: For this test, use the firmware and test application attached in test1.zip.

In this test, the device enumerates with a Bulk OUT and Bulk IN endpoint. After the device is enumerated, run the host application. The host will send two BULK OUT packets of length 1024 bytes to the device one after the other. The USB trace can be captured by using Wireshark. The following snapshot shows the timestamps of the two transfers:

JayakrishnaT_76_0-1637728709962.png

From this, we can understand that the latency (difference between timestamps) is less than 200us. 

This test made use of XferData which performs synchronous (i.e blocking) IO operations. You can find more information about XferData in the following document in CyAPI.doc in the following location of FX3 SDK:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\SuiteUSB

Test 2:

Note: For test 2, make use of the firmware that is attached along with test2.zip. The host application used for this test is C++ streamer application that comes along with FX3 SDK. Streamer application will perform asynchronous IO operations.

After programming the device with the firmware in test2.zip, run the streamer application. The snapshot of streamer application used for the test is given below:

JayakrishnaT_76_4-1637730000262.png

The above settings means that we have queued 32 1024 byte packets. Hit start button to start the transfers. The snapshot of Wireshark traces for this test is given below:

JayakrishnaT_76_3-1637729981926.png

 

The highlighted entry is the start of a new queue. You can find that within a queue, the transfers are so fast. But as soon as one queue of transfers are completed, there is a latency to send the next packet.

So, from these tests you can find that the latency is less than 200us as mentioned in your requirement.

Best Regards,
Jayakrishna

View solution in original post

0 Likes
6 Replies