Author Topic: USB Video High Speed High Bandwidth data transfer problem  (Read 17909 times)

yingbohu

  • Member
  • ***
  • Posts: 5
USB Video High Speed High Bandwidth data transfer problem
« 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?

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: USB Video High Speed High Bandwidth data transfer problem
« Reply #1 on: August 24, 2011, 09:46:09 pm »
Do your device's endpoint descriptors match those in the working device?

Jan

yingbohu

  • Member
  • ***
  • Posts: 5
Re: USB Video High Speed High Bandwidth data transfer problem
« Reply #2 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?

yingbohu

  • Member
  • ***
  • Posts: 5
Re: USB Video High Speed High Bandwidth data transfer problem
« Reply #3 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.

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: USB Video High Speed High Bandwidth data transfer problem
« Reply #4 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

yingbohu

  • Member
  • ***
  • Posts: 5
Re: USB Video High Speed High Bandwidth data transfer problem
« Reply #5 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.

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: USB Video High Speed High Bandwidth data transfer problem
« Reply #6 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




yingbohu

  • Member
  • ***
  • Posts: 5
Re: USB Video High Speed High Bandwidth data transfer problem
« Reply #7 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.

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: USB Video High Speed High Bandwidth data transfer problem
« Reply #8 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