- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
H,
I have problem converting AN75779 UVC example to interface with FPGA at 32bit.
Setup: FX3 explorer kit
Xilinx ZC706
What I have achieved:
I have created a 8-bit YUV2 pattern generator from ZC706 to interface with FX3. FX3 is running vanilla AN75779 firmware (latest). I am able to see the color pattern on PC using DirectCap. GPIF CLK output from FPGA is running at 100MHz.
My changes to support 32bit:
1. Modify GPIF Designer from 8bit to 32bit
2. Modify GPIF state machine Addr and data counter limit to 4091. because each transfer is now 4 byte instead of 1. Original was 16367.
3. Modify FPGA to output 32bit, effectively Y0, U0, Y1, V0 color in 1 transfer
4. Lower FPGA clk to 25MHZ so total datarate is still the same.
5. I DID NOT make any changes to firmware ( I don't think I need to)
Problems:
Directcap show 0 FPS and there is not activity on display window.
Using USB monitor, USB transactions stop after DirectCap request video. THere is no bulk data out from FX3, infact there is no firther USB communications
DirectCap is still able to request STOP, which FX3 accepts.
Please advise how to get 32bit working.
Neo
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Can you please print the number of bytes transferred in each frame and check whether it matches with the expected value?
To do this, you need to have a variable say, uint32 framecount. You need to increment this variable with the number of bytes in each buffer as soon as a buffer is committed. (After CyU3PDmaMultiChannelCommitBuffer) and print it by the end of the frame.
Regards,
-Madhu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Update:
I am able to get UVC USB packets out from FX3. Actually I had not done anything except power cycle FX3 explorer kit.
But DirectCap still show a blank screen with 0 fps.
Using USB monitor, I can see streams of 16380 byte sized bulk packets (12byte header + 4092 * 4). The UVC header is present. So it seems video has been transmitted out of FX3.
I notice that for each 32bit YUV2 color data in the bulk stream, 16 bits are always zero. This is not what I am sending. So I stop FX3 execution and found the same 16bits zero in DMA buffer. So I think the problem occur during GPIF sampling.
Any advice how to get all 32bits capture correctly?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Can you please print the number of bytes transferred in each frame and check whether it matches with the expected value?
To do this, you need to have a variable say, uint32 framecount. You need to increment this variable with the number of bytes in each buffer as soon as a buffer is committed. (After CyU3PDmaMultiChannelCommitBuffer) and print it by the end of the frame.
Regards,
-Madhu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am facing the same problem in 32bit GPIF interface. https://drive.google.com/open?id=1E29TuSP3NhSbABdiK-Is80g8d-bvkHWW
I analyzed the communication using USBlyzer.I have attached the report.
1. We generated a test pattern data "12345678". When we cross verified with USBlyzer the data received was "02345678".
2. We generated a test pattern data "FFFFFFFF". When we cross verified with USBlyzer the data received was "AFFFFFFF".
when we tried to play with AMcap. The application hangs. Kindly help me to resolve this issue.