USB superspeed peripherals Forum Discussions
Hello, guys.
In our system we have FX3 controller used to control various IMX image sensors through FPGA. In FX3 we have implemented the firmware from AN75779 (as a starting point) which makes our system recognized as UVC-class device from the Host PC.
There is a need to dynamically change the resolution of the video streams during runtime of the system. In this thread, you explained how we can change the resolution of the stream when the request is initiated by the Host PC.
1) Now, there is one more use case when the request for the resolution change will come from the FX3 device. This is the request to change the resolution from the default one to the desired one.
Namely, our system is designed to support different image sensors from IMX family. Consequently, we would like to be able to start streaming different resolutions depending on the IMX sensor connected (e.g. IMX250, IMX253, IMX420...). We are able to get the IMX sensor ID within CyFxUVCApplnInit() function. However, I am not sure how to inform the Host which resolution will be played. Host expects DEFAULT resolution to be played which is always THE LAST Class specific Uncompressed VS frame descriptor described in CyFxUSBSSConfigDscr[] descriptor!
I tried with sending
CyU3PUsbSendEP0Data (CY_FX_UVC_MAX_PROBE_SETTING, (uint8_t *)glProbeCtrl_1934x1094_30fps);
to the Host as soon as I get IMX sensor ID but to no avail! It seems something more is needed.
What I am missing here? How FX3 can tell the Host during start-up process which resolution will be played?
2) We need to have a closer communication between the Host and FX3. In addition to requesting basic parameters like change resolution, get gain etc. we would like to be able to send some more requests from the Host to FX3 like:
- Start playing patterns
- Read the value of image sensor register and send it to me (e.g. register value that stores temperature).
To the best of my understanding, extension unit can be used to implement custom (vendor-specific) features (I am aware we need to customize Host application for that).
On page 11 (Section 2.3.2.1) of AN75779 document, you give some explanations on how to design UVC extension unit in FX3 firmware (this thread). I would like to try my luck and implement that. At the same place you mention uvc_extension_app_x64.exe file as well as
"Guidelines to run the Host application is provided in the readme.txt file in the attached project"
Where I can find that uvc_extension_app_x64.exe file and attached project you are talking about?
Thanks for your time and efforts.
Sincerely,
Bojan.
Show LessWhy is it :
RD_WR_IDLE--(if FLAGA)-->DR_ADDR--(if FLAGA & &DMA_RDY_TH0)-->RD_CTRL
can this work too:
RD_WR_IDLE--(if FLAGA & &DMA_RDY_TH0)-->DR_ADDR--(if true)-->RD_CTRL
Show LessHi sir,
I have a basic question.
FX3S/SD3/CYWB0x2xABS/CYWB016xBB connects a Nand Flash, can these USBs support bad block detection? Or integrated Nand Flash management system? Or support integrated file system?
Thanks
Show Less
Hello Everybody,
I am very new to the Cypress Community and I am struggliing to configure a Raspberri Pi V2 camera module using EZ USB Suite. The Raspberri PI Camera uses a Sony IMX219PQ image sensor. I have tried to use the new CX3 confiugration, but either am at a dead end, or I am doing something wrong because this has not worked so far. Can anyone provide a walkthrough on how to add a Raspberri Pi v2 for USB 3.0 connection? I have looked on past forums, but none seem to resolve the issue entirely and fully connect a Raspberri Pi Camera. I have been able to use the CX3UVCOV5640 firmware to connect the camera on an RDK, but the image sensor and pin callouts are different for my project which is being connected on a custom PCB.
Thanks so Much,
R
Show LessHi
I am trying to use FX3 sdk in my custom CX3 based board.
I have tested several examples within FX3 SDK v1.3.4.
My board is able to run YUV Camera Preview in VGA resolution.
I also tested MJPEG stream demo as well as YUV uncompressed demo using OV5640 sensor.
Is there any example to show both YUV and MJPEG using OV5640 sensor?
I assume OV5640' YUV stream need to be converted into MJPEG using 3rd party codec?
Please let me know how to make both YUV and MJPEG using OV5640 in a CX3 module.
Many Thanks in advance.
Best Regards,
JK CHA
Show Lesshello every
I am using FX3 to stream image data. I refered the AN75779 document to use UVC interface.
I just wanna know how to get raw14 format data by host application.
Questions...
- How to transfer raw14 format data to USB ( like USB packet structure )
Streaming RAW8 or RAW10 using CX3
- How shoud I modify AN75779 example source?
Diagram - my project sequence.
FPGA <=> FX3 <=> USB <=> PC
GPIF UVC
Please let me know how to solve the problem.
Thanks for your help.
BEST REGARDS,
Ted Lee.
Show LessWhen build the slave's GPIF project after removing the FLAGC pin, GPIF designer asks:
"This project will be built using mirror states and state machine will be modified internally. Do you want to build?"
What doesn this mean? What is "mirror states"?
Show LessIn AN87216, is Fig.5 and Fig.6 for generic example for read/write of slave, or the exact timing in the Master/Slave setup?
In the master state machine, WR and CS are asserted at the same state, this is different than Fig.6, in which WR is asserted 1 clock later after CS.
In the master state machine, in the state WR_FLAG, why is CS delayed and WR early? Will this make WR asserted before CS?
And I'm not sure why there is choice of early(2 cycle) and delayed(3cycle) here, does this mean there is pipeline between the state machine output and the IO pad? For 100Mhz pipeline should not be needed.
I need to add another two state machine chains to implement 2 RX and 2TX thread, can't proceed until it is clear how to set early and delayed.
Show Less