We dont have an example project using CyU3PGpifWriteDataWords/CyU3PGpifRead APIs.
Please find the project that is attached to this post.
This one use the APIs CyU3PGpifWriteDataWords/CyU3PGpifReadDataWords.
I think the attached project meets your requirements.
The example does not use multiplexed address and data bus and the API usage illustrated just writes data output.
In the absence of clear documentation, we have tried CyU3PGpifWriteDataWords/CyU3PGpifReadDataWords which seem to write data to the address associated with the thread index in multiplexed address/data mode. That is, the address is either 0,1,2,or 3.
How does one generate an arbitray address output? I need to be able to write to any arbitray 32-bit address in the external FPGA.
I have several followup up questions on this example code and other GPIF2.zip code in other threads,
The reason for the questions is that I need to parse 3 words of data from a control transaction and send them as a 3 Word GPIF transmit sequence to my FPGA. So during this transaction, I do not need DMA since I will parse the Setup commands and make a call to send the GPIF data manually.
Second Question: This has to do with setup of the DMA. Do we still need to configure all of the USB Producer/Consumer DMA items in CyFxSlFifoApplnStart (void) . If not, what is the minimum amount of configuration that I need do to just send data out the GPIF?
Third Question: How does the thread index and socket affect these “Manual” transactions?