I want to configure the GPIF II interface of CYUSB3014 in 32-bit parallel bus + Slave FIFO mode (bidirectional).
This clock frequency is stated in the data sheet as a maximum of 100MHz, but is it variable if it is 100MHz or less?
I want to change to 50MHz / 66MHz / 80MHz.
Also, if I change the clock frequency, do I need to change the FW? If it is yes, where and how should I change it?
Hi, I am interfacing a qvga sensor to my FX3 board. configured it according to AN75779 reference doc. I traced the data on wireshark and as per the calculation, it shows me the buffer data more than the 1 frame size. What could be the reason?
where I should look into it?
I'm using fx3 to stream video rgb24, at 60fps i did the changes in the descriptor files, the gpif files and the uvc files of appl note an75779.
for resolution 640x480 at 60fps the video comes proper , see attached file --> 640img ( proper greyscale hv ramp)
but when i change the resolution to 800x600 at 60fps the video is stable, but the video has visible stripes in the hv ramp
see attached file -->800img (hv ramp video stable and locked, but stripes visible). Can anyone provide a solution to this.
I'm using cypress fx3 to stream a static test pattern as video to vlc, to check for sharpness and greyscales. The format is yuv 422, y:u:y:v (yuy2) as detected by vlc codec information tab, and res is 640x480 at 60fps.
The problem i face is as follows, the video displayed by the vlc is stable(not losing sync) but it is not sharp at the edges(ie. it lacks sharpness), but when i do a video->take snapshot in vlc, the image saved by vlc is same as the original test pattern sent.
Can any one please tell me what settings should i do in vlc to get video decoded properly. I have attached 3 images for ref, test_pattern_640 is the original image sent as video, snapshot the imgae obtained from vlc using vlc->take snapshot, snippet is the video screen captured using the snippet tool while video is playing on vlc.
I am working on a project which uses FX3 to implement video application. Basically the device works fine. But when it is connected to USB 2.0 port and run bulk-in (video data) and control-in (register read) simultaneously, both bulk-in and control-in will hang. If bulk-in and control-in are not run simultaneously, or they are run in USB 3.0, everything is fine.
My firmware SDK is ver 1.3.4
The problem is the same (or silimar) to those discussed in the following links:
Also I checked the following discussions:
Refering to the solutions in above links, I made changes in FX3 firmware code by the two methods as follows:
1. Use CyU3PUsbSetEpSuspDisableMask() to disable DMA channel suspend during EP0 transfer
2. Write another funcition CyU3PDmaChannelSendData() to replace CyU3PUsbSendEP0Data() for control-in data sending.
Both method is helpful on this issue. The bulk-in and control-in are not hang mostly. But sometimes the data on control-in are corrupted. And sometimes the data transfer (both bulk-in and control-in) still failed (but not frequenctly and can be recoveried by end point reset).
The SDK ver 1.3.4 implements DMA suspend when control-in data needs to be sent out, to workaround data corruption issue in USB 2.0. But based on my issues (and other ones' issues in above links) it seems the DMA suspend operation is not stable. The above two method roll-backs the DMA suspend, but this does'nt resolve the data corruption issue.
I did the following test:
1. Remove control-in code, so there is only bulk-in transfer.
2. Added some code (the code is similar to those in ver 1.3.4 SDK CyU3PUsbSendEP0Data() function) which suspends bulk-in DMA, and then resume DMA after some delays (from some ms to some seconds). I can also see the bulk-in transfer may hang. So it looks the DMA suspend operation is not safe for us to call.
Here are the questions:
1. Why the DMA suspend/resume operation makes the transfer hang?
2. Is there any way to workaround the data corruption and hang issue for simultaneous bulk-in and control-in transfer in USB 2.0? That is, is there anyway to get stable bulk-in/control-in transfer for USB 2.0?
USBBulkSOurceSink Streming example on CYUSB3KIT-003 stop blinking LED after reflash.
FriendlyName="Cypress FX3 USB StreamerExample Device"
BcdUSB="03 10"It enumerates as
And Streaming test still gives more than 4 MBps (4-5 Gbps).
And trying to modify blink rate according to example gives:
CONTROL OUT transfer
CONTROL OUT transfer failed with Error Code:997
I can still send and receive data on Bulk In and Out endpoint.
The example BootLedBlink - blinks the diode.
What can be the issue?Show Less
Hi, I have interfaced the camera sensor to FX3 board. The output data is in the YUV2 format (as default in AN75779). I want to display the data in RAW format. Does FX3 support sending RAW data through USB?
How can I do that and where I need to do changes accordingly.
I complete a UVC camera with FX3 CyUSB3014 with guide of AN75779, but it works well in stream mode, but it goes bad in trigger mode;
The cmos sensor works in streaming mode, and outpus raw data; the raw data is transfered to PC through FX3 on USB bus. After I set this CMOS sensor into trigger mode, and have the trigger pin in high level, no transfer continues. the firmware prints log: "UVC: Completed 0 frames and 0 buffers".
I check the output of cmos sensor, PCLK,FV,and LV works well. it seems that the GPIF hasn't generate event to firmware, I don't know the reseaon, because the timing is good. In the meatime, I find, when the cmos sensor is in standby mode with trigger pin low, no PCLK,FV, and LV are found.Show Less
We are seeing an issue with our design that is very similar to
however none of the above provides a definite answer.
Let me outline the test design, that is basically your slave FIFO example: we have an FPGA interfacing with the controller, and that FPGA pushes 4096x32 bits into the controller whenever a DMA buffer becomes available (both FLAGA and FLAGB high). The USB controller FW only has an additional IIC block, otherwise identical to the example files. Attached the modified .h and .c files. On the PC side we try to do continuous bulk IN transfers either with our c# software or your Streamer app.
What we see is the following:
In most cases (4 out of 5 or so) there are no issues and transfer progresses continuously at the expected 380 MBps or similar speed, for extended periods of time (tens of minutes).
In other cases the controller seems to initialize in a "strange" state. Not sure whether this is Windows10 or driver or FW or electronics issue, but the above bulk IN transfer fails after a few seconds or tens of seconds, stalling/freezing the controller. Soft reset temporarily resolves the issue and data transfer continues, but to fail again and again after short periods of time. What I found to resolve the problem is a hard reset of the controller (either pin C5 or CyU3PDeviceReset(CyFalse);) followed by a reprogram.
1. Could you please advise on what causes this issue and how to solve it without having to hard reset?
2. Am I right saying that reset via pin C5 and CyU3PDeviceReset(CyFalse); are *exactly* the same or are there any differences between these?
Many thanks in advance,
I am new to the community
i have an objective of bringing the Analog Camera video feed to USB via FX3 chip solutions
for conversion of analog video to parallel format i have decided to use ic like ADV7282A series which takes PAL /NTSC video and converts it to parallel video with sync and clk outputs
Post this i would like to use a infinenon solution to grab the data and create a video class node on linux , so that i can be universally used for any kind of linux based SBC as a PAL frame grabber based on USB ouput