[FX3] What was the cause of the error: CYU3P_PIB_ERR_THR0_WR_OVERRUN

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
HuYa_4249091
Level 4
Level 4
25 replies posted 25 sign-ins 10 replies posted

Hi All,

According to the snippet in the "AN75705 Getting Started with EZ-USB FX3.pdf" chapter 7:

123.jpg

However, I got the error message "CYU3P_PIB_ERR_THR0_WR_OVERRUN" from CyU3PPibRegisterCallback(), while trying to receive a higher FPS data and then transfer it to PC.

1.jpg

I'm confused whether the error conflicts with the snippet in the pdf?

How to explain the error message?

Hope someone could provide any suggestion. Thanks a lot!

0 Likes
1 Solution

Hello Hughes,

Yes, you are right.

Best regards,

Srinath S

View solution in original post

5 Replies
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello,

When the GPIF II block is being written with data when there no buffers available on the associated GPIF socket, OVERRUN error is thrown. As you have mentioned, this indicates that the consumer is not fast enough to read the data from the buffer. Please try reducing the FPS (or) use multiple GPIF II threads (or) try using a different host application on the host side.

Best regards,

Srinath S

0 Likes

Dear Srinath S:

Thanks for your quick & specialized reply!

1. So the following snippet is not correct absolutely, the write action from producer socket wouldn't be ignored AUTOMATICALLY by the system while the DMA buffer is full, right?

123.jpg

2. I have used the 2 thread for producer socket which copy the structure from "AN75779 - UVC example" except the Manual mode -> Auto mode.

I want to check one thing. In the state machine, if all DMA buffers are full, the DMA_RDY_TH0 or DMA_RDY_TH1 trigger will not be "true", right? I want to use the trigger to avoid the issue, first.

Thank you!

0 Likes

Hello,

1. The statement in the snippet is correct since the producer socket does not perform write operations when the DMA buffer is full. The data that is written onto the producer socket would be dropped automatically.

2. Yes, the DMA_RDY_TH0 and DMA_RDY_TH1 flags can be used to check if the DMA buffer is ready to accept the new incoming data.

Best regards,

Srinath S

0 Likes

Dear Srinath S:

Thanks for your reply!

According to your messages, please evaluate the correctness with my inference:

While the producer socket tries to write data into the full DMA buffers, it discards the new data automatically and the system triggers the "CYU3P_PIB_ERR_THR0_WR_OVERRUN" callback to notify the user.

Is it right?

Thank you!

Hughes

0 Likes

Hello Hughes,

Yes, you are right.

Best regards,

Srinath S