- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, I use GPIF state machine to transfer a sector (512 byte) when I start state machine every time. I set a PIB to USB DMA channel, and set 16 buffers, and every buffer is 1024KB. When I need to transfer more than 1 sector, I need to start state machine more than one time. However when after I start two times transaction, there emerges an error: “CYU3P_PIB_ERR_THR0_WR_OVERRUN” or “Write to DMA data thread which is not ready.” The picture is my GPIF state machine. I doubt that when I start a transaction, the old buffer is full, and the next buffer is not ready. And I set CyU3PBusyWait() to wait for the previous transaction been finished, But it is not work. I want to know why, and how to solve the problem.
Thank you and Best Regards!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I registered a CyU3PPibRegisterCallback() API function to find the error, and the feedback is "One of the Thread 0 sockets became inactive during transfer." Who know why? Thank you!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I meet the same error, too. Have you solved?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I meet the same error, too. Have you solved?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The reason is that when consecutively start GPIF STATE MACHINE many times, the previous STATE MACHINE sequence is not completed, and you need to use the GPIF CALLBACK function to indicate completed and then you can start GPIF STATE MACHINE agin.