USB superspeed peripherals Forum Discussions
Hi,
We were using modified 'Slave FIFO' application note design. With this design, we will be performing the DMA channel destroy and create in-between our operation. During these operation, some times we are seeing the below error (but we are seeing it to work for some times as well).
This error states that, some parameters are bad. But, we are calling the same function all the times and working sometimes and not sometimes. So, please let us know what other parameters will cause this issue and probably how to solve this.
//Error
CyU3PDmaChannelCreate failed, Error code = 64
//Code Snippet
/* Create a DMA AUTO channel for U2P transfer.
* DMA size is set based on the USB speed. */
dmaCfg.size = DMA_BUF_SIZE* size ;
dmaCfg.count = CY_FX_SLFIFO_DMA_BUF_COUNT_U_2_P;
dmaCfg.prodSckId = CY_FX_PRODUCER_USB_SOCKET;
dmaCfg.consSckId = CY_FX_CONSUMER_PPORT_SOCKET;
dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE;
/* Enabling the callback for produce event. */
dmaCfg.notification = 0;
dmaCfg.cb = NULL;
dmaCfg.prodHeader = 0;
dmaCfg.prodFooter = 0;
dmaCfg.consHeader = 0;
dmaCfg.prodAvailCount = 0;
tempDmaChannel = CyU3PDmaChannelGetHandle(CY_FX_PRODUCER_USB_SOCKET);
if(tempDmaChannel != NULL)
{
CyU3PDebugPrint (4, "CY_FX_PRODUCER_USB_SOCKET : %d socket occupied", CY_FX_PRODUCER_USB_SOCKET);
}
tempDmaChannel = CyU3PDmaChannelGetHandle(CY_FX_CONSUMER_PPORT_SOCKET);
if(tempDmaChannel != NULL)
{
CyU3PDebugPrint (4, "CY_FX_CONSUMER_PPORT_SOCKET : %d socket occupied", CY_FX_CONSUMER_PPORT_SOCKET);
}
apiRetStatus = CyU3PDmaChannelGetStatus(&glChHandleSlFifoUtoP, &dmaState, &prodXferCount, &consXferCount);
CyU3PDebugPrint (4, "CyU3PDmaChannelStatus = %d\n", dmaState);
if(dmaState != CY_U3P_DMA_NOT_CONFIGURED)
{
CyU3PDebugPrint (4, "Dma U2P channel already configured\n");
}
apiRetStatus = CyU3PDmaChannelCreate (&glChHandleSlFifoUtoP,
CY_U3P_DMA_TYPE_AUTO, &dmaCfg);
if (apiRetStatus != CY_U3P_SUCCESS)
{
CyU3PDebugPrint (4, "CyU3PDmaChannelCreate failed, Error code = %d\n", apiRetStatus);
CyFxAppErrorHandler(apiRetStatus);
}
Thanks,
KCNGP
Show LessI have a Cypress FX3 device connected to my PC, and EZ-USB FX3 SDK v1.3 installed.
Stepping with the debugger through the code of the supplied sample BulkLoop, the call to CCyUSBDevice in the line
m_selectedUSBDevice = new CCyUSBDevice(this->m_hWnd, CYUSBDRV_GUID, true);
doesn't return.
What causes the problem?
Show LessHi,
We are using the FX3 chip in our design with the aim of checking the physical layer errors when USB port is under loopback test.
The firmware is based on cyfxbulklpauto example, and we have defined a vendor command to read the error counters and LNK_PHY_ERROR_STATUS and LNK_ERROR_STATUS registers.
When our device in directly connected to a USB3 port, we don't see low-level errors. However when we it is connected via CY4603 hub kit, we see many CRC-16 errors (one CRC-16 error per packet). Surprisingly, the throughput that we measure in our windows software is not affected by these errors (the measured throughput is the same as when the device is directly connected to the PC). We have also tried other hubs, but it seems this only happens with Cypress hub.
Do you know what could be causing this?
Thanks in advance,
Show LessHi
I am using the Simple GpioApp firmware to blink the LED based on Positive Edge interrupt on Gpio input(pin 37). I mean the led should start blinking when i give an external signal from switch. When i build and run the program on my customized FX3 board, LED starts blinking irrespective of the interrupt callback function. As i said i am using default gpioapp firmware. Instead of gpio 45 (io_cfg.gpioSimpleEn[1] = 0x00002000; /* GPIO 45 */) we are using Gpio 37 as input pin (io_cfg.gpioSimpleEn[1] = (1 << (37 - 32));
I have tried all positive edge, negative edge and both the edges, but interrupt callback function is not working. So need help to figure out this. Thanks in Advance.
Regards,
Swetha Patil
Hello! the datasheet of AN70707 recommends using 22-Ω series termination resistors to avoid reflection on these lines. When FPGA is close to CYUSB3014(about 40mm), can I leave out the 22-Ω series termination resistors to make it convenient?
Show LessCan the FX3S change gpif2 at any time at one application? just like as FX2LP, the FX2 can change SLAVE FIFO mode or GPIF mode at any time at one application.
Show LessHai, I saw the USB serial configuration utility setup for usb 2.0 in cypress website.But I want USB serial configuration utility setup for CYUSB3KIT-001 FX3 DVK....Because i want to change the vendor id and product id for my application. So where i will get that setup...Please send the Link...
Show LessDear Sir,
I want to use some GPIOs on CX3 as Button inputs and also voltage level change detection. so I want to how to configure these GPIOs to raise interrupt while voltage level changing?
Thanks.
David
Show LessIn FW of ASCELLA I would like to add the UVC device iSerialNumber of 8 digits random number.
(EX. 00000000,. . . ,FFFFFFFF)
Who do you know how?
I use "CYUBS3KIT-003 EZ-USB FX3". I debug the example "USBBulkSourceSinkLED".
The problem is that When I click "Suspend" during debugging I get an error:
Can't find a source file at "e:\views\antioch_fx3_build_view_puri\software\products\usb30\sdk\firmware\src\rtos\threadx/tx_thread_schedule.s"
Locate the file or edit the source lookup path to include its location.