USB superspeed peripherals Forum Discussions
Hello,
I am trying to use the FX3 SlaveFIFO in 32-bit mode for automatic DMA transferring. I am able to fill up the buffers and send data to the host, however I noticed half of each of the 32-bit words are missing. This leads me to believe it is operating in 16-bit mode.
Am I missing a configuration somewhere? Note I have setSysClk400 set to True.
For reference, see main C source file that implements this. The project is a modification of AN75779 firmware, and uses the GPIF design from AN65974.
Thanks,
Nicholas
Show LessI have a manual single DMA channel which is dealing with multiple small packets, one at a time. After committing the buffer, the data arrives at the host just fine.
However, I cannot start a new DMA transfer because the previous one is ACTIVE indefinitely.
The setup is:
dmaCfg.size = 96; // Multiple of 32 required
dmaCfg.count = 192; // 256 seems to crash? Not sure why, should be plenty of memory?
dmaCfg.prodSckId = CY_U3P_PIB_SOCKET_0;
dmaCfg.consSckId = CY_U3P_UIB_SOCKET_CONS_1
dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE;
dmaCfg.prodHeader = 16; // Multiple of 16 required
dmaCfg.notification = 0xffff; // I'll take anything
dmaCfg.cb = funcCallback;
...
CyU3PDmaChannelCreate(&handle, CY_U3P_DMA_TYPE_MANUAL, &dmaCfg);
CyU3PDmaChannelSetXfer(&handle, 80);
In my callback, I get a CY_U3P_DMA_CB_PROD_EVENT:
CyU3PDmaChannelGetBuffer(&handle, &bufp, CYU3P_NO_WAIT);
CyU3PMemCopy(bufp.buffer - 16, &header, 16);
CyU3PDmaChannelCommitBuffer(&handle, bufp.count + 16, 0);
CyU3PEventSet(&glEvents, PROD_COMPLETE_EVENT, CYU3P_EVENT_OR);
Then, in my event handler, I try to queue up my next packet by waiting for the transfer to complete.
CyU3PDmaChannelWaitForCompletion(&handle, 1000);
But it never completes. The state is ACTIVE forever.
Is there a better way to handle multiple manual transfers? I'm sure I could completely reset & abort, but that seems like overkill.
Thanks!
Show LessThis question is further to: Does the CX3 really need a clock buffer?
What are the drive requirements for the REFCLK and CLKIN pins on the CX3? If I want to select an oscillator to drive them, I need to know the input current and capacitance of these pins The datasheet and TRM don't seem to give this information.
Is this information available somewhere?
Show LessHi,
1.Please confirm whether the AC capacitors are required between the Type-C connector and the MUX (PI5USB30213AXEA) input on TX lines.
2.Shall i keep the VCONN pin floating in the PI5USB30213AXEA MUX IC. Please confirm.
Regards,
Suresh
Show LessHello,
I noticed the FX3 USB Video Class Example does not work when plugged into a USB 3.0 port, but does on a USB 2.0 port. I use VLC Media Player to open the FX3 as a video capture device. On a 2.0 port, I see the image flipping between the two frames in the program. On a 3.0 port, the first frame comes up and then it seems the video stream stops. Using wireshark, I see the streaming stops after only a few transfers.
Any idea what the issue is? This example is currently unmodified. I would like to use this program for use with another USB 3.0 video streaming application. A fix to this issue would be great.
Thanks,
Nicholas
Show LessOn my CX3 board, the USBBulkSourceSink firmware example enumerates correctly, whether my board is is connected to a USB 3.0 or 3.2 socket.
However, when I download my own firmware onto the board, then it enumerates correctly when connected to the 30 socket, but not the 3.2 socket.
Is there something specific the firmware needs to do to allow it to enumerate correctly when connected to a USB 3.2 socket?
Show Less
I hope we can change the SPI CPOL/ CPAH by a command from Host by any time . I can not find any examples like it. So i try to do it by call CyU3PSpiSetConfig, but when I do it, the firmware will become frozen. Maybe someboby can tell me the true way. thanks!!
case SPI_SET_CPOL_LOWHIGH:
if(wIndex==0)
{
g_spiConfig.cpol = CyFalse;
}
else
{
g_spiConfig.cpol = CyTrue;
}
status = CyU3PSpiSetConfig(&g_spiConfig, NULL);
break;
Show Less
Hello I'm using FX3, for debug purpose I'm using Tera Term, to see data sent from FX3, for basic start , I tried to print "Hello world" but all I got is messy data. what's the problem?
and serial port settings
Thank you.
Show LessHi Cypress Team,
The question is about the GPIF-to-USB Performance on an AUTO DMA Channel section in the AN86947 - Optimizing USB 3.0 Throughput with EZ-USB® FX3 document.
I found it very helpful to verify the transfer throughputs results from the different configurations. However, on my end, I'm currently working with a board that has a GPIF II 16-bits data and the results from the document are from a GPIF II 32-bits.
I was wondering if I can just use the results and divide them by 2 to adapt them to my 16-bits GPIF II.
Thank you
Keven
Show LessHi,
I finally got all the information from the camera supplier and filled the 'Image Sensor Configuration' tab in the CX3 MIPI Receiver Configuration.
When I switch to the 'CX3 Receiver Configuration' tab, I get the two following errors :
Min/Max values don't make sense so I don't know how to fix these errors ?
I still tried to use the resulting configuration but I only get black screen.
Any idea how to make this interface work ?
Best regards,
SimonP
Show Less