The DMA reset events due to the timer overflow. The timer overflow when the video buffers are not received within the time period set.
In the default AN75779 firmware, the timer period is set to 400 ms when the device is a high-speed device. The frame timer value is set as 400ms when the frame time 66ms (15 fps).
If in your application the frame rate is less then 15 fps you can try increasing the timer period to a value greater then 400ms (eg. 1000ms)
If this still doesn't solve the issue, please share the FV, LV, and PCLK traces with us to check if the video signals are as expected.
- Please let me know if you are able to see the video stream on the host (with these errors)
- Also, let me know the video frame size and frame rate at which you are trying to stream the video.
I am trying to stream the video VGA 640x480 at 30fps.
May I know How to calculate timer interval and time period. Please explain.
0x15, 0x16, 0x05, 0x00, /* Desired frame interval in the unit of 100ns: 30 fps */
0x2A, 0x2C, 0x0A, 0x00, /* Desired frame interval in the unit of 100ns: 15 fps */
0x00, 0x6F, 0x09, 0x00, /* Max video frame size in bytes */ - 640x483x 2 - May I know Why Height is 483? for USB 3.0.
and also I tried with super speed device usb 3.0 DMA Reset Event: Frame timer overflow, time period = 200
Please explain for calculating time period.
Thanks & Regards,
To calculate frame interval
30 FPS : 1/30 * 10^7 = 333,333 (dec) = 51615 (hex) \\ ( 10^7 to make the interval in unit of 100ns)
Writing this from Lowest significant byte to Most significant byte it becomes 0x15, 0x16, 0x05, 0x00,
15 FPS: 1/15 *10^7 = 666,666 = A2C2A (hex)
It becomes 0x2A, 0x2C, 0x0A, 0x00,
In the default firmware, the probe control glProbeCtrl20 structure mentions
0x00, 0x60, 0x09, 0x00, /* Max video frame size in bytes */ // 640*480*2 = 9600 (hex) which is again written from LSB to MSB
Please let me know if any queries on this