Hello all,
Most of the data I'm trying to transmit seems to be going between the FX3 and the other chip just fine, but I'm periodically getting zero length packets seemingly coming from nowhere. I've been trying to debug this, but everything I've tried has been a dead end so far.
I'm trying to use the FX3 to connect an 8051 on our board with a host application on a windows PC. My setup is as follows:
Now the problem I'm seeing is that, the 8051 sends a keepalive signal periodically to the host app, and every once in a while, we get a zero length packet as well.
Here's what I've tried in my investigation:
I suspected that maybe there's noise or something changing the PKTEND pin long enough to trick the state machine into sending a ZLP, but my coworker has already dismissed that notion. He's the hardware guy, so I can't really make him check it, and he didn't leave a way to attach a scope or anything to the pin, so wouldn't be easy.
If anyone has any suggestions of what might be going wrong, or ideas for other things I could test, I'd love to hear them.
Show LessI'm trying to run FX3 for compliance testing. But It can't enter test mode. Are there any conditions to enter test mode?
Also, is there a way to tell if FX3 has entered test mode?
Thanks,
Tetsuo
Hello, I'm using the Denebola kit, I'm trying to write data to SPI flash, I don't get any error while writing data, but when trying to read back I get a value as 0, one more thing to notice is, at some locations values is same as what I have I written.
Let me explain the whole thing clearly, present I'm using a failsafe firmware update, this is the source:https://community.infineon.com/t5/Resource-Library/FX3-Fail-Safe-Firmware-Update/ta-p/246074
but as explained there I'm not using I2C, instead, I'm using SPI, and I'm using the merger provided in the source to combine Images, so my partition is the same as explained in the source.
i.e, bootLoader Partition starts at 0x0000
Primary Firmware starts at 0x6000
Secondary Firmware starts at 0x23000
I'm able to boot to primary Firmware and Secondary Firmware,
I'm using the USBBulkSrcSink example provided in the source, in there I tried to write data to the 0x6000 location and read the data,
the values which are written is stored perfectly, but using the same process I tried to access 0x3FFFF values are not reflecting while reading, even I don't get any error while writing.
screen shot is shared :
Red bix shows code and green box shows output
Show Less
Hi I am using FX3 USB superspeed hardware. I am trying to do file transfer from Master to Slave using cyusb_linux application. I have downloaded the latest application from your website. My OS is Ubuntu. I am getting the below errors LIBUSB_ERROR_TIMEOUT , LIBUSB_ERROR_OTHER and unable to clear halt data pipe. I want to transfer bulk files from master to slave. Kindly help me out in this. I have attached the screen shot. Thanks in advance.
Show LessIs it possible to change DMA configuration while running and restart DMA?
Below is a source that runs in 2-socket GPIF mode and runs fine.
and I want to stop GPIF and run it in loopback mode .
but it stop running.
The red source seems to be wrong.
Please give me guide line. Thank you.
dmaCfg.size = (usbSpeed == CY_U3P_SUPER_SPEED) ?(size * CY_FX_EP_BURST_LENGTH ) : (size);
dmaCfg.count = 4;
dmaCfg.validSckCount = 2;
dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE;
dmaCfg.cb = NULL;
dmaCfg.notification = 0;
dmaCfg.prodSckId[0] = CY_U3P_PIB_SOCKET_0;
dmaCfg.prodSckId[1] = CY_U3P_PIB_SOCKET_1;
dmaCfg.consSckId[0] = CY_FX_EP_CONSUMER_SOCKET;
apiRetStatus = CyU3PDmaMultiChannelCreate (&glChHandleBulkSrc, CY_U3P_DMA_TYPE_AUTO_MANY_TO_ONE, &dmaCfg);
apiRetStatus = CyU3PDmaChannelSetXfer (&glChHandleBulkSrc, CY_FX_BULKSRCSINK_DMA_TX_SIZE);
( Runnig Well)
(change to loop back mode)
dmaCfg.prodSckId[0] = CY_U3P_CPU_SOCKET_PROD;
dmaCfg.prodSckId[1] = CY_U3P_CPU_SOCKET_PROD;// duplicate ?
dmaCfg.consSckId[0] = CY_FX_EP_CONSUMER_SOCKET;
dmaCfg.cb = CyFxBulkSrcSinkDmaCallback;
dmaCfg.notification = CY_U3P_DMA_CB_CONS_EVENT;
CyU3PGpifDisable(CyTrue);
CyU3PDmaMultiChannelAbort(&glChHandleBulkSrc);
apiRetStatus = CyU3PDmaMultiChannelCreate (&glChHandleBulkSrc, CY_U3P_DMA_TYPE_AUTO_MANY_TO_ONE, &dmaCfg);
apiRetStatus = CyU3PDmaChannelSetXfer (&glChHandleBulkSrc, CY_FX_BULKSRCSINK_DMA_TX_SIZE);
( running is stop)
Hi All,
I am using a custom board where Fx3 USB controller is connected to Xilinx FPGA.
I am trying to create an board level Vhdl/Verilog test bench where Fpga is instantiated as DUT component and
FX3 as a test peripheral component.
Is there any VHDL/Verilog simulation model available for Fx3 USB Controller?
Thanks in advance,
Panneer Raja Vajravelu.
Show Less
Hi,
For my initial evaluation of USB3 Vision, I am using the source code shared in the forum. Using that source code, I am able to enumerate the device as a USB3 Vision device, but I cannot connect to any GenICAM application to test the streaming. Any guidance on this would be appreciated.
Thanks in Advance,
Vigneshkumar R.
Show LessHello,
I have study to this thread and other multiple FX3 transmission. Some simple question to clarified as below:
https://community.infineon.com/t5/USB-superspeed-peripherals/Multi-FX3-Usb-deivce/m-p/345350
1.) May I know is possible to have setup as below? (Attached photo)
2.) Currently we have one working .img file where the we could success read/write data between FPGA<->FX3<->PC.
Based on the Two FX3 Configuration picture, Can FX3_A and FX3_B share the exact same .img file without modification? Meaning Only modified on host C code, where set endpoint1, endpoint2 like example ConsoleApplication1 provided?
Thank you.
Thanks
Show Less我使用的开发板是CYUSB3KIT-003。开发板在StreamerExample模式下正常启动后,PC端通过EP0端口给开发板发送一个字节,开发板响应代码如下所示:
if(itype == 64 && itarget == 2 && ireq_type==66 && irequest == 11)
{
CyU3PDebugPrint(6, "switch to bootloader\r\n");
CyU3PUsbAckSetup ();
CyU3PThreadSleep (10);
app_stop();
CyU3PDebugDeInit ();
CyU3PUartDeInit ();
//CyU3PConnectState(CyFalse, CyFalse);
CyU3PUsbSetBooterSwitch (CyTrue);
CyU3PUsbJumpBackToBooter (0x40078000);
//CyU3PDeviceReset(CyTrue);
while (1)
CyU3PThreadSleep (100);
bis_handled = CyTrue;
}
我希望它切换到bootloader模式,结果设备不见了,如下图所示:
怎样用代码从StreamerExample模式切换到bootloader模式呢?如下图所示:
Show Less
If I need to use multiple endpoints of fx3, should I use them in order? That means I should use ep1, then ep2, ep3, and so on.
Can I not use ep2, instead, I use ep3 or ep4, for example?
I found when I used ep1, ep2, ep3, my project can work; But if I used ep1, ep2, ep4, the project will go wrong.
Is this the rule for using the endpoints of fx3? But I have not found the rule in any reference documents of fx3.
Or I have something else wrong?
Thanks a lot.
Show Less