USB superspeed peripherals Forum Discussions
Hello
I’m currently developing firmware to transmit image sensor (FPGA) from CX3 to U3V.
*Referenced the example : https://community.infineon.com/t5/Knowledge-Base-Articles/Implement-USB3-Vision-camera-with-EZ-USB-CX3-USB-3-2-Gen-1-device-controller/ta-p/445398
I was only testing in SuperSpeed, but when I tested in HighSpeed, I found that the Trailer comes before even all the data of one image is fetched. I thought this was happening because the speed at which the host fetches the image data and the speed at which the FPGA sends the image data do not match. So, I modified it to transmit one line from the FPGA and transmit dummy data, and then transmit the next line. However, no matter how long I give the dummy data, sometimes the partial buffer size is read differently when receiving the image.
Questions)
- Can you tell me about the situations where the partial buffer size can be different?
- Is the method to match the speed at which the host fetches the image data and the speed at which the FPGA sends the image data the control of Horizontal Blanking and Vertical Blanking?
- Is it correct that the LV signal goes low during the time of receiving dummy data?
- The sequence to receive one image is SWTrigger[0] -> Leader[0] -> image data[0] -> Trailer[0] from image 0. However, it is currently being delivered as SWTrigger[0] -> Leader[0] -> image data[0] -> Trailer[0] -> Leader[1]. Why is Leader[1] coming? Is it because of FV?
Image settings
- 1744x2400
- RAW14
- One image is transmitted per SWTrigger
Show Less
After I imported the firmware routine, uint8_t, etc. all showed undefined. I checked that this file contains cyu3types.h, #ifdef CYU3_DEFINE_BASIC_TYPES. There are related definitions below, so I set CYU3_DEFINE_BASIC_TYPES=1 in the project. At this point, I can see that the relevant definitions are available, but at this point the relevant uint8_t etc. are still undefined in the file containing cyu3types.h. What is the situation
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/%E8%B6%85%E9%AB%98%E9%80%9FUSB%E5%A4%96%E8%AE%BE/%E6%9C%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E9%97%AE%E9%A2%98/td-p/685519
Show LessI use VISUAL STUDIO to write programs and communicate with CYUSB3014. CYUSB3014 works in synchronous FIFO mode. Are there any detailed control procedures and routines provided, thank you
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/%E8%B6%85%E9%AB%98%E9%80%9FUSB%E5%A4%96%E8%AE%BE/%E5%92%A8%E8%AF%A2%E4%B8%8BFX3%E7%9A%84%E4%BD%BF%E7%94%A8/td-p/684134
Show LessHi,
Currently I use CyU3PI2cTransmitBytes/CyU3PI2cReceiveBytes. When I need to send only the preamble without data phase, i send one bye of 0x00 which is ignored by the slave. How to send only the preamble without the data phase?. In my case 0 bytes did NOT seem to work(?). any sample code that would work?.
Show LessHello.
When trying to create a new configuration project for the CX3 in the latest Eclipse EZ-USB suite 1.3.5 IDE, the tool reports the following error:
The selected wizard could not be started.
Plug-in "com.cypress.cx3.ui" was unable to instantiate class "com.cypress.cx3.ui.wizards.WizardNewCX3ConfigurationModel".
com.cypress.cx3.ui.wizards.WizardNewCX3ConfigurationModel
This happens on both the Windows and Linux versions. It looks like the WizardNewCX3ConfigurationModel Java class is not compatible with the API of the Eclipse version included in the setup.
Are there any workarounds?
Show Less
I want to know the actual speed between the USB device and the host.
It seems that the speed at which actual data can be fetched varies depending on the host environment, and it may differ from the USB speed specification. I’m considering measuring the time it takes to request actual packets and receive data, and then averaging it out. I’m wondering if there’s a better way?
Show LessI want to know the actual speed between the USB device and the host.
It seems that the speed at which actual data can be fetched varies depending on the host environment, and it may differ from the USB speed specification. I’m considering measuring the time it takes to request actual packets and receive data, and then averaging it out. I’m wondering if there’s a better way?
Regards,
Kang
Show LessDoes the ThreadX implementation used in the EZ-USB FX3 SDK detect stack overflows? If so, what method does it use to recover? I would think it is one of the following options.
- No stack overflow detection is implemented. If this is the case, then is there a way it can be added?
- One of the callbacks in cyfxtx.c is called, such as CyU3PAbortHandler().
- The system crashes and a manual reboot would be needed (external watchdog).
Show Less