-1

Our video bridge device inputs raw non-video data from our FPGA and then outputs it as Video Class (UVC).

How can our host software read the same raw data back out of the received UVC stream?

Host is C# .NET app on Windows 10. Video bridge device is FTDI FT602 (USB 3.1 Gen 1)

Doug Null
  • 7,989
  • 15
  • 69
  • 148
  • I found a Visual c++ project that may help. I'm not sure exactly what you are asking. I'm very familiar with XLINX and interfaces at hardware level since I'm an EE. The zip file also includes memory mapping of the FPGA registers. https://www.ftdichip.com/Support/Utilities/FT602%20configuration%20tools.zip – jdweng Mar 19 '19 at 17:31
  • FPGA outputs non-video raw data to FT602. FT602 outputs UVC through USB cable to Windows app. App needs to somehow decode raw data from UVC. – Doug Null Mar 19 '19 at 17:36
  • There looks like the Win32 dll exists. Not sure if this is better done in c++ or c#. You can always use dllImport to get the Win32 dll. I found additional documentation here : https://www.usb.org/sites/default/files/USB_Video_Class_1_5.zip – jdweng Mar 19 '19 at 17:39
  • jdweng thanks but I've reviewed that already, no help. FT602 datasheet states that output is only UVC. So, I need to either translate/decode UVC into the raw data, learn of an undocumented method to get USB data from FT602. – Doug Null Mar 19 '19 at 17:41
  • Yes, we used Win32 DLL to successfully read USB from previous device (SI EFM32). But Win32 only inputs USB data and not UVC. – Doug Null Mar 19 '19 at 17:43
  • If it is really a stream you can then get byte[]. The bytes would be the memory mapped registers. Then use BitConverter to take data and convert to values. Or use a Binary Serialization to map to a structure. What I rad at Wiki UVC is USB : https://en.wikipedia.org/wiki/USB_video_device_class#Formats – jdweng Mar 19 '19 at 17:43
  • Read AN_437 FT602_I2C_User Guide. It is all documented starting on Page 9. You can use either BitConverter on Binary Serialization to get into a class. I would probably read in one read from dll for the registers and then use Binary Serialization to put into a class. – jdweng Mar 19 '19 at 18:53

1 Answers1

0

Our solution is to forego the FT602 video device and use the non-video device FT601, because it's meant for USB non-video data transfer.

Doug Null
  • 7,989
  • 15
  • 69
  • 148