- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
With Slave/Master example in AN87216, without any data transfer, CyUSBDevice.UsbdStatusString(inEndpoint.UsbdStatus) will returns a stalled state. Is this normal? If so then how to decide when the device is dead?
quote:
"
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.
"
When will CLEAR_FEATURE be sent to the device? Is it when inEndpoint.Reset() on the host? But how to decide when to inEndpoint.Reset() if you can't decide whether the device is dead for not if inEndpoint.UsbdStatus will return stalled even the device is not dead?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Thank you for the update
As per the connection PC<->extending wire<->4 port hub with a 10cm short tail wire<->two FX3 there is too many connections (which can cause poor link) between device and host.
To debug the problem can you try connecting both the FX3 directly to PC and check the status
Regards,
Rashi
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Please refer to this KBA USBD_STATUS_XACT_ERROR (0xC0000011) on high-bandwidth isochronous IN endpoint which mentions the reason for this error. But this KBA is for isochronous endpoint and not BULK endpoint
Regards,
Rashi
Rashi