Hi,
I'm deveoping a driver using USBCAMD2 for an FX2 Cypress device.

In USB 2.0 Isochronous High-Speed mode I transfer a stream about at 7.8
MB/s. This is correct if you set 1024 byte per Microframe with 125us
interval.

My problem is that I want to transfer 3*1024 bytes every Microframe with
125us interval to reach about 23 MB/s. I know this is theoretically
possible with USB 2.0, but I don't know how to program my driver to
increase transfer rate.

My Endpoint descriptor is :
bmAttributes = 0x01 (Isochronous)
wMaxPacketSize = 0x1400 (3*1024)
bInterval = 0x01 (125 us)

How can I transfer about 23MB/s with USB in Isochronous mode ?

Thank a lot,
Blu.

RE: USB 2.0 High speed Isochronous by Leo

Leo
Mon Jun 06 05:29:12 CDT 2005

Hi,

I'm developing a driver using USBCAMD2 for USB 2.0 video camera.
Our packet size is 3k and interval is 1(same as yours).
I modified USBCAMD_NUM_ISO_PACKETS_PER_REQUEST to 16 and
USBCAMD_MAX_REQUEST to 16 and some code to match our device.
I found that if I set USBCAMD_MAX_REQUEST to 2(default) or 1 the USB stack
will not send request immediately and USBCAMD_IsoIrp_Complate will be called
at once.Although I send 10 requests only 2~3 requests could be sent(use CATC
to watch).The interval between 2 requests is about 1 sec.
Do you have the problem like that?

Thaks.
Leo.



"b.lu" wrote:

> Hi,
> I'm deveoping a driver using USBCAMD2 for an FX2 Cypress device.
>
> In USB 2.0 Isochronous High-Speed mode I transfer a stream about at 7.8
> MB/s. This is correct if you set 1024 byte per Microframe with 125us
> interval.
>
> My problem is that I want to transfer 3*1024 bytes every Microframe with
> 125us interval to reach about 23 MB/s. I know this is theoretically
> possible with USB 2.0, but I don't know how to program my driver to
> increase transfer rate.
>
> My Endpoint descriptor is :
> bmAttributes = 0x01 (Isochronous)
> wMaxPacketSize = 0x1400 (3*1024)
> bInterval = 0x01 (125 us)
>
> How can I transfer about 23MB/s with USB in Isochronous mode ?
>
> Thank a lot,
> Blu.
>