USB superspeed peripherals Forum Discussions
Hi,
I made a simple GPIF-II design to read one 16-bit word to processor socket when external WE signal turns from low to high. Is timing tab for my design correct? I was expecting DATA_IN operation should happen at the beginning of STATE1, but not STATE0. My design is attached below.
Show Less
Hello !
I am actually working on Lattice USB3 video bridge devkit which used Cypress EZ-USB FX3.
I try to download a firmware on it but I have an error log : "Bootloader is not running. Please reset your device to download firmware." Reset the device don't change the problem and don't know where It come from.
I need help please.
Nathan
Show LessHello,
We're trying to develop a custom module.
However, we're facing several problems.
let me explain our situation first.
Our sensor has EMB data so output data for one frame is as follows.
Also, the sensor has 4 types of frames and EMB has its own index so we can recognize the frames.
You can see that the four waveforms are clustered together and It has indexes 0, 1, 2, 3 from the beginning based on the grouped waveform as below the image. (One single waveform means one frame.)
We think the problem is that our module is different from a normal RGB sensor.
When we set MIPI Receiver Configuration, there are some obstructions because we have two types of V-blank as below.
So, the first question is how to set V-blank values in the above case.
The second question is how to set "CSI Clock" and "Frame Rate".
The sensor specs are
- MIPI RATE: 800MHz
- MIPI Lane: 2Lane
- Frame rate: 30fps
However, since one final output data is generated in 4 frames, Frame Rate should actually be set to 120 fps.
In this case, when we set CSI Clock to 400 and Frame Rate to 120, the minimum value of CSI Clock will be limited.
How can we handle this?
3. We tested by reducing the Frame Rate in question 2.
However, when CSI Clock is set to 400 and Frame Rate is set to 30, continuous frames weren't able to be received.
In this case, we can only get frames with an index of 0 or 2.
What could be the problem?
The timing of waveforms is below.
A Single Frame: 5.25ms
V-Blank1: 1.5ms
V-Blank2: 7.8ms
A Set of Final Output Frame: 33.33ms
Please let me know if there are any other problems.
Regards,
Philip
When we are using the FX3 in development everything works fine.
We have questions on switching over to our own VID/PID once we obtain a VID from USB-IF.
Currently we must program the FX3 with our APP image by using Cypress GUI “cyusb_linux” every time we power-up.
I see in the Cypress Library the routine to call that will do same and program our APP image into Fx3. But it doesn’t work.
Think won’t even compile? Once we program the efuse and have our won VID we will need to be able to program the FX3
By calling the library routine and not using the GUI cysb_linux, how do we do that?
When have own VID, does it get just programmed in when we load our own APP image?
What do we need to program the efuse? Can we do that with FX3 installed on our boards?
Do we need anything else to use the chip and ship it in systems?
Show LessHi,
In datasheet it is written that Fx3 should be capable to handle 50Mhz and 100MHz dataflow.
We are able to do it only with 25MHz.
Do you have an example how this thing should be configured to use it at higher speeds?
Thanks
Julius
Hi,
I'm working on a FX3 -> FPGA (Xilinx Artix 7) interface using the GPIFII interface.
I went through all the AN65974 document (a wonderfull piece:), but unfortunately, I was able to only make the Slave FIFO Write Sequence. I tried the loopback part without any success.
I had to modified it a bit since my system is only using 2 flags, therefore, I modified the GPIF to have current flag for A and B.
The write sequence went smooth and I was able to read data from the ControlCenter and retrieve a simple counter value. Very basic here.
I wanted to do the same with the read sequence but it never worked. I'm able to send data and see with Vivado debugger that the flag was raised. But no data get on the bus. Here is what I sent with the ControlCenter:
Once the data is sent, the flag is trigger in the FPGA and I get the following waves:
As you can see, the flaga was raised when I clicked on Transfer Data-Out but nothing appears on the bus. Note that the "q_data_in_use" is a clock signal that sample the value of the data bus (32 bits). I would expect to see my "ABCD_EF" appears at one time.
Also, since I only send 3 bytes, I would have expect the flaga to return to 0 very quicly. but as you can see in the waves, "slrd_n", "slrd_n" never go up and therefore, according to the timing diagram of the AN65974 document, I'm still in a burst read. Maybe I'm misunderstanding the flags here but I though that once my 3 bytes are read, the socket should be empty and the flag going down ('0'). Therefore, I could stop my read burst.
As of now, I decided to go to the very basic in order to debug what was going on. I did a new GPIF state machine to only support the read sequence:
SLWR&!SLCS&!SLRD&!SLOE -> to go to read
SLRD|SLCS|SLOE -> return to IDLE
I wanted to avoid having a dead state so with this, there is only one possibiliy!
Note on my setup:
I'm using the AN65974 FX3 firmware with only the header file of the GPIFII which has changed as explained earlier.
I have also defined the "LOOPBACK_SHRT_ZLP" and undefined the "MANUAL".
I'm attaching the files of the FX3 firmware with the heater file of the GPIF.
I hope you can help me with that issue, it is really a big stopper for our development as we need to be able to both read and write to the host.
Thanks a lot in advance.
Marc-Olivier
Show LessIs it possible to use the SX3 "backwards" to can stream USB3 data to the SX3, then have it output video signals (RGB888, VSYNC, HSYNC, PCLK)?
Alternatively, can I use the SX3 general purpose interface for this? I am not sure I follow the data bus, but could I just use 24 of the 32 bits Slave FIFO and just write the video data out on that?
I know this is possible with the FX3, but I was wondering if there may be an easier way with the SX3 that avoids all the state machine GPIF II creation work, which I am trying to avoid.
Thanks.
Show LessHi,
Our company want to resell FX3 driver(cyusb3.sys).
According to "Cypress CyUsb3.sys Programmer's Reference", Companies need to contact Cypress Technical Support and create a case with the below information to initiate the driver resell process.
1. Company details.
2. INF file with your devices VID/PIDs.
What should 1 and 2 do specifically?
I'm glad if you could tell me.
Thanks,
Show LessHello
In conducting the USB compliance test,
Q1) Are there any registers that need to be checked to enable loopbacks and test patterns?
https://www.cypress.com/file/134661/download
Q2) There are two link test states (Loopback and Compliance mode), so I think there is a mode as FX3, but I don't know a concrete example of what to set and how.
Best Regards
Arai
Show Less
Hello,
I have been trying to get an image stream running on a CX3 + OV5640 board without success.
The firmware contains UVC and CDC interface and the debug prints are sent correctly.
I have other firmwares on which I'm able to get the image stream flowing without problem so I know there is no hardware issue on my board.
From the debug logs, the size of the frames is 614400 and all of them seem to be correctly sent to the host.
I spent couple of day trying to fix things and compare the working and non working versions that I have without being able to find the root cause.
At this point, it is not clear to me wether the problem is related to a misconfiguration of the sensor and Mipi interface or a problem with the firmware itself.
I have attached the firmware, the debug prints from one session and the USB traces extracted via Wireshark.
If anyone could have a quick look and give me hints, that would be really appreciated.
Thanks in advance for your help