cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

New Contributor II

quote:

"

If FX3 is operating on a USB 3.0 link with poor signal quality, and there are a

number of protocol level CRC errors and retries happening; the device could get

into a state where it sends incorrect data on any of the IN endpoints (including the

control endpoint). This happens due to a known defect in the way the FX3 device

handles a pre-mature burst transfer termination by the host.

SDK versions 1.3.3 and later introduce a firmware work-around to prevent this kind

of failure. The USB driver in the libraries internally manages (suspends and then

resumes) DMA transfers and performs an Endpoint Memory reset when potential

error conditions are seen.

As an endpoint memory reset will result in some loss of data on the in-flight

endpoint; it is required that the firmware application perform an error recovery on

the corresponding endpoint. This can be done by registering for the

CYU3P_USBEP_SS_RESET_EVT event on all IN endpoints, and performing an

endpoint specific recovery when the event is received. The recommended recovery

procedure is to STALL the endpoint, and then stop and restart the DMA data path

when the CLEAR_FEATURE request is received.

"

1. Is there source code for the firmware that send CYU3P_USBEP_SS_RESET_EVT, or is it sent by some proprietary firmware?

2. What is the standard/recommended way to send CLEAR_FEATURE to the device? My understanding is:

   check status of the device, if it is 0xC0000030 USBD_STATUS_ENDPOINT_HALTED, then inEndpoint.Reset().

   inEndpoint.Reset() will take several seconds which is not acceptable by end users, so this problem have to be eliminated.

3. What does "poor signal quality" mean? I use the cable come with the CYUSB3KIT-003 which can be considered good cable but still get this event. Will every product based on FX3 have such problem? Does product based on FX3 require "excellent cable" to work?

Either no CYU3P_USBEP_SS_RESET_EVT or instant recover from CYU3P_USBEP_SS_RESET_EVT is acceptable by end use, but now both seems to be there.

0 Likes
Reply
1 Solution
Moderator
Moderator

Hi,

Uncertified cables can be bad cables. CYU3P_USBEP_SS_RESER_EVT will be notified by library to the firmware when there are lot of retries happening on the USB bus as mentioned in the troubleshooting guide. How to handle such events are mentioned in the below example:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxgpiftousb

Bad cables is a problem to any USB device not only Fx3.

Regards,

Hemanth

Hemanth

View solution in original post

0 Likes
Reply
8 Replies
New Contributor II

One setup with Master/Slave firmware is :

1. 2Gbps continous transfer from master to slave.

2. On average 1.3 slave reset per minutes. No master reset. Both master and slave are transfering data with host at 2Gbps, why is there only slave reset?

0 Likes
Reply
New Contributor II

In an new experiment with the same setup, there are on average 2.4 slave reset per minutes - 143 slave reset in one hour. There is zero master reset.

0 Likes
Reply
New Contributor II

I suddenly noticed that both FX3 are connected to a hub which has a built in short where which is connected to PC through a extending wire which is the source of bad signal quality. Now I connect the hub directly to PC and there has not been CYU3P_USBEP_SS_RESET_EVT for 10 minutes.

0 Likes
Reply
New Contributor II

There is never CYU3P_USBEP_SS_RESET_EVT or CYU3P_USBEP_SS_RETRY_EVT anymore now

0 Likes
Reply
New Contributor II

Even running for hours.

0 Likes
Reply
Moderator
Moderator

Hi,

Uncertified cables can be bad cables. CYU3P_USBEP_SS_RESER_EVT will be notified by library to the firmware when there are lot of retries happening on the USB bus as mentioned in the troubleshooting guide. How to handle such events are mentioned in the below example:

C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxgpiftousb

Bad cables is a problem to any USB device not only Fx3.

Regards,

Hemanth

Hemanth

View solution in original post

0 Likes
Reply
New Contributor II

"Bad cables is a problem to any USB device not only Fx3" Doesn't FX3 have a design defect that make FX3 more sensitive to bad cables then other chips?

0 Likes
Reply
Moderator
Moderator

Hi,

As mentioned in the troubleshooting guide, the problem can occur when 3.0 link is bad due to poor signal quality. So, the problem may not be there even in few uncertified cable if the signal quality is good. And more over, workaround is also provided in case such problem arises.

Regards,

Hemanth 

Hemanth
0 Likes
Reply