USB superspeed peripherals Forum Discussions
Could somebody give me a help.
I want to set the timeout of BulkInEndPt, but it seems that it doesn't work normally.
For example, I set timeout to 5ms, m_pCyUSBDevice->BulkInEndPt->TimeOut = 5;
If XferData returns and fails, it takes about 55ms. I think It should be 5ms or just a little more than 5ms. Am I wrong?
And if XferData returns and succeeds, if will takes much more than 5ms sometimes. I think it should be timeout.
What's more, I repeat reading data from USB device, and I am sure USB device have data, but it will stop reading data for more than 30ms sometimes. I find it by wireshark.
Thanks!
Show LessHello all,
I am currently trying to understand how the UVC host application works. Code is from the zip file linked to by this thread: UVC Extension unit
The host application allows you to either get or set the current firmware version on the FX3. It seems the parameters for the function "SetGetExtensionUnit" (host application) dictate which control is to be executed on the FX3 side. The "dwExtensionNode" parameter is commented as the "XU Node ID" on line 187. Is this supposed to be the "bUnitID" from the Extension unit descriptor? In the host application code, "dwExtensionNode" is set to 2, while the extension unit descriptor "bUnitID" is valued at 3. The processor unit in the UVC header has a "bUnitID" set to 2, so are we actually calling the processor unit with the host application code?
The next parameter in "SetGetExtensionUnit" is "xuPropertyId"; commented as "XU control ID" on line 188. I assume this is the control ID with possible values ranging from 1 to 31. Assume I wanted to make an exact copy of the Firmware control but instead make it control number 2. I would have to edit the extension unit descriptor such that "bNumControls" was set to 0x02, and "bmControls" was set to 0x03, 0x00, 0x00. In the "UVCHandleExtensionUnitRqts" function on the FX3, I would have to add a case to the switch statement for "wValue", which would recognize control 0x0200 as my copy of the firmware code. I should then be able to edit the host application, so that "xuPropertyId" was set to 2, and I could then get and set the firmware just as if the parameter was set to 1. Unfortunately this does not work, so my understanding is flawed.
This is one of the last major milestones in my project, and would greatly appreciate any help you can offer, thanks.
Show LessHi all,
I have an issue with FX3 booting from SPI flash. We have a custom design that supports booting from both USB and SPI. We have a jumper circuit that configure PMODE so that with jumper on, FX3 boots from USB, otherwise it boots from SPI. We have tested that booting from USB works with the jumper on. We also confirmed USB Control Center can successfully program SPI flash. Meanwhile I saw the activities on SPI bus. This verifies the connection from FX3 to SPI flash is good.
But with jumper off, it doesn't boot from SPI, after pressing reset button. In fact, I saw no SPI activity on the scope, so it doesn't even try to boot from SPI. Below is what I did to troubleshoot:
- checked the PMODE[2:0] to be "0F1", as expected. Voltmeter reads 0 and 1.8V for PMODE[2] and PMODE[0]. PMODE[1] reads 0V but has large impedance to ground. So I believe PMODE[1] is floating.
- probe the SPI SCK/CS signals on scope after pressing reset button (works for USB boot), no SPI activity was seen.
- checked that all voltage supplies are correct: VIO[1-5]=1.8V, CVDDQ=1.8V, VDD=1.2V, VBATT=3.3V
- checked that 19.2MHz clock is good.
Any idea where I might be missing? Thank you in advance.
Best,
Dawei
Show LessHello,
I'm programming FX3 on a board developed by my colleague.
We are printing on console (by means UART and CyU3PDebugPrint)
PHY error counter and LNK error counter obtained by CyU3PUsbGetErrorCounts API.
We observe that PHY counter reaches 6 if we have USB3.0 connected to PC when software not communicate.
When software transfers some data counter increases, it reaches 5000 if we Xfer 1Kbyte of Data continuously.
We read at page 495 of EZ-USB FX3 TRM, Spec No. 001-76074 Rev. *E register LNK_PHY_ERROR_CONF:
this register can configure the types of PHY errors that the counter counts enabling/disabling the type of errors.
By means of LNK_PHY_ERROR_CONF we understand that there are just "8b/10b Decode Errors" (see page 8b/10b encoding - Wikipedia).
Our question is: what are this errors ?
Our software communicate correctly (so at APPLICATION level there is not problem) but why there are this 8b/10b errors ?
We change USB3 cable, demo board instead of our board, Host port, PC .... but systematically this error appears in the same way.
Can anyone explain me this error ?
Thank you in advice..
Show LessHi,
I've a problem that the output frame rate of cx3 usb only half of the input.
The sensor's VS is 30Hz.
The VSYNC_TEST in cx3 is 30Hz.
I can get correct image frames from USB but the frame rate is only 15Hz.
I measure a gpio that toggle in the callback function of GPIF while get the event "CYU3P_GPIF_EVT_SM_INTERRUPT".
The frequence is 7.5Hz. That means the frequence of this event is 15Hz.
What is the cause of this problem?
Regards,
Lee
Show LessHi,
I have a CX3 RDK with OV5640 sensor.
I can received the YUY2 format correctly and play on the e-cam by flashing the example firmware provided in SDK (cycx3_uvc_ov5640)
I want to stream UVYV data provided by my own ISP.
So I follow "EzUsbSuite_UG.pdf" to create my own project with customize configurations.
I create my new project using "CX3 Configuration Project", key in the configuration parameters,
and save the four auto generated source/header file : cyu3mipicsi.c, cycx3_uvcdscr.c, cycx3_uvc.h, cycx3_uvc.c
Then I build it in release mode and flash it to CX3.
But when I connect it to my device, e-CAM shows nothing but plain dark.
I also tried to re-create the cycx3_uvc_ov5640 project by creating a new project with Pre-Defined Configuration yuv422_ov5640.cycx.
And It works, the e-CAM tool could show the image frame.
But when I create a new project with blank configuration, and key in all the parameters the same as yuv422_ov5640.cycx,
e-CAM is dark again.
Is there an explanation of why this is happening?
Like some function calls need to be coded myself instead of relying on auto generated codes?
Or did I miss something while creating this streaming project?
I'm using SDK version 1.3.4
And the following graph is my config of streaming UYVY data.
Thank you,
Paddy
Show LessHi,
It is possible to use multiple USB classes on CX3, for example UVC(usb video class) and CDC(communications device class), at the same time ?
GPIF 32 bit interface does not work with 54MHz. Are there any limitations to the clock frequency that can be used with 32 bit DQ width?
When we use 16bit interface to send video to UVC with PCLK up to 104MHz it works well. The 32-bit interface works with 27MHz. But it does not work well with a 32-bit interface with 54MHz. Kindly confirm is there any clock limitations for a 32-bit interface.
Show LessHi,
I am working on a project where i need to connect FX3 to the external peripheral using the UART interface.This project basically uses a direct DMA channel from UART to USB endpoint to read data coming over Rx lines ,as explained in the UsbUart example. But with this only the reception part of the data over UART can be achieved. My requirement is that even before the reception of data , the external peripheral needs to be configured . As the UART is opened or configured in DMA mode the API's like CyU3PUartTransmitBytes will not work . So is there any other way or any API that can be used to send data over the Tx lines of UART from CX3 to the peripheral?
Show LessHello everyone,
we designed an industrial camera using FX3 in bulk mode. With some type of host controller (for example: Renesas USB 3.0 eXtensible Host Controler) we face some issue while doing basic bulk out write in loop on endpoint 0 => After a while, the Host (PC Win10 v1803 64bit) sends a warm reset which makes camera to reenumerate, and an unplug event is sent to the PC application.
We succeeded to reproduce the issue with the EZ-USB FX3 development board and the Bulkloop example Firmware & software (Cypress USB suite v1.3.3). After a few minutes, the application stops itself because it receives a device removal event.
With an USB analyser, we clearly see a warm reset sent by the host and we suspect it is caused by errors in the USB link flow control.
See analyser screen shot in attachment: Capture1.PNG show the last good transactions done, then you have all other USB traffic until warm reset which happened in Capture5.PNG (timestamp: 10 799 947 426)
I also sent PC configuration (report.HTM) in attachment.
Does anyone face the same problem ? What can we do to prevent this issue ?
Best regards.
Yves D.
Show Less