- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using Cypress EZ-USB FX3 SDK v 1.3.3.
To increase transfer speed I choose an asynchronous model and BULK transfers.
So sometimes (after 3, 10 or 30 minutes, times vary) I received a Stall condition.
Received data lenght ("rLen" in code sample) in this case is 0. In all other cases it's more than zero.
After receiving Stall I try to Abort and Reset Pipe (without success).
Also I try to close transfer using FinishDataXfer.
And while do this I receive such exception "Invalid address specified to RtlValidateHeap( 0000000000A10000, 000000002C4B4A50 ) " at one of the queue element.
Can you help me with this situation?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I see that you are resetting the pipe after the error condition from the host side. What do you do from the FX3 device when you receive a stall? You need to reset the DMA channel and the USB EPs once the error happens. This you can do using a clear feature request. We have handled the clear feature request in AN75779 firmware which you can take reference from. Also, you can refer the Cypress streamer application which uses asynchronous methods of transfer.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for answer!
Yes, we reset USB EPs. We already using asynchronous methods of transfer. Can you tell me the reason of this stall and how to avoid it?