USB superspeed peripherals Forum Discussions
Hi All
We have developed firmware using cyfx3 sdk 1.3, that can be able to write debug logs into USB CDC in super speed mode. We face situation like video stream stop after some time of continues streaming. We have collected logs and that was not give much information intern of diagnosing the issue. I would like to know about, how can we enable more log capability for situation like this. Sample of logs as below when issue occurs.
[2023-09-19 08:56:12.770] TimeDiff = 651 ms FPS = 46
[2023-09-19 08:56:12.793] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8791 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.814] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8792 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.836] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8793 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.859] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8794 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.881] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8795 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.903] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8796 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.925] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8797 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.947] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8798 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.969] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8799 Frm_Sz = 2048000 B
[2023-09-19 08:56:12.991] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8800 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.013] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8801 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.035] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8802 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.057] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8803 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.079] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8804 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.102] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8805 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.123] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8806 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.146] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8807 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.168] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8808 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.190] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8809 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.212] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8810 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.234] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8811 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.256] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8812 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.278] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8813 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.300] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8814 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.322] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8815 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.344] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8816 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.367] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8817 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.388] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8818 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.411] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8819 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.433] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8820 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.434] TimeDiff = 651 ms FPS = 46
[2023-09-19 08:56:13.457] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8821 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.477] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8822 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.499] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8823 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.521] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8824 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.543] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8825 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.565] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8826 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.587] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8827 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.610] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8828 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.632] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8829 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.654] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8830 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.676] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8831 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.698] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8832 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.720] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8833 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.742] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8834 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.764] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8835 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.787] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8836 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.809] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8837 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.830] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8838 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.853] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8839 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.875] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8840 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.896] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8841 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.919] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8842 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.954] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8843 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.963] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8844 Frm_Sz = 2048000 B
[2023-09-19 08:56:13.985] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8845 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.008] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8846 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.029] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8847 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.051] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8848 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.074] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8849 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.095] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8850 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.095] TimeDiff = 652 ms FPS = 46
[2023-09-19 08:56:14.119] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8851 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.140] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8852 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.162] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8853 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.184] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8854 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.213] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8855 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.235] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8856 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.256] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8857 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.279] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8858 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.300] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8859 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.323] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8860 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.346] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8861 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.367] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8862 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.390] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8863 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.412] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8864 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.434] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8865 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.457] bRType = 0x2, bRequest = 0x1, wValue = 0x0, wIndex = 0x83, wLength= 0x0
[2023-09-19 08:56:14.459] Prod = 55 Cons = 55 Prtl_Sz = 23120 Frm_Cnt = 8866 Frm_Sz = 2048000 B
[2023-09-19 08:56:14.481] AplnStop:SMState = 0xA
[2023-09-19 08:56:14.516] bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
[2023-09-19 08:56:14.516] StpCB:In SET_FTR 0::1
[2023-09-19 08:58:31.860]
[2023-09-19 08:58:31.860] bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x0, wLength= 0x0
[2023-09-19 08:58:31.860] StpCB:In SET_FTR 0::1
[2023-09-19 08:58:31.860] bRType = 0x1, bRequest = 0x3, wValue = 0x0, wIndex = 0x100, wLength= 0x0
[2023-09-19 08:58:31.860] StpCB:In SET_FTR 0::1
Thank
Dinusha
Show LessHi
We are testing FX3 connect to ASM3142 PCIE USB expansion card.
We found that using non ASM3142 card such as intel(default motherboard), we dont see issue.
When we connect the FX3 to ASM3142 USB3.0 expansion card, from the trace of the wireshark it will report USB stall.
1.) When USB Stall happened. the response data is correct:
However on the host application side we are seeing the buffer return incorrectly:
ASM3412 return string(Issue):
Normal Firmware Return string(correct return 2010 same as wireshark)
May i know is ASM3142 controller not compatible to FX3 or what was happen on above case? as i see other thread there is issue on this controller as well.
We also test with other ASM3142 cards showing the same issue.
To further eliminate hardware failure, We also did run simple test by transfer file with USB drive thru this controller not seeing issue.
Test Environment:
Window 10
SDK 1.3.4
1.2.3.25 driver (test with older driver 1.2.3.23 same issue)
Build environment: CYApi
PCIE USB Card:
https://www.startech.com/en-eu/cards-adapters/pexusb312a
Dear Cypress team
i have used USB3014 in my new project, and USB3014 support USB3.1 Gen1, the speed is 5Gbps.
Currently, the requirement of project has been changed, the speed of project has been changed to 10Gbps.
I wonder if Cypress has a controller for USB3.1 Gen2.
thank you!
Show LessHello,
We received the the CYUSB3KIT-004 EZ-USB™ SX3 explorer kit but unfortunately, I'm not able to program the kit trough the configuration utility.
I have strictly follow guide ( switch configuration ) but it return an error :
"Error in detecting flash updater device. Reset the device and try again"
Even with reset and retry , no way to make it working.
Thanks
Show Less
OS: Windows 10
Driver: 1.2.4.0 (Windows 10, version 1903 and later, Servicing Drivers, Windows 10, version 1903 and later, Upgrade & Servicing Drivers)
I receive data through about 6 cyusb chips.
It is connected to the PC through a hub in the middle.
Hub 1: usb1, usb2,
Hub 2: usb3, usb4
Hub 3: usb5, usb6, usb7
That is, there are three connected to the PC.
however. During data transfer...window freezing occurs at some point.
After reboot......
In Windows Device Manager, there is a high probability that Hub3's driver has an error, and the lower three USBs are not recognized. (See Attachment)
It feels like Windows is freezing due to a problem with the driver.
Is there anything worth checking?
Hello,
I tested the video output on the custom board with the firmware provided by the kba below.
In order to exclude and test the image sensor, we tested it with data from fpga, which outputs a virtual pseudo image, and it worked well on the existing AN75779 project.
Problem:
In a project with that CDC interface, we found that the image did not come up until we opened the COM port on the CDC interface.
(Image1 : without open com port)
(image2 : video capture with opening com port)
Can you tell me why this happens, and how to fix it?
Below is a log that is output when I open a port without video output, as in Image 1.
Additionally) When the DebugInit() function is annotated, video is output immediately without the issue.
It seems to be related to the code below.
Thanks.
Show Less
Hi
I am trying to understand the 2nd stage bootloader example firmware comes with SDK.
And wants to enable the SPI-boot and USB functionality so that Host-Application can access the SPI-Flash
1) Can I remove this part from the bootloader code ?
Please find the attach reference .zip file
2) For USB functionality , Define USB macro and vendor command is added like this
So can I access the Spi-flash ?
Show Less
I am trying to move my DMA channels creation code from CyFxApplnInit to the USB event callback when a CY_U3P_USB_EVENT_SETCONF event is received, however I am receiving error code 0x40 from the CyU3PDmaMultiChannelCreate API call where I never received it when the API call was in CyFxApplnInit. My code is the exact same as when it was in CyFxApplnInit so I am not sure why I am suddenly getting an invalid argument error. I have no errors or warnings when I compile. Below are snippets of my code. Any help identifying why I am getting these errors would be appreciated.
/* Creates UVC DMA channels. */
static void
CyFxUVCApplnDmaChannelCreate (void)
{
CyU3PEpConfig_t epCfg;
CyU3PDmaMultiChannelConfig_t dmaMultiCfg;
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;
/* VideoStreaming USB IN Endpoint Configuration */
epCfg.enable = CyTrue;
epCfg.epType = CY_U3P_USB_EP_BULK;
epCfg.pcktSize = CY_FX_EP_BULK_VIDEO_PKT_SIZE;
epCfg.burstLen = CY_FX_EP_BULK_VIDEO_PKTS_COUNT;
epCfg.isoPkts = 0;
epCfg.streams = 0;
apiRetStatus = CyU3PSetEpConfig(CY_FX_EP_VID_BULK, &epCfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "UVC start CyU3PSetEpConfig failed, Error code = 0x%x\r\n", apiRetStatus);
ApplnErrorHandler(apiRetStatus);
}
dmaMultiCfg.size = CY_FX_UVC_STREAM_BUF_SIZE; /* 16KB */
dmaMultiCfg.count = CY_FX_UVC_STREAM_BUF_COUNT; /* 4 */
dmaMultiCfg.dmaMode = CY_U3P_DMA_MODE_BYTE; /* Should always be CY_U3P_DMA_MODE_BYTE */
dmaMultiCfg.notification = 0;
dmaMultiCfg.prodHeader = 0;
dmaMultiCfg.prodFooter = 0;
dmaMultiCfg.consHeader = 0;
dmaMultiCfg.prodAvailCount = 0; /* Must always be 0 */
dmaMultiCfg.cb = NULL;
dmaMultiCfg.validSckCount = 2;
dmaMultiCfg.prodSckId[0] = CY_U3P_PIB_SOCKET_0;
dmaMultiCfg.prodSckId[1] = CY_U3P_PIB_SOCKET_1;
dmaMultiCfg.consSckId[0] = (CY_U3P_UIB_SOCKET_CONS_0 | 0x02);
apiRetStatus = CyU3PDmaMultiChannelCreate(&glChHandleUVCStream, CY_U3P_DMA_TYPE_AUTO_MANY_TO_ONE, &dmaMultiCfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyU3PDebugPrint(4, "UVC start CyU3PDmaChannelCreate failed, Error code = 0x%x\r\n", apiRetStatus);
ApplnErrorHandler(apiRetStatus);
}
CyU3PUsbFlushEp (CY_FX_EP_VID_BULK); /* Recommended to flush after creation */
Below is the specific case for the CY_U3P_USB_EVENT_SETCONF, when I want the DMA channels to get created
case CY_U3P_USB_EVENT_SETCONF:
if (CyU3PUsbGetSpeed() == CY_U3P_SUPER_SPEED)
{
CyU3PDebugPrint(4, "UsbEventCB: Detected SS USB Connection\r\n");
}
else if (CyU3PUsbGetSpeed() == CY_U3P_HIGH_SPEED)
{
CyU3PDebugPrint(4, "UsbEventCB: Detected HS USB Connection\r\n");
}
/* Create UVC DMA channels */
CyFxUVCApplnDmaChannelCreate();
CyU3PDebugPrint(4, "UsbEventCB: Created UVC DMA\r\n");
glUVCEventProd = 0;
glUVCEventCons = 0;
glUVCEventError = 0;
glUACEventProd = 0;
glUACEventCons = 0;
glUACEventError = 0;
CyFxApplnPrintConf();
Show Less
I'm getting the following error when trying to install the SDK. I think this error could be because I am on Windows 11. Is there a Windows 11 compatible version of the SDK/Driver?
--------------------------- Error ---------------------------
The installer is unable to download installation information. Please check your proxy and internet connection and try again. Details Error Configuration system failed to initialize while downloading file 198_install_catalog_v3.xml from url link file:///C:/Users/USER/AppData/Local/Temp/cy7zSCFE46A37/198_install_catalog_v3.xml
Show LessI have a single system located on the other side of of the world that fail to download new FW.
Unfortunately I do not have much details on what the FX3 API returns etc, but I hope to get some feedback on what could be causing this.
I can download the FW to RAM, but as soon as I try to download to flash, it will abort after a few seconds.
Sometimes the device does not show up in the device manager at all, in which case I need to reset the device.
It works fine on every other system I have and I have not had any issues for years.
Show Less