USB superspeed peripherals Forum Discussions
Hi. I'm trying to replicate the original design https://community.infineon.com/t5/Knowledge-Base-Articles/EZ-USB-CX3-Interfacing-with-the-onsemi-AR0234CS-sensor-KBA236855/ta-p/402602 on your board (not the Denebola kit). I don't see any access to the sensor on the I2C bus. I started looking at the source code, I see the functions CyCx3ImageSensorInit(void), CyCx3ImageSensorSleep(void), CyCx3ImageSensorWakeup(void), but they are not called anywhere. What does it mean? I started adding CyCx3ImageSensorInit(); to the source code,- it works(there is activity on I2C) only up to the line CyU3PTimerCreate (&Cx3ResetTimer, cycx3appprogrestimer, 0x00, TIMER_PERIOD, 0, CYU3P_NO_ACTIVATE);. After this line,- does not work. The sensor connection is standard 4 lines, the generator on the sensor board is 27MGz. I attach a photo of the installation and terminal output. e-CamView sees the device, but cannot read frames.
Show LessHello,
I need an example of CX3 Isochronous modes with MIPI csi camera sensors like OV5640 or others, I want to why you only provice CX3 Bulk modes + mipi sensors like ov5640/as0260. It seems that most of UVC camera use Isochronous modes, not bulk modes.
Thanks
Show LessHello everyone,
I have a thermal camera module which i connect and get video successfully on CYUSB3017 and here is the settings screenshots;
can someone help me to make an example project to CYUSB3014 with same settings AN75779 ?
640x512
25FPS
YUV2 16bit
at the attachment you may find configurations for 3017
and the temp. project was SX3 explorer kit FV_LV_Interface.
I have not much SW dev. experience can someone share modified example of AN75779 ?
Thanks
Show LessHello,
I'm debug the CYUSB3014 evb board base on the an75779 demo code, when I enable the USB_DEBUG_INTERFACE in uvc.h, and install the driver, but when I use the Control Center, it only can write once, and need write success again, I add a printf in the UVCAppEP0Thread_Entry, it nerver goto this function, I think it doesn't make sense, I attach the project, can you give some suggestions, thanks.
Show Less
We want to test the Synchronous transfer mode, can you provide the example?The example in SDK is bulk mode,Is there a tutorial if we modify it, or just fix descriptors in USB dscr?
Show LessDear fx3 experts! I encountered a problem during development.
I used the 3014 chip, and the data stream was transmitted from FPGA to 3014 and then output through UVC.
When I use the Windows system, the video stream appears to be normal. But when I use the Mac system, the video stream will experience jitter. The video stream is good and bad at times, and this time is random.
I use manual DMA and print the values of prodCount and consCount in UVCAppServiceThread_Entry function. I found that when the video stream shakes, it does not enter the CyFxUVCDmaMultiCallback function, and the values of prodCount and consCount also increases(about 60).
The jitter phenomenon looks like that: the image in the upper part of the video stream has been updated, but the image in the lower part has not been updated, resulting in misalignment.
It looks like packet loss and something else, I don't really understand how to solve it.
Could someone give me some advice? Thanks.
Hai ,
In our project we are using cypress FX3 to transfer data from Artix-7 fpga to PC .We are accessing the GPIF interface to transfer the data from fpga to PC.Using visual studio to run the c++ code to capture the data from fpga and using the FX3 driver provided by the texas instrument
But, we are receiving the data at very low speed.In datasheet of fx3 it is mentioned as FX3 will achieve datarate of 5Gb/Sec.Our main aim to achieve the maximum throught the fx3 capable of.
So please give guidance to achieve the maximum throughput of FX3.
Show LessThe GPIF2 user guide, has the following description for the COMMIT action:
The COMMIT action commits the data packet / buffer on the selected Ingress DMA channel. This action is typically used to force “buffer / packet end” using state machine. For committing short buffers, this action should be used along with the IN_DATA action. If the buffer is partially filled and the COMMIT action is performed without IN_DATA action, a zero length buffer will be committed in addition to the partially filled buffer.
It mentions what happens when the COMMIT action is performed when the current thread's buffer is only partially filled. However, it is not immediately clear what happens when the COMMIT action is performed WITH an IN_DATA action where the IN_DATA action will fill the buffer. Can I get a clarification on what happens in this scenario?
In this scenario, does the COMMIT action do anything since the IN_DATA action will completely fill a buffer and that should automatically commit the filled buffer to the consumer socket?
In this scenario, does the COMMIT action additionally commit a ZLP after the filled buffer is committed to the consumer socket?
Furthermore, what does COMMIT action do if the current buffer is empty (i.e. no IN_DATA action was done beforehand)? Does it commit a ZLP to the consumer socket?
Thanks
Show LessMy application is that CyUSB3014's UART, GPIO55, and GPIO56 are directly connected to the FPGA. EP0 receives PC data, sends it to the FPGA through UART, and the data that UART receives in response from the FPGA is sent back to the PC via EP0. The transmitted UART communication is a 16 byte data frame, and the communication frequency is no more than 5 times per second. The problem currently encountered is that when the 3014 UART is configured in register mode, there is a high probability that a CY_U3P_UART_ERROR_RX_OVERFLOW error will occur, and communication cannot be restored. The UART callback function is as follows:
uart initialization function:
ep0 processing part:
There are currently no issues found. Then I tried the UART DMA mode again. There is no problem with UART RX, but there is a problem with TX. Sometimes TX fails to send, causing the FPGA not to receive data frames.
dma uart is initialized as follows:
cyu3preturnstatus_t uartDMA_sendData (uint8_t * buffer, unsigned int len) {cyu3preturnstatus_t status; unsigned int i = 0;
Cyu3PDMachannelGetBuffer (&gluarttXchHandle, glTxBuffer, 0); for (i = 0; i len; i++)
<
{
glTxBuffer->buffer[i] = buffer[i];
}
Cyu3PDMachannelSetupSendBuffer (gluarttXchHandle, glTxBuffer); status = &
Cyu3pdMachannelCommitBuffer (&gluarttXchHandle, 16, 0); return status;}
I don't know if anyone has run into this kind of problem?? thanks
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/%E8%B6%85%E9%AB%98%E9%80%9FUSB%E5%A4%96%E8%AE%BE/cyusb3014%E4%B8%B2%E5%8F%A3%E9%97%AE%E9%A2%98/td-p/649079
Show Less