USB superspeed peripherals Forum Discussions
I am using the GPIF2 function of FX3 to receive large amounts of data from an FPGA, and then I am transmitting this data to a PC via USB using the Bulk-in path.
During USB Bulk transfers, I am experiencing a delay between I2C packets when using FX3's I2C Master to communicate with the FPGA's I2C Slave.
When not performing data transmission via Bulk, the operation works correctly with very short delays.
However, when using Bulk transfers consecutively, there is a significant delay between I2C packets.
I used FX3's SDK version 1.3.4, and here are the settings for the I2C:
void AppInit() { AppDebugInit(); AppPibInit(); AppGpifInit(); AppGpioInit(); AppI2cInit(400); AppUsbInit(); } |
void AppI2cInit(uint32_t i2cSpeed_KHz)
{
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;
CyU3PI2cConfig_t i2cConfig;
/* Initialize and configure the I2C master module. */
apiRetStatus = CyU3PI2cInit();
AppErrorHandler(apiRetStatus,"CyU3PI2c failed", CyTrue);
/* Start the I2C master block. The bit rate is set at 100KHz.
* The data transfer is done via DMA. */
CyU3PMemSet((uint8_t *) &i2cConfig, 0, sizeof(i2cConfig));
i2cConfig.bitRate = i2cSpeed_KHz * 1000;
i2cConfig.busTimeout = 0xFFFFFFFF;
i2cConfig.dmaTimeout = 0xFFFF;
i2cConfig.isDma = CyFalse;
apiRetStatus = CyU3PI2cSetConfig(&i2cConfig, NULL);
AppErrorHandler(apiRetStatus,"CyU3PI2cSetConfig failed", CyTrue);
}
|
CyU3PReturnStatus_t I2C_Write(uint8_t SlaveAddr, uint8_t* addr, uint16_t addrLen, uint8_t* data, uint16_t dataLen)
{
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;
CyU3PI2cPreamble_t preamble;
uint8_t* dataBuf = (uint8_t*)CyU3PMemAlloc(dataLen * sizeof(uint8_t));
CyU3PMemCopy(dataBuf, data, dataLen);
preamble.length = addrLen + 1 ;
preamble.buffer[0] = SlaveAddr; /* Slave address: Write operation */
CyU3PMemCopy(&(preamble.buffer[1]), addr, addrLen);
preamble.ctrlMask = 0x0000;
apiRetStatus = CyU3PI2cTransmitBytes(&preamble, dataBuf, dataLen, I2C_RETRY_COUNT);
AppErrorHandler(apiRetStatus, "CyU3PI2cTransmitBytes Fail", CyFalse);
CyU3PMemFree(dataBuf);
return apiRetStatus;
}
|
CyU3PReturnStatus_t I2C_Read(uint8_t SlaveAddr, uint8_t* addr, uint16_t addrLen, uint8_t* data, uint16_t dataLen)
{
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;
CyU3PI2cPreamble_t preamble;
preamble.length = addrLen + 2;
preamble.buffer[0] = SlaveAddr;
CyU3PMemCopy(&(preamble.buffer[1]), addr, addrLen);
preamble.buffer[addrLen + 1] = (SlaveAddr | 0x01);
preamble.ctrlMask = 0x0004;
apiRetStatus = CyU3PI2cReceiveBytes(&preamble, data, dataLen, I2C_RETRY_COUNT);
AppErrorHandler(apiRetStatus, "CyU3PI2cReceiveBytes Fail", CyFalse);
return apiRetStatus;
}
|
Are there any settings required to simultaneously use GPIF2 and I2C, or if not, please explain what is causing the delay?
Hello all,
I followed this KBA https://community.infineon.com/t5/Knowledge-Base-Articles/EZ-USB-CX3-Interfacing-with-the-onsemi-AR0...
and able to stream y8 successfully in both YUY2 and Y8 formats and then I tried to stream y10 as my sensor supports 10bit per pixel too and streamed it in YUY2 format.
Now, I want to stream it in Y10 MONO format. To do that I didn't find any GUID for Y10 and I would like to know that "Does windows will support Y10 mono streaming" if not is there any application which supports streaming Y10 MONO streaming.
10bit video streaming in YUY2 format
Regards,
StarDust
Show LessThis is OS driver related question.
FLIR USB cameras support a streaming mode "In Streaming mode, frames are written directly to disk and not buffered in system memory while recording." Saving images at high bandwidth
Wondering if such a such a feature in possible with FX3 based designs.
i.e something like DMA from USB host controller to SATA controller bypassing CPU RAM???
Ravi
Show Less
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