PORTS Forum

Ports and Interfaces => USB => Topic started by: yingbohu on August 24, 2011, 04:49:42 pm

Title: USB Video High Speed High Bandwidth data transfer problem
Post by: yingbohu on August 24, 2011, 04:49:42 pm
We are developing a USB video device, like a web camera. I already successfully send uncompressed data (YUY2) from the device to the host (Windows XP PC). The device is a USB high speed device. But windows can only display the correct video when we send one packet every 1 microframe (125 uframe). If I use high bandwidth, that is 3 transaction per microframe, the windows application will display nothing just blackwindows.
My understanding is if there is only one transaction per microframe, every packet should have a 13 byte payload header but if three transaction, only the first packet should have the payload header. I verified this by view my creative HD 1080p camera.

Could somebody help me why windows does not display any video if we are using three transactions per microframe?
Title: Re: USB Video High Speed High Bandwidth data transfer problem
Post by: Jan Axelson on August 24, 2011, 09:46:09 pm
Do your device's endpoint descriptors match those in the working device?

Jan
Title: Re: USB Video High Speed High Bandwidth data transfer problem
Post by: yingbohu on August 25, 2011, 05:19:35 pm
Yes, but we don't have any Extension Unit in the descriptor at all. We have Camera Terminal, Process Unit and USB Streaming Terminal
I did the same testing by OSX, Same story so my code must be wrong in some where.
There is nothing related to the descriptor (except the wMaxPacketSize of the endpoint) for 1 transaction or 3 transactions per microframe, right?
Title: Re: USB Video High Speed High Bandwidth data transfer problem
Post by: yingbohu on August 25, 2011, 05:21:54 pm
The host enumerates it without any problem and I saw the those set the interface to alternate 1 and Probe/Commit request so I assume descriptor should be correct.
Title: Re: USB Video High Speed High Bandwidth data transfer problem
Post by: Jan Axelson on August 25, 2011, 08:43:35 pm
The other difference is the need to support data PID sequencing as described in USB 2.0 section 5.9.2.

Jan
Title: Re: USB Video High Speed High Bandwidth data transfer problem
Post by: yingbohu on August 26, 2011, 01:16:41 pm
The PID is correct, DATA2->DATA1->DATA0, if only one transaction, only DATA0
But my processor is not that fast so there will be one gap (no data for one microframe) for every 2 or 3 microframe. I don't know if that will cause problem.
Title: Re: USB Video High Speed High Bandwidth data transfer problem
Post by: Jan Axelson on August 26, 2011, 10:57:52 pm
The device sends 3 packets/microframe but does so for only 1 or 2 of every 3 microframes?

Or the device sends 1 packet per microframe for 1 or 2 of every 3 microframes?

Jan



Title: Re: USB Video High Speed High Bandwidth data transfer problem
Post by: yingbohu on August 30, 2011, 03:12:51 pm
it sends 3 packets per microframe but only does that every 2 microframe. I also check the webcamera, it sends 3 packets per microframe but only send data 8 or 9 microframe (low resolution video) so skip a few microframe does not look like a problem.
Title: Re: USB Video High Speed High Bandwidth data transfer problem
Post by: Jan Axelson on August 30, 2011, 09:59:43 pm
I have no magic words of wisdom on this, but comparing your device to a working one as you've been doing is a good strategy.

Jan