Level 4
Level 4

# EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779

Hi,

I referred AN75779, I interface FX3 Superspeed Explorer kit with my custom sensor.

I tried with UART debug port and I got following log

UsbEventCB: SUSPEND encountered...

Entering USB Susp –‹ j½‘•5Leaving Suspend Mode

UsbEventCB: Detected HS USB Connection

UsbEventCB: SUSPEND encountered...

Entering USB Suspend<00>j½‘•5Leaving Suspend Mode

Application Started

DMA Reset Event: Frame timer overflow, time period = 400

Application Stopped

Application Started

DMA Reset Event: Frame timer overflow, time period = 400

Application Stopped

Application Started

.........

.....

...............

DMA Reset Event: Frame timer overflow, time period = 400

Application Stopped

Application Started

DMA Reset Event: Frame timer overflow, time period = 400

Application Stopped

Application Stopped after 30 Commit buffer failures

Clear feature request detected...

Application Stopped

UsbEventCB: SUSPEND encountered...

Entering USB Suspend<00>j½‘•5Leaving Suspend Mode

UsbEventCB: SUSPEND encountered...

May I know about UVC.c   and why these log print and I also verified the custom sensor data signals with oscilloscope and these signals are valid.

I want to debugprint for sensor slave address, I2C initialization ,GPIO and DMA endpoint....

Thanks & Regards

Esakki

1 Solution
Moderator
Moderator

# Re: EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779

Hello Esakki,

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

Regards,

Rashi

Regards,
Rashi
3 Replies
Moderator
Moderator

# Re: EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779

Hello Esakki,

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.

Regards,

Rashi

Regards,
Rashi
Level 4
Level 4

# Re: EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779

Hi Rashi,

I am trying to stream the video VGA 640x480 at 30fps.

May I know How to calculate timer interval and time period.  Please explain.

In uvc.c

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,

Esakki

Moderator
Moderator

# Re: EZ-USB FX3 in a USB Video Class (UVC) Framework -AN75779

Hello Esakki,

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

Regards,

Rashi

Regards,
Rashi