- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is never CYU3P_USBEP_SS_RESET_EVT or CYU3P_USBEP_SS_RETRY_EVT anymore now
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Even running for hours.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
"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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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