USB superspeed peripherals Forum Discussions
We have designed custom board for camera video out in UVC mode. Video out work fine USB2.0 but there is no video when connecting USB3,0 port but the device details PID,VID in device manager are correct. Please suggest steps to troubleshoot the issue.
Thanks,
Jayaram
Show LessHello,
I want to implement a SPI communication between the PC (host application) and the FPGA, via the FX3 device. I want to both send and receive data simultaneously. I want to send some commands to the FPGA and be able to get the FPGA’s response.
I am using the UsbSpiRegMode firmware code example, and the functions CyU3PSpiTransmitWords and CyU3PSpiReceiveWords in same SS low/high period, or the function CyU3PSpiTransferWords. With the functions CyU3PUsbSendEP0Data and CyU3PUsbGetEP0Data.
But on the host application (Control Center), the control point can use either Write or Read (Out or In), but not Write/Read at the same time.
On the host application, I can send successfully some data to the FPGA but I am not able to read the data that are coming from the MISO line (FPGA's response).
How can I do both send and receive data simultaneously?
Thank you.
Jean.
Show Lessit takes at least 90s to config fpga via fx3 in slave selectMAP mode , while the bitfile is about 8MB.
how can i reduce the time cost? where can i change config clock?
thanks。
Show LessHello
I use the CMOS sensor below to create the FW, and I want to set H-Blanking and V-blanking time.
maker : Omnivision
Product : OV2312
output I/F: MIPI
Resolution : 1280 x 720@60fps
Format : RAW10
However, I can not get the H-Blanking and V-Blanking time from CMOS maker.In this case, Is there any other method to know the H and V-Blanking period?
Best Regards
Arai
Show LessHi there,
I wrote a tiny app to know how many data requests can be sent (received) to (from) FX3 device. According to USB specification it must be one request per each millisecond or 1000 requests per second, but I need to be sure. So part of my EP0 callback looks like:
...
if (SetupRequest.DirDevToHost
&& (SetupRequest.Type == (CY_U3P_USB_VENDOR_RQT >> 5))
&& (SetupRequest.Target == CY_U3P_USB_TARGET_INTF))
{
switch (SetupRequest.Value) {
// Sending 16 bytes of data TO host
case VENDOR_CONTROL_REQUEST:
request_counter++;
CyU3PUsbSendEP0Data(SetupRequest.Length, Ep0Buffer);
isHandled = CyTrue;
break;
default:
CyU3PDebugPrint(CY_FX_DEBUG_PRIORITY, "Unknown vendor code received (%d)\r\n", SetupRequest.Value);
CyU3PUsbStall (0, CyTrue, CyFalse);
}
}
if (!SetupRequest.DirDevToHost
&& (SetupRequest.Type == (CY_U3P_USB_VENDOR_RQT >> 5))
&& (SetupRequest.Target == CY_U3P_USB_TARGET_INTF))
{
switch (SetupRequest.Value) {
// Receiving 16 bytes of data FROM host
case VENDOR_CONTROL_REQUEST:
request_counter++;
CyU3PUsbGetEP0Data(SetupRequest.Length, Ep0Buffer, &br);
isHandled = CyTrue;
break;
default:
CyU3PDebugPrint(CY_FX_DEBUG_PRIORITY, "Unknown vendor code received (%d)\r\n", SetupRequest.Value);
CyU3PUsbStall (0, CyTrue, CyFalse);
}
}
...
Next, I attach FX3 to USB 3.0 port and start to send 1000 vendor requests to EP0. The result is perfect: 1000 requests in ~1000 ms.
Starting 1000 control requests from Host to Device...
Completed in: 1007 ms
Starting 1000 control requests from Device to Host...
Completed in: 1000 ms
But when I attach FX3 to USB 2.0 port something strange happens. Device to host requests take a lot of time: 1000 requests in ~11 seconds!
Starting 1000 control requests from Host to Device...
Completed in: 1000 ms
Starting 1000 control requests from Device to Host...
Completed in: 10969 ms
I have tried on different computers (desktop, laptop), on different OS'es (Windows, Linux), on different libs (libusb, libusbK), the result was the same. Finally, as I found it started to work properly when I turned off DMA multi channel. Just commented lines below and data rate from device to host has returned to normal speed.
/* Set DMA Channel transfer size */
// apiRetStatus = CyU3PDmaMultiChannelSetXfer (&DmaChInHandle, 0, 0);
// if (apiRetStatus != CY_U3P_SUCCESS)
// {
// CyU3PDebugPrint (CY_FX_DEBUG_PRIORITY, "CyU3PDmaMultiChannelSetXfer failed, Error code = %d\r\n", apiRetStatus);
// CyFxAppErrorHandler(apiRetStatus);
//}
And now my questions are: why this happen and how can I fix it? Source code is attached, test app for Linux based on Qt & libusb 1.0.
Show LessHi all,
Iam tring to communicate with the cypress device using libusb and the cypress wrapper. But the libusb_init() function always return -1(LIBUSB_ERROR_IO).
The android device is rooted. I can not use any of the libusb commands.
Cypress device -CYUSB3014-BZXC
Anybody help me to resolve this issue?
Regards,
Sarath
Show Less
Hi,
I'm using CYUSB2KIT-003 with the aptina sensor for non-uvc application.
Everything works with 720p and 8bit pixel-depth.
Now I want to move on to our costume sensor.
I want to be able to change resolutions and the pixel-depth (from 8bit to 14, 16, up to 24) on runtime.
Is it possible?
If so;
1. How is it effect the GPIF bus
2. How should change the DMA configuration? (size? alignment?)
3. What else should I change to be able to do it?
( My reference code is from here - FX3 non-uvc camera streamer )
Omri.
Show LessHi Cypress Experts:
This ticket is the extend of CX3 prototype went unstable .
When I test more module , i found update the SDK to 1.3.4 can't totally fix my issue.
I still have some module has this kind CB failure and lost frame issue after couple seconds.
My procedure as below:
1. I can program to flash and enumerated in device manager.
2. When I open the camera use Amcap, it can show image from 1s to 30+seconds..
3. When the Amcap lost frame, there is "CB Failure" in Uart log...
4. Re-open the Amcap, it can start streaming, but lost frame soon...
Note:
1. Not 100% module has this issue, all module tested with same cable,same PC USB port,same CX3 binary.
2. Same PC, different USB port has different result, One USB3.0 port is stable than another one USB3.0 port(can steam longer).
3. My PC has a dock, when I plug the USB3.0 cable to Dock's USB3.0 port, it becomes much better( but still have CB failure and lost frame after couple mins)
4. I have tried to increse the DMA buffer size by set
#define CY_U3P_SYS_MEM_TOP (0x40080000)
5. I also have tried to implement the codes referring Invalid Sequence Error in Multi-Channel Commit Buffer - KBA218830
But the issue still not fixed,
Do you have any other suggestion to do?
If possible, could you please send me your email address? I'd like whether you can kindly help me to check the project's code?
Thanks and looking for your feedback.
Show LessHi
We have connected CYUSB3013-BZXC to the PC through a USB5537B USB Hub controller
However, we are not able to see endpoints that have been assigned to USB3.
What could cause this?
The endpoints shown using the FX3-DK are:
- 0x01
- 0x82
- 0x81
- 0x83
The endpoints showing on the on board FX3 IC are:
- 0x01
I have attached the USB descriptor file here for reference and an image of the endpoints showing on the FX3-DK and not showing in our Main PCB
Thanks
Show LessHi all,
As title, we are developing an application which can receive data from FPGA through sync_slave_FIFO to PC.
We use BulkInEpt->XferData(*) to receive data. It's working fine under USB 2.0 but stuck under USB 3.0.
Below is some code snippet we use to receive data.
And if we uncomment "printf("0x%p\n", cur_write_pos);", it's working fine under USB 3.0.
What's the possible problem here?
//-----------------------------------------------------------------------
#define BULK_IN_BUFFER_SIZE 16 * 1024
BulkInEpt->TimeOut = 0xFFFFFFFF;
// resdiual_bytes_wanted is the #byte desired
while (1)
{
if (resdiual_bytes_wanted > BULK_IN_BUFFER_SIZE)
len_actual = len_wanted = BULK_IN_BUFFER_SIZE;
else
len_actual = len_wanted = resdiual_bytes_wanted;
//printf("0x%p\n", cur_write_pos);
status = BulkInEpt->XferData(cur_write_pos, len_actual);
if (status)
{
cur_write_pos += len_actual;
total_received += len_actual;
resdiual_bytes_wanted -= len_actual;
if (resdiual_bytes_wanted == 0 || len_wanted != len_actual)
{
final_status = true;
break;
}
}
}
Thanks,
Wesley
Show Less