I have generated the state machine for our own 8-bit camera with FV and LV and PCLK (at 29.5MHz). The camera is 640x480 at 25fps.
I have changed cyfxuvcdscr.c and uvc.c (for the SS USB3) accordingly.
a) I have to use 0x10 rather than 0x08 for bits per pixel otherwise the camera application fails.
b) I only get CPU interrupts when SCK1 is Partially filled when !FV occurs. All the other states don't appear to generate an interrupt.
Any assistance please?
I have uploaded my GPIF-II folder and AN75779 (modified) folder
a) It depends on which format you are streaming. You will accordingly have to set the format, the data per pixel, per frame. Also the host application should be able to support this format with 8 bits per pixel.
b) I see that you have 4 INTR_CPU actions in your state machine. 2 for partial buffer and 2 for full buffer. As you mentioned that you always get partial buffer is that the last buffer is not full. As you must see that you are going to one of the INTR_CPU only at the end (i.e. !FV), so you can check that the last buffer of the frame may not be full. If this is true, then no other state will generate the interrupt
It turns out I should have been using 768x576. However, I still get no image on any camera application. They all respond with 768x576 25fps and YUY2 format and looking at the data collected in the DmaBuffer the format is correct. Also, the CyU3PDmaMultiChannelCommitBuffer appears to be working (send data to the PC) as it gives no errors...
However, I can't load a Cypress windows 10 driver for the FX3 as an image device; it always uses Microsoft's one from 2006. I have noticed in the cyusb3.inf file that there are no VID/PID data for a USB video connection. Would this cause the cypress driver not to be loaded?
I have tried the USBVideoClassBulk example (under USB 2.0) and this works fine (albeit using MPEG-1 data)
Any further assistance would be grateful.
I have run DirectShow to show what the FX3 is configured for and attach its results. I have changed the camera to operate at 9fps (and changed FX3 accordingly).
Also USBAnalyzer(3.0) I get data packets as expected arriving with the header correctly filled in (EOL and Frame ID changing after every frame (not every packet). Data also attached.
I still don't get any image on either AMCap or Windows 10 camera. !! help please !!
I have change the frame size to 768x288 (to match the data coming in which should have been width x height x 2) and now get an image.
However, as I'm send odd line frame then even line frame the image is not being interlaced correctly.