USB superspeed peripherals Forum Discussions
text.format{('custom.tabs.no.results')}
it 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 LessI’ve been working through the examples in the book SuperSpeed Device Design by Example and would like to use the Slave FIFO example in Chapter 11 as the foundation for a project I’m working on. However, I’m having trouble with dropped data during the transfer and was hoping to get some insight/debug help.
A bit of background on my hardware setup…I’m using the CYUSB3KIT-003 SuperSpeed Explorer Kit in conjunction with CYUSB3ACC-005 FMC Interconnect Board. The FMC board is connected to a Xilinx ZC702 Evaluation Board. So, there are some differences in regards to the hardware setup vs. the example given in the book where the CPLD accessory board is used. I am fairly certain that I’ve worked through all of the IO mapping accordingly because I do get the example to work, just not reliably. The FX3 is loaded with firmware file ‘GPIF_Example4.img’...so DMA watermark value is set to 4.
When I run the example, I have a few main issues that are highlighted below:
- There’s a bunch of sampled data in the form of 0xEFEFEFEF that is taken prior to the start of the counter data. I have hardwired the ‘select’ input to be write-only for now as I’m only interested in streaming data from the FPGA to the FX3. So 'Sel' in the attached code is '0'.
- I have a repeating gap of 1 at indices that equate to exactly 4096, so I seem to be dropping exactly one 32-bit counter word during buffer swaps? The FIRST time this occurs is at byte index 16384 (word index 4096), instead of getting 0x00001000, I get 0x00001001. This index is after all of the 0xEF data was stripped out from the beginning of the collected data packet.
- There’s also a repeating gap of -262208 at various indices, but I’m thinking that if I can solve the issue in #2 above I’ll have more insight here.
Under normal circumstances I could get in a lab and hook up a logic analyzer to gain more insight, but that’s not feasible for at least another couple of months.
I’ve also attached my VHDL code that I ported from the file ‘FifoMasterCounter.v’ included as part of the examples from the book.
Any ideas on where to start or go from here?
Show LessDears
我们这边用到了CX3,我们想请教一下。我们主机是支持usb2.0 + usb3.0 同时工作的。我们想把3.0直接接到cx3上面,usb2.0信号,想先接到hub,然后再接到CX3,不知道这样是否可行 ?HUB 用的是CY7C65642-28LTXC,CX3是CYUSB3065,具体逻辑参考下图
Show Less