- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
FPGA is connected to FX3 with GPIF 32 interface. And initially two endpoint are created e.g. 0x01 and 0x81 .
So, Host pc can directly communicate the FPGA though DMA channel and its work fine.
But when a "Interrupt Endpoint (0x82)" was added for sending the GPIO interrupt info to Host pc , Communication between Host pc to FPGA stopped working ?
CyU3PDebugInit() ; Function is use to create the DMA channel for interrupt.
Sending the data on Interrupt endpoint
Configuration on Interrupt endpoint
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Please confirm if the host is reading the interrupt endpoint continuously as CyU3PDebugPrint will get stuck if the DMA buffer overflows (i.e. data not read by the host) or please call CyU3PDebugPrint only when host starts reading data
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Please confirm if the host is reading the interrupt endpoint continuously as CyU3PDebugPrint will get stuck if the DMA buffer overflows (i.e. data not read by the host) or please call CyU3PDebugPrint only when host starts reading data
Rashi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I try Two things on Fx3 Firmware
1) Disable the interrupt End point ( Gpio interrupt Call back function is Enable). The data Transfer between Host to FPGA is stable thought DMA Channel created in Auto mode is stable.
2) Comment the CyU3PDebugPrint() function call from everywhere in the Firmware.
Interrupt endpoint and Gpio Interrupt Call back function is Enable but the ongoing data transfer get failed ??
I saw the Section 2.3 in Infineon-TroubleshootingGuide.pdf. Is this helpful for us?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
From the thread description, I understand that the Interrupt endpoint is used for sending the debug prints to the USB host. Is my understanding correct?
If yes, please note that CyU3PDebugInit creates a MANUAL OUT DMA channel with the socket that is passed as first parameter to the API. So, when CyU3PDebugPrint is called the data is sent to USB host over the DMA channel. If the host application, doesn't read the data on interrupt endpoint then DMA overflow will happen and CyU3PDebugPrint will get stuck. So, we recommend not to call CyU3PDebugPrint before the Host application is ready to read the data from FX3.
Interrupt endpoint and Gpio Interrupt Call back function is Enable but the ongoing data transfer get failed ??
>> I understand that interrupt endpoint is used for getting the debug prints. Is my understanding correct? Please let us know if any APIs fail when interrupt endpoint and GPIO interrupt callback is enabled. Also, let me know to which point of section 2.3 are you referring.
Please share the code snippet of GPIO interrupt callback for us to understand the issue better
Rashi