USB superspeed peripherals Forum Discussions
My application was developed by Python and now I want to use FX3 USB suite. My application needs to enumerate our USB device, bind each endpoint with a pipe for specific purpose. I installed FX3 driver on Win 7, and tried to use makepy to generate .py file. But makepy.py can not find any type library match cyapi.lib or cyusb.dll. Do I have to re-program my project using VC++ in order to use cyapi.lib? And how can I bind a pipe with a specific endpoint?I didn't find an IOCtrl codes for binding pipe.
Show LessCan someone tell me what is the distance between the two connectors on the above board? I can seem to find any info on this measurement. There is a PDF assembly drawing but it only gives the size of the board.
Thanks
Show LessHello everyone,
Why SS_RX_P is connected to STDB_SSRX-, respectively SS_RX_M is connected to STDB_SSRX+, and not the reverse ?
Is that a mistake?
Thanks in advance.
Regards
Stephane
Show LessWe've just got started testing the FX3 (CYUSB3014-BZXI) on a custom board, connected to a FPGA as in the AN65974: Designing with the EZ-USB® FX3™ Slave FIFO Interface.
With the SlaveFifoSync example configured at 16 bits and a 100 Mhz PCLK, the cypress streamer application recieves data at 179000KB/s. Then when the firmware is changed with the CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECT = 1 nothing works.
The FPGA is a configured with the state machine from the provided vhdl code.
FLAGA/FLAGB is inactive, so the fpga remains in idle mode - transfer never starts. All FX3 init code checks out without any errors, new GPIF design for 32-bit with GPIF2 designer don't seem to work either.
We're obviously missing something...?
(Meanwhile we'll continue search the forums for similar problems - no exact match found yet)
Show LessHi,
How can I do a simple GPIF loopback ?
I want to stream data from my host to the FX3 board that send it to the GPIF Databus and send back the databus value to my host.
I can send data to the databus but I cannot read the databus just after... I didn't receive anything ...
I use the CY_U3P_UIB_SOCKET_PROD_1 -> CY_U3P_PIB_SOCKET_0 and CY_U3P_PIB_SOCKET_4 -> CY_U3P_UIB_SOCKET_CONS_1 channels.
In my state machine I just do a DR_DATA and IN_DATA both on the thread0.
But I never receive data back....
Any advice please ?
Show LessHi,
I have a FX3 USB device that utilizes the "FX3 Streamer Example device" drivers to work properly on Windows 7, 8, 8.1, 10,
I want to integrate the drivers in my installer, since the drivers provided by Cypress are not standard drivers and contains multiple drivers, is there a solution to integrate the FX3 Streamer drivers in my installer, If anyone has implemented this could you please guide me on how to proceed with this integration so that the drivers are installed properly.
Thanks
Ganesh
I need to use the UART receive and transmit with my FX3 project.
I tried the DMA method, but it was just unreliable, expecting a particular number of bytes before it would receive.
Now, not using the DMA method, I just call CyU3PUartTransmitBytes() to transmit, which works fine.
I need some help with receiving data though, I need some way to either poll the receive buffer, or better yet, a way to trigger and jump to an interrupt routine when data is received.
Can a non DMA method of receiving be set up with an interrupt method? I can't find an example of this.
Also, since this project used Threadx and I'm just not sure if I need to create a thread for this, or how to go about it.
I have not been getting any response from Cypress support for a few weeks now, so maybe somebody here has an idea, or can point to an example?
Thanks for your help.
Show LessHi,
I am trying to use the CYUSB3KIT-0003 FX3 to forwards GPIO to USB3 through GPIF.
I created two DMA channels :
- One from USB3 channel 1 ( INPUT 0x01) to GPIF PIB BLOCK 0 .
- One from GPIF PIB BLOCK 4 to USB3 channel 1 (OUTPUT 0x81).
Next I have the configuration for my GPIF state machine where I wait for a DMA request on thread0 and write the data on the corresponding DATA_BUS (8bits). After writing I jump to another state where I compare (with the action CMP_DATA) the value of one bit on the databus that I come to write. Indeed, I want to read back my data bus value to the USB3 channel OUTPUT only when I receive from my USB3 channel INPUT a packet with the bit 5 at 1.
Can I compare the value of the databus using CMP_DATA with the value databus value I come to set ?
I don't know if the mistake come from my state model or my DMA configuration.
Below how are configured my DMA channels :
dmaCfg.prodSckId = CY_U3P_UIB_SOCKET_PROD_1;
dmaCfg.consSckId = (CyU3PDmaSocketId_t)CyU3PDmaGetSckId (CY_U3P_PIB_IP_BLOCK_ID, 0);
apiRetStatus = CyU3PDmaChannelCreate (&glChHandleUSBIn,
CY_U3P_DMA_TYPE_AUTO, &dmaCfg);
dmaCfg.prodSckId = (CyU3PDmaSocketId_t)CyU3PDmaGetSckId (CY_U3P_PIB_IP_BLOCK_ID, 4);
dmaCfg.consSckId = CY_U3P_UIB_SOCKET_CONS_1;
apiRetStatus = CyU3PDmaChannelCreate (&glChHandleUSBOut,
CY_U3P_DMA_TYPE_AUTO, &dmaCfg);
The state machine attached.
I hope I was clear enough.
Thank you by advance.
Show Less